mirror of
https://gitea.sffempire.ru/Kolyah35/minecraft-pe-0.6.1.git
synced 2026-04-05 23:13:33 +00:00
Compare commits
19 Commits
main
...
59d4642413
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59d4642413 | ||
|
|
3737143842 | ||
|
|
ce52bfd35c | ||
|
|
c70cd428fd | ||
|
|
1158644de7 | ||
|
|
03b62b60df | ||
|
|
dfa6dc4221 | ||
|
|
8ea20b1da9 | ||
|
|
2b4ff27043 | ||
|
|
ec76c0fc2c | ||
|
|
8708dc9c83 | ||
|
|
7d485fdcd7 | ||
|
|
976366d6bf | ||
|
|
663c1d4b3f | ||
|
|
0ef6822737 | ||
|
|
442eb2d9c3 | ||
|
|
c0c5cbaa51 | ||
|
|
afbd79d9de | ||
|
|
34858932f1 |
29
.github/workflows/build.yml
vendored
29
.github/workflows/build.yml
vendored
@@ -72,6 +72,30 @@ jobs:
|
|||||||
${{github.workspace}}/build/OpenAL32.dll
|
${{github.workspace}}/build/OpenAL32.dll
|
||||||
${{github.workspace}}/build/libz.dll
|
${{github.workspace}}/build/libz.dll
|
||||||
|
|
||||||
|
build-ios:
|
||||||
|
# credit to pengubow from deepfriedwaffles repo
|
||||||
|
name: Build iOS
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cd project/iosproj
|
||||||
|
xcodebuild -scheme minecraftpe -derivedDataPath build -destination 'generic/platform=iOS' CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
|
||||||
|
mkdir -p Payload
|
||||||
|
cp -R build/Build/Products/Debug-iphoneos/minecraftpe.app Payload/
|
||||||
|
zip -r minecraftpe.ipa Payload
|
||||||
|
rm -rf Payload
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@main
|
||||||
|
with:
|
||||||
|
name: minecraftpe-ios
|
||||||
|
path: project/iosproj/minecraftpe.ipa
|
||||||
|
|
||||||
build-linux:
|
build-linux:
|
||||||
name: Build Linux
|
name: Build Linux
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -266,8 +290,7 @@ jobs:
|
|||||||
publish:
|
publish:
|
||||||
name: Publish
|
name: Publish
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [ build-windows, build-linux, build-android, build-web ]
|
needs: [ build-windows, build-ios, build-linux, build-android, build-web ]
|
||||||
if: github.ref == 'refs/heads/main'
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -340,4 +363,4 @@ jobs:
|
|||||||
./minecraftpe-server-${{ steps.ref.outputs.hash }}.zip
|
./minecraftpe-server-${{ steps.ref.outputs.hash }}.zip
|
||||||
./minecraftpe-${{ steps.ref.outputs.hash }}-android-arm64-v8a.zip
|
./minecraftpe-${{ steps.ref.outputs.hash }}-android-arm64-v8a.zip
|
||||||
./minecraftpe-${{ steps.ref.outputs.hash }}-android-armeabi-v7a.zip
|
./minecraftpe-${{ steps.ref.outputs.hash }}-android-armeabi-v7a.zip
|
||||||
./minecraftpe-${{ steps.ref.outputs.hash }}-web.zip
|
./minecraftpe-${{ steps.ref.outputs.hash }}-web.zip
|
||||||
|
|||||||
@@ -199,9 +199,6 @@ file(GLOB SERVER_SOURCES
|
|||||||
|
|
||||||
"src/world/level/dimension/Dimension.cpp"
|
"src/world/level/dimension/Dimension.cpp"
|
||||||
|
|
||||||
"src/world/level/dimension/FoliageColor.cpp"
|
|
||||||
"src/world/level/GrassColor.cpp"
|
|
||||||
|
|
||||||
"src/world/level/levelgen/*.cpp"
|
"src/world/level/levelgen/*.cpp"
|
||||||
"src/world/level/levelgen/feature/Feature.cpp"
|
"src/world/level/levelgen/feature/Feature.cpp"
|
||||||
"src/world/level/levelgen/synth/*.cpp"
|
"src/world/level/levelgen/synth/*.cpp"
|
||||||
@@ -261,8 +258,6 @@ file(GLOB CLIENT_SOURCES
|
|||||||
|
|
||||||
"src/util/**.cpp"
|
"src/util/**.cpp"
|
||||||
|
|
||||||
"src/util/Color.cpp"
|
|
||||||
|
|
||||||
"src/world/*.cpp"
|
"src/world/*.cpp"
|
||||||
"src/world/phys/*.cpp"
|
"src/world/phys/*.cpp"
|
||||||
"src/world/entity/*.cpp"
|
"src/world/entity/*.cpp"
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 868 B |
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB |
@@ -153,7 +153,6 @@ options.group.tweaks=Tweaks
|
|||||||
options.allowSprint=Allow sprint
|
options.allowSprint=Allow sprint
|
||||||
options.barOnTop=HUD above inventory
|
options.barOnTop=HUD above inventory
|
||||||
options.rpiCursor=Show Raspberry PI cursor
|
options.rpiCursor=Show Raspberry PI cursor
|
||||||
options.foliageTint=Tint Grass and Leaves
|
|
||||||
options.autoJump=Auto Jump
|
options.autoJump=Auto Jump
|
||||||
options.thirdperson=Third Person
|
options.thirdperson=Third Person
|
||||||
options.servervisible=Server Visible
|
options.servervisible=Server Visible
|
||||||
|
|||||||
@@ -146,7 +146,6 @@ LOCAL_SRC_FILES := ../../../src/main.cpp \
|
|||||||
../../../src/util/StringUtils.cpp \
|
../../../src/util/StringUtils.cpp \
|
||||||
../../../src/util/PerfTimer.cpp \
|
../../../src/util/PerfTimer.cpp \
|
||||||
../../../src/util/PerfRenderer.cpp \
|
../../../src/util/PerfRenderer.cpp \
|
||||||
../../../src/util/Color.cpp \
|
|
||||||
../../../src/world/Direction.cpp \
|
../../../src/world/Direction.cpp \
|
||||||
../../../src/world/entity/AgableMob.cpp \
|
../../../src/world/entity/AgableMob.cpp \
|
||||||
../../../src/world/entity/Entity.cpp \
|
../../../src/world/entity/Entity.cpp \
|
||||||
@@ -210,8 +209,6 @@ LOCAL_SRC_FILES := ../../../src/main.cpp \
|
|||||||
../../../src/world/level/MobSpawner.cpp \
|
../../../src/world/level/MobSpawner.cpp \
|
||||||
../../../src/world/level/Region.cpp \
|
../../../src/world/level/Region.cpp \
|
||||||
../../../src/world/level/TickNextTickData.cpp \
|
../../../src/world/level/TickNextTickData.cpp \
|
||||||
../../../src/world/level/FoliageColor.cpp \
|
|
||||||
../../../src/world/level/GrassColor.cpp \
|
|
||||||
../../../src/world/level/biome/Biome.cpp \
|
../../../src/world/level/biome/Biome.cpp \
|
||||||
../../../src/world/level/biome/BiomeSource.cpp \
|
../../../src/world/level/biome/BiomeSource.cpp \
|
||||||
../../../src/world/level/chunk/LevelChunk.cpp \
|
../../../src/world/level/chunk/LevelChunk.cpp \
|
||||||
|
|||||||
@@ -122,7 +122,6 @@ LOCAL_SRC_FILES := ../../../src/main.cpp \
|
|||||||
../../../src/util/StringUtils.cpp \
|
../../../src/util/StringUtils.cpp \
|
||||||
../../../src/util/PerfTimer.cpp \
|
../../../src/util/PerfTimer.cpp \
|
||||||
../../../src/util/PerfRenderer.cpp \
|
../../../src/util/PerfRenderer.cpp \
|
||||||
../../../src/util/Color.cpp \
|
|
||||||
../../../src/world/Direction.cpp \
|
../../../src/world/Direction.cpp \
|
||||||
../../../src/world/entity/AgableMob.cpp \
|
../../../src/world/entity/AgableMob.cpp \
|
||||||
../../../src/world/entity/Entity.cpp \
|
../../../src/world/entity/Entity.cpp \
|
||||||
@@ -184,8 +183,6 @@ LOCAL_SRC_FILES := ../../../src/main.cpp \
|
|||||||
../../../src/world/level/MobSpawner.cpp \
|
../../../src/world/level/MobSpawner.cpp \
|
||||||
../../../src/world/level/Region.cpp \
|
../../../src/world/level/Region.cpp \
|
||||||
../../../src/world/level/TickNextTickData.cpp \
|
../../../src/world/level/TickNextTickData.cpp \
|
||||||
../../../src/world/level/FoliageColor.cpp \
|
|
||||||
../../../src/world/level/GrassColor.cpp \
|
|
||||||
../../../src/world/level/biome/Biome.cpp \
|
../../../src/world/level/biome/Biome.cpp \
|
||||||
../../../src/world/level/biome/BiomeSource.cpp \
|
../../../src/world/level/biome/BiomeSource.cpp \
|
||||||
../../../src/world/level/chunk/LevelChunk.cpp \
|
../../../src/world/level/chunk/LevelChunk.cpp \
|
||||||
|
|||||||
48
project/iosproj/Launch Screen.storyboard
Normal file
48
project/iosproj/Launch Screen.storyboard
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13142" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||||
|
<dependencies>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12042"/>
|
||||||
|
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
|
||||||
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<scenes>
|
||||||
|
<!--View Controller-->
|
||||||
|
<scene sceneID="EHf-IW-A2E">
|
||||||
|
<objects>
|
||||||
|
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="obG-Y5-kRd">
|
||||||
|
<rect key="frame" x="0.0" y="626.5" width="375" height="20.5"/>
|
||||||
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||||
|
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="minecraftpe" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
|
||||||
|
<rect key="frame" x="0.0" y="202" width="375" height="43"/>
|
||||||
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
|
||||||
|
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<nil key="highlightedColor"/>
|
||||||
|
</label>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="obG-Y5-kRd" secondAttribute="centerX" id="5cz-MP-9tL"/>
|
||||||
|
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
|
||||||
|
<constraint firstItem="obG-Y5-kRd" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="20" symbolic="YES" id="SfN-ll-jLj"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="obG-Y5-kRd" secondAttribute="bottom" constant="20" id="Y44-ml-fuU"/>
|
||||||
|
<constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
|
||||||
|
<constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" constant="20" symbolic="YES" id="x7j-FC-K8j"/>
|
||||||
|
</constraints>
|
||||||
|
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="53" y="375"/>
|
||||||
|
</scene>
|
||||||
|
</scenes>
|
||||||
|
</document>
|
||||||
@@ -41,7 +41,6 @@
|
|||||||
042A91AE16B17517007ABBC6 /* GuiElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A316B17517007ABBC6 /* GuiElement.cpp */; };
|
042A91AE16B17517007ABBC6 /* GuiElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A316B17517007ABBC6 /* GuiElement.cpp */; };
|
||||||
042A91AF16B17517007ABBC6 /* NinePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A516B17517007ABBC6 /* NinePatch.cpp */; };
|
042A91AF16B17517007ABBC6 /* NinePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A516B17517007ABBC6 /* NinePatch.cpp */; };
|
||||||
042A91B016B17517007ABBC6 /* OptionsGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A716B17517007ABBC6 /* OptionsGroup.cpp */; };
|
042A91B016B17517007ABBC6 /* OptionsGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A716B17517007ABBC6 /* OptionsGroup.cpp */; };
|
||||||
042A91B116B17517007ABBC6 /* OptionsPane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91A916B17517007ABBC6 /* OptionsPane.cpp */; };
|
|
||||||
042A91B216B17517007ABBC6 /* TextBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91AB16B17517007ABBC6 /* TextBox.cpp */; };
|
042A91B216B17517007ABBC6 /* TextBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 042A91AB16B17517007ABBC6 /* TextBox.cpp */; };
|
||||||
044129071682FF9600B70EE6 /* MouseHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 044129061682FF9600B70EE6 /* MouseHandler.cpp */; };
|
044129071682FF9600B70EE6 /* MouseHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 044129061682FF9600B70EE6 /* MouseHandler.cpp */; };
|
||||||
9D293CE716071C08000305C8 /* CreateNewWorld_iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */; };
|
9D293CE716071C08000305C8 /* CreateNewWorld_iphone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */; };
|
||||||
@@ -1147,6 +1146,33 @@
|
|||||||
D5F3B7DD14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */; };
|
D5F3B7DD14548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */; };
|
||||||
D5F3B7DE14548E7900D25470 /* IASKSpecifierValuesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */; };
|
D5F3B7DE14548E7900D25470 /* IASKSpecifierValuesView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */; };
|
||||||
D5F3B7E51454930400D25470 /* InAppSettings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7E41454930400D25470 /* InAppSettings.bundle */; };
|
D5F3B7E51454930400D25470 /* InAppSettings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D5F3B7E41454930400D25470 /* InAppSettings.bundle */; };
|
||||||
|
F912B8CF2F6C3D5200BC60DF /* TextBox.h in Sources */ = {isa = PBXBuildFile; fileRef = 042A91AC16B17517007ABBC6 /* TextBox.h */; };
|
||||||
|
F99D341F2F736AA100DC153E /* HttpClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D341E2F736AA100DC153E /* HttpClient.cpp */; };
|
||||||
|
F99D34202F736AA100DC153E /* HttpClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D341E2F736AA100DC153E /* HttpClient.cpp */; };
|
||||||
|
F99D34232F736AD400DC153E /* TextOption.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34222F736AD400DC153E /* TextOption.cpp */; };
|
||||||
|
F99D34242F736AD400DC153E /* TextOption.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34222F736AD400DC153E /* TextOption.cpp */; };
|
||||||
|
F99D34272F736AFB00DC153E /* OptionsFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34262F736AFB00DC153E /* OptionsFile.cpp */; };
|
||||||
|
F99D34282F736AFB00DC153E /* OptionsFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34262F736AFB00DC153E /* OptionsFile.cpp */; };
|
||||||
|
F99D342B2F736B6F00DC153E /* OptionsItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D342A2F736B6F00DC153E /* OptionsItem.cpp */; };
|
||||||
|
F99D342C2F736B6F00DC153E /* OptionsItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D342A2F736B6F00DC153E /* OptionsItem.cpp */; };
|
||||||
|
F99D342F2F736BAD00DC153E /* ConsoleScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D342E2F736BAD00DC153E /* ConsoleScreen.cpp */; };
|
||||||
|
F99D34302F736BAD00DC153E /* ConsoleScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D342E2F736BAD00DC153E /* ConsoleScreen.cpp */; };
|
||||||
|
F99D34332F736BDA00DC153E /* CreditsScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34322F736BDA00DC153E /* CreditsScreen.cpp */; };
|
||||||
|
F99D34342F736BDA00DC153E /* CreditsScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34322F736BDA00DC153E /* CreditsScreen.cpp */; };
|
||||||
|
F99D34372F736C1000DC153E /* JoinByIPScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34362F736C1000DC153E /* JoinByIPScreen.cpp */; };
|
||||||
|
F99D34382F736C1000DC153E /* JoinByIPScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34362F736C1000DC153E /* JoinByIPScreen.cpp */; };
|
||||||
|
F99D343B2F736C3B00DC153E /* UsernameScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D343A2F736C3B00DC153E /* UsernameScreen.cpp */; };
|
||||||
|
F99D343C2F736C3B00DC153E /* UsernameScreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D343A2F736C3B00DC153E /* UsernameScreen.cpp */; };
|
||||||
|
F99D343F2F736C8400DC153E /* GuiElementContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D343E2F736C8400DC153E /* GuiElementContainer.cpp */; };
|
||||||
|
F99D34402F736C8400DC153E /* GuiElementContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D343E2F736C8400DC153E /* GuiElementContainer.cpp */; };
|
||||||
|
F99D34432F736F9400DC153E /* Option.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34422F736F9400DC153E /* Option.cpp */; };
|
||||||
|
F99D34442F736F9400DC153E /* Option.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34422F736F9400DC153E /* Option.cpp */; };
|
||||||
|
F99D34472F736FE800DC153E /* KeyOption.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34462F736FE800DC153E /* KeyOption.cpp */; };
|
||||||
|
F99D34482F736FE800DC153E /* KeyOption.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D34462F736FE800DC153E /* KeyOption.cpp */; };
|
||||||
|
F99D344B2F7370CF00DC153E /* Slider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D344A2F7370CF00DC153E /* Slider.cpp */; };
|
||||||
|
F99D344C2F7370CF00DC153E /* Slider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99D344A2F7370CF00DC153E /* Slider.cpp */; };
|
||||||
|
F99D344E2F7372A100DC153E /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F99D344D2F7372A100DC153E /* Launch Screen.storyboard */; };
|
||||||
|
F99D344F2F7372A100DC153E /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F99D344D2F7372A100DC153E /* Launch Screen.storyboard */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
@@ -1208,10 +1234,8 @@
|
|||||||
042A91A616B17517007ABBC6 /* NinePatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NinePatch.h; sourceTree = "<group>"; };
|
042A91A616B17517007ABBC6 /* NinePatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NinePatch.h; sourceTree = "<group>"; };
|
||||||
042A91A716B17517007ABBC6 /* OptionsGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionsGroup.cpp; sourceTree = "<group>"; };
|
042A91A716B17517007ABBC6 /* OptionsGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionsGroup.cpp; sourceTree = "<group>"; };
|
||||||
042A91A816B17517007ABBC6 /* OptionsGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsGroup.h; sourceTree = "<group>"; };
|
042A91A816B17517007ABBC6 /* OptionsGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsGroup.h; sourceTree = "<group>"; };
|
||||||
042A91A916B17517007ABBC6 /* OptionsPane.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OptionsPane.cpp; sourceTree = "<group>"; };
|
|
||||||
042A91AA16B17517007ABBC6 /* OptionsPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OptionsPane.h; sourceTree = "<group>"; };
|
|
||||||
042A91AB16B17517007ABBC6 /* TextBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextBox.cpp; sourceTree = "<group>"; };
|
042A91AB16B17517007ABBC6 /* TextBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextBox.cpp; sourceTree = "<group>"; };
|
||||||
042A91AC16B17517007ABBC6 /* TextBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBox.h; sourceTree = "<group>"; };
|
042A91AC16B17517007ABBC6 /* TextBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextBox.h; path = ../../src/client/gui/components/TextBox.h; sourceTree = SOURCE_ROOT; };
|
||||||
044129061682FF9600B70EE6 /* MouseHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseHandler.cpp; sourceTree = "<group>"; };
|
044129061682FF9600B70EE6 /* MouseHandler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseHandler.cpp; sourceTree = "<group>"; };
|
||||||
9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CreateNewWorld_iphone.xib; path = minecraftpe/dialogs/CreateNewWorld_iphone.xib; sourceTree = "<group>"; };
|
9D293CE616071C08000305C8 /* CreateNewWorld_iphone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CreateNewWorld_iphone.xib; path = minecraftpe/dialogs/CreateNewWorld_iphone.xib; sourceTree = "<group>"; };
|
||||||
9D293CEA160720D6000305C8 /* worldname_iphone5_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_iphone5_3.png; sourceTree = "<group>"; };
|
9D293CEA160720D6000305C8 /* worldname_iphone5_3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = worldname_iphone5_3.png; sourceTree = "<group>"; };
|
||||||
@@ -2017,7 +2041,7 @@
|
|||||||
D5B50D6914CFF66F005F7284 /* Multitouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Multitouch.h; sourceTree = "<group>"; };
|
D5B50D6914CFF66F005F7284 /* Multitouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Multitouch.h; sourceTree = "<group>"; };
|
||||||
D5B50D6A14CFF66F005F7284 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = "<group>"; };
|
D5B50D6A14CFF66F005F7284 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = "<group>"; };
|
||||||
D5B50D6B14CFF66F005F7284 /* time.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = time.cpp; sourceTree = "<group>"; };
|
D5B50D6B14CFF66F005F7284 /* time.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = time.cpp; sourceTree = "<group>"; };
|
||||||
D5B50D6C14CFF66F005F7284 /* time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = time.h; sourceTree = "<group>"; };
|
D5B50D6C14CFF66F005F7284 /* time.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = time.h; sourceTree = "<group>"; };
|
||||||
D5B50E5614CFF66F005F7284 /* SharedConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedConstants.h; sourceTree = "<group>"; };
|
D5B50E5614CFF66F005F7284 /* SharedConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedConstants.h; sourceTree = "<group>"; };
|
||||||
D5B50E5714CFF66F005F7284 /* terrain_4444.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_4444.h; sourceTree = "<group>"; };
|
D5B50E5714CFF66F005F7284 /* terrain_4444.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_4444.h; sourceTree = "<group>"; };
|
||||||
D5B50E5814CFF66F005F7284 /* terrain_5551.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_5551.h; sourceTree = "<group>"; };
|
D5B50E5814CFF66F005F7284 /* terrain_5551.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = terrain_5551.h; sourceTree = "<group>"; };
|
||||||
@@ -2408,6 +2432,31 @@
|
|||||||
D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSToggleSwitchSpecifierViewCell.xib; sourceTree = "<group>"; };
|
D5F3B7C814548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKPSToggleSwitchSpecifierViewCell.xib; sourceTree = "<group>"; };
|
||||||
D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKSpecifierValuesView.xib; sourceTree = "<group>"; };
|
D5F3B7C914548E7900D25470 /* IASKSpecifierValuesView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IASKSpecifierValuesView.xib; sourceTree = "<group>"; };
|
||||||
D5F3B7E41454930400D25470 /* InAppSettings.bundle */ = {isa = PBXFileReference; explicitFileType = "wrapper.installer-pkg"; path = InAppSettings.bundle; sourceTree = "<group>"; };
|
D5F3B7E41454930400D25470 /* InAppSettings.bundle */ = {isa = PBXFileReference; explicitFileType = "wrapper.installer-pkg"; path = InAppSettings.bundle; sourceTree = "<group>"; };
|
||||||
|
F99D341D2F736AA100DC153E /* HttpClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HttpClient.h; path = ../../src/platform/HttpClient.h; sourceTree = "<group>"; };
|
||||||
|
F99D341E2F736AA100DC153E /* HttpClient.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = HttpClient.cpp; path = ../../src/platform/HttpClient.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34212F736AD400DC153E /* TextOption.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = TextOption.h; path = ../../src/client/gui/components/TextOption.h; sourceTree = "<group>"; };
|
||||||
|
F99D34222F736AD400DC153E /* TextOption.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TextOption.cpp; path = ../../src/client/gui/components/TextOption.cpp; };
|
||||||
|
F99D34252F736AFB00DC153E /* OptionsFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OptionsFile.h; path = ../../src/client/OptionsFile.h; sourceTree = "<group>"; sourceTree = "<group>"; };
|
||||||
|
F99D34262F736AFB00DC153E /* OptionsFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OptionsFile.cpp; path = ../../src/client/OptionsFile.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34292F736B6F00DC153E /* OptionsItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OptionsItem.h; path = ../../src/client/gui/components/OptionsItem.h; sourceTree = "<group>"; };
|
||||||
|
F99D342A2F736B6F00DC153E /* OptionsItem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OptionsItem.cpp; path = ../../src/client/gui/components/OptionsItem.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D342D2F736BAD00DC153E /* ConsoleScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ConsoleScreen.h; path = ../../src/client/gui/screens/ConsoleScreen.h; sourceTree = "<group>"; };
|
||||||
|
F99D342E2F736BAD00DC153E /* ConsoleScreen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ConsoleScreen.cpp; path = ../../src/client/gui/screens/ConsoleScreen.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34312F736BDA00DC153E /* CreditsScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CreditsScreen.h; path = ../../src/client/gui/screens/CreditsScreen.h; sourceTree = "<group>"; };
|
||||||
|
F99D34322F736BDA00DC153E /* CreditsScreen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = CreditsScreen.cpp; path = ../../src/client/gui/screens/CreditsScreen.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34352F736C1000DC153E /* JoinByIPScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JoinByIPScreen.h; path = ../../src/client/gui/screens/JoinByIPScreen.h; sourceTree = "<group>"; };
|
||||||
|
F99D34362F736C1000DC153E /* JoinByIPScreen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = JoinByIPScreen.cpp; path = ../../src/client/gui/screens/JoinByIPScreen.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34392F736C3B00DC153E /* UsernameScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = UsernameScreen.h; path = ../../src/client/gui/screens/UsernameScreen.h; sourceTree = "<group>"; };
|
||||||
|
F99D343A2F736C3B00DC153E /* UsernameScreen.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = UsernameScreen.cpp; path = ../../src/client/gui/screens/UsernameScreen.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D343D2F736C8400DC153E /* GuiElementContainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GuiElementContainer.h; path = ../../src/client/gui/components/GuiElementContainer.h; sourceTree = "<group>"; };
|
||||||
|
F99D343E2F736C8400DC153E /* GuiElementContainer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = GuiElementContainer.cpp; path = ../../src/client/gui/components/GuiElementContainer.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34412F736F9400DC153E /* Option.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Option.h; path = ../../src/client/Option.h; sourceTree = "<group>"; };
|
||||||
|
F99D34422F736F9400DC153E /* Option.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Option.cpp; path = ../../src/client/Option.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34452F736FE800DC153E /* KeyOption.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = KeyOption.h; path = ../../src/client/gui/components/KeyOption.h; sourceTree = "<group>"; };
|
||||||
|
F99D34462F736FE800DC153E /* KeyOption.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = KeyOption.cpp; path = ../../src/client/gui/components/KeyOption.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D34492F7370CF00DC153E /* Slider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Slider.h; path = ../../src/client/gui/components/Slider.h; sourceTree = "<group>"; };
|
||||||
|
F99D344A2F7370CF00DC153E /* Slider.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Slider.cpp; path = ../../src/client/gui/components/Slider.cpp; sourceTree = "<group>"; };
|
||||||
|
F99D344D2F7372A100DC153E /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -3226,8 +3275,6 @@
|
|||||||
042A91A616B17517007ABBC6 /* NinePatch.h */,
|
042A91A616B17517007ABBC6 /* NinePatch.h */,
|
||||||
042A91A716B17517007ABBC6 /* OptionsGroup.cpp */,
|
042A91A716B17517007ABBC6 /* OptionsGroup.cpp */,
|
||||||
042A91A816B17517007ABBC6 /* OptionsGroup.h */,
|
042A91A816B17517007ABBC6 /* OptionsGroup.h */,
|
||||||
042A91A916B17517007ABBC6 /* OptionsPane.cpp */,
|
|
||||||
042A91AA16B17517007ABBC6 /* OptionsPane.h */,
|
|
||||||
042A91AB16B17517007ABBC6 /* TextBox.cpp */,
|
042A91AB16B17517007ABBC6 /* TextBox.cpp */,
|
||||||
042A91AC16B17517007ABBC6 /* TextBox.h */,
|
042A91AC16B17517007ABBC6 /* TextBox.h */,
|
||||||
D5B50C2814CFF66F005F7284 /* Button.cpp */,
|
D5B50C2814CFF66F005F7284 /* Button.cpp */,
|
||||||
@@ -4256,6 +4303,7 @@
|
|||||||
D5CF9C37144C225000E4244F = {
|
D5CF9C37144C225000E4244F = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
F99D344D2F7372A100DC153E /* Launch Screen.storyboard */,
|
||||||
D5E1BA9A1451C8A0007DCC4F /* Default@2x.png */,
|
D5E1BA9A1451C8A0007DCC4F /* Default@2x.png */,
|
||||||
9D959AFF16036BEE00E23A6F /* Default-568h@2x.png */,
|
9D959AFF16036BEE00E23A6F /* Default-568h@2x.png */,
|
||||||
D5F07744145EF79B00EC30FB /* Default-Landscape~ipad.png */,
|
D5F07744145EF79B00EC30FB /* Default-Landscape~ipad.png */,
|
||||||
@@ -4267,6 +4315,30 @@
|
|||||||
D5CF9C45144C225000E4244F /* Frameworks */,
|
D5CF9C45144C225000E4244F /* Frameworks */,
|
||||||
D5CF9C43144C225000E4244F /* Products */,
|
D5CF9C43144C225000E4244F /* Products */,
|
||||||
D5B50C1614CFF66F005F7284 /* src */,
|
D5B50C1614CFF66F005F7284 /* src */,
|
||||||
|
F99D341D2F736AA100DC153E /* HttpClient.h */,
|
||||||
|
F99D341E2F736AA100DC153E /* HttpClient.cpp */,
|
||||||
|
F99D34212F736AD400DC153E /* TextOption.h */,
|
||||||
|
F99D34222F736AD400DC153E /* TextOption.cpp */,
|
||||||
|
F99D34252F736AFB00DC153E /* OptionsFile.h */,
|
||||||
|
F99D34262F736AFB00DC153E /* OptionsFile.cpp */,
|
||||||
|
F99D34292F736B6F00DC153E /* OptionsItem.h */,
|
||||||
|
F99D342A2F736B6F00DC153E /* OptionsItem.cpp */,
|
||||||
|
F99D342D2F736BAD00DC153E /* ConsoleScreen.h */,
|
||||||
|
F99D342E2F736BAD00DC153E /* ConsoleScreen.cpp */,
|
||||||
|
F99D34312F736BDA00DC153E /* CreditsScreen.h */,
|
||||||
|
F99D34322F736BDA00DC153E /* CreditsScreen.cpp */,
|
||||||
|
F99D34352F736C1000DC153E /* JoinByIPScreen.h */,
|
||||||
|
F99D34362F736C1000DC153E /* JoinByIPScreen.cpp */,
|
||||||
|
F99D34392F736C3B00DC153E /* UsernameScreen.h */,
|
||||||
|
F99D343A2F736C3B00DC153E /* UsernameScreen.cpp */,
|
||||||
|
F99D343D2F736C8400DC153E /* GuiElementContainer.h */,
|
||||||
|
F99D343E2F736C8400DC153E /* GuiElementContainer.cpp */,
|
||||||
|
F99D34412F736F9400DC153E /* Option.h */,
|
||||||
|
F99D34422F736F9400DC153E /* Option.cpp */,
|
||||||
|
F99D34452F736FE800DC153E /* KeyOption.h */,
|
||||||
|
F99D34462F736FE800DC153E /* KeyOption.cpp */,
|
||||||
|
F99D34492F7370CF00DC153E /* Slider.h */,
|
||||||
|
F99D344A2F7370CF00DC153E /* Slider.cpp */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
@@ -4527,10 +4599,16 @@
|
|||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastUpgradeCheck = 0420;
|
LastUpgradeCheck = 0420;
|
||||||
|
TargetAttributes = {
|
||||||
|
D5CF9C41144C225000E4244F = {
|
||||||
|
DevelopmentTeam = PZUVNW8F2U;
|
||||||
|
ProvisioningStyle = Automatic;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
buildConfigurationList = D5CF9C3C144C225000E4244F /* Build configuration list for PBXProject "minecraftpe" */;
|
buildConfigurationList = D5CF9C3C144C225000E4244F /* Build configuration list for PBXProject "minecraftpe" */;
|
||||||
compatibilityVersion = "Xcode 3.2";
|
compatibilityVersion = "Xcode 3.2";
|
||||||
developmentRegion = English;
|
developmentRegion = en;
|
||||||
hasScannedForEncodings = 0;
|
hasScannedForEncodings = 0;
|
||||||
knownRegions = (
|
knownRegions = (
|
||||||
en,
|
en,
|
||||||
@@ -4599,6 +4677,7 @@
|
|||||||
D5B50A5614CFF492005F7284 /* pig.png in Resources */,
|
D5B50A5614CFF492005F7284 /* pig.png in Resources */,
|
||||||
D5B50A5814CFF492005F7284 /* sheep_fur.png in Resources */,
|
D5B50A5814CFF492005F7284 /* sheep_fur.png in Resources */,
|
||||||
D5B50A5A14CFF492005F7284 /* sheep.png in Resources */,
|
D5B50A5A14CFF492005F7284 /* sheep.png in Resources */,
|
||||||
|
F99D344F2F7372A100DC153E /* Launch Screen.storyboard in Resources */,
|
||||||
D5B50A5C14CFF492005F7284 /* skeleton.png in Resources */,
|
D5B50A5C14CFF492005F7284 /* skeleton.png in Resources */,
|
||||||
D5B50A5E14CFF492005F7284 /* spider.png in Resources */,
|
D5B50A5E14CFF492005F7284 /* spider.png in Resources */,
|
||||||
D5B50A6014CFF492005F7284 /* zombie.png in Resources */,
|
D5B50A6014CFF492005F7284 /* zombie.png in Resources */,
|
||||||
@@ -4935,6 +5014,7 @@
|
|||||||
D5ACF26F15C03DBF00E21C22 /* sand2.m4a in Resources */,
|
D5ACF26F15C03DBF00E21C22 /* sand2.m4a in Resources */,
|
||||||
D5ACF27115C03DBF00E21C22 /* sand3.m4a in Resources */,
|
D5ACF27115C03DBF00E21C22 /* sand3.m4a in Resources */,
|
||||||
D5ACF27315C03DBF00E21C22 /* sand4.m4a in Resources */,
|
D5ACF27315C03DBF00E21C22 /* sand4.m4a in Resources */,
|
||||||
|
F99D344E2F7372A100DC153E /* Launch Screen.storyboard in Resources */,
|
||||||
D5ACF27515C03DBF00E21C22 /* snow1.m4a in Resources */,
|
D5ACF27515C03DBF00E21C22 /* snow1.m4a in Resources */,
|
||||||
D5ACF27715C03DBF00E21C22 /* snow2.m4a in Resources */,
|
D5ACF27715C03DBF00E21C22 /* snow2.m4a in Resources */,
|
||||||
D5ACF27915C03DBF00E21C22 /* snow3.m4a in Resources */,
|
D5ACF27915C03DBF00E21C22 /* snow3.m4a in Resources */,
|
||||||
@@ -5011,18 +5091,22 @@
|
|||||||
D58BB544146A0B910002C9F5 /* IASKSettingsStore.m in Sources */,
|
D58BB544146A0B910002C9F5 /* IASKSettingsStore.m in Sources */,
|
||||||
D58BB545146A0B910002C9F5 /* IASKSettingsStoreFile.m in Sources */,
|
D58BB545146A0B910002C9F5 /* IASKSettingsStoreFile.m in Sources */,
|
||||||
D58BB546146A0B910002C9F5 /* IASKSettingsStoreUserDefaults.m in Sources */,
|
D58BB546146A0B910002C9F5 /* IASKSettingsStoreUserDefaults.m in Sources */,
|
||||||
|
F99D34232F736AD400DC153E /* TextOption.cpp in Sources */,
|
||||||
D58BB547146A0B910002C9F5 /* IASKSpecifier.m in Sources */,
|
D58BB547146A0B910002C9F5 /* IASKSpecifier.m in Sources */,
|
||||||
D58BB548146A0B910002C9F5 /* IASKPSSliderSpecifierViewCell.m in Sources */,
|
D58BB548146A0B910002C9F5 /* IASKPSSliderSpecifierViewCell.m in Sources */,
|
||||||
D58BB549146A0B910002C9F5 /* IASKPSTextFieldSpecifierViewCell.m in Sources */,
|
D58BB549146A0B910002C9F5 /* IASKPSTextFieldSpecifierViewCell.m in Sources */,
|
||||||
D58BB54A146A0B910002C9F5 /* IASKPSTitleValueSpecifierViewCell.m in Sources */,
|
D58BB54A146A0B910002C9F5 /* IASKPSTitleValueSpecifierViewCell.m in Sources */,
|
||||||
D58BB54B146A0B910002C9F5 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */,
|
D58BB54B146A0B910002C9F5 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */,
|
||||||
|
F99D343B2F736C3B00DC153E /* UsernameScreen.cpp in Sources */,
|
||||||
D58BB54C146A0B910002C9F5 /* IASKSlider.m in Sources */,
|
D58BB54C146A0B910002C9F5 /* IASKSlider.m in Sources */,
|
||||||
D58BB54D146A0B910002C9F5 /* IASKSwitch.m in Sources */,
|
D58BB54D146A0B910002C9F5 /* IASKSwitch.m in Sources */,
|
||||||
|
F99D34302F736BAD00DC153E /* ConsoleScreen.cpp in Sources */,
|
||||||
D58BB54E146A0B910002C9F5 /* IASKTextField.m in Sources */,
|
D58BB54E146A0B910002C9F5 /* IASKTextField.m in Sources */,
|
||||||
D58BB550146A0B910002C9F5 /* PVRTexture.m in Sources */,
|
D58BB550146A0B910002C9F5 /* PVRTexture.m in Sources */,
|
||||||
D5D43CC9146AF4B4002ED842 /* RenameMPWorldViewController.mm in Sources */,
|
D5D43CC9146AF4B4002ED842 /* RenameMPWorldViewController.mm in Sources */,
|
||||||
D5B50F7014CFF670005F7284 /* AppPlatform_iOS.mm in Sources */,
|
D5B50F7014CFF670005F7284 /* AppPlatform_iOS.mm in Sources */,
|
||||||
D5B50F7414CFF670005F7284 /* CreativeMode.cpp in Sources */,
|
D5B50F7414CFF670005F7284 /* CreativeMode.cpp in Sources */,
|
||||||
|
F99D34432F736F9400DC153E /* Option.cpp in Sources */,
|
||||||
D5B50F7614CFF670005F7284 /* GameMode.cpp in Sources */,
|
D5B50F7614CFF670005F7284 /* GameMode.cpp in Sources */,
|
||||||
D5B50F7814CFF670005F7284 /* Button.cpp in Sources */,
|
D5B50F7814CFF670005F7284 /* Button.cpp in Sources */,
|
||||||
D5B50F7A14CFF670005F7284 /* ImageButton.cpp in Sources */,
|
D5B50F7A14CFF670005F7284 /* ImageButton.cpp in Sources */,
|
||||||
@@ -5067,6 +5151,7 @@
|
|||||||
D5B50FC814CFF670005F7284 /* KeyboardInput.cpp in Sources */,
|
D5B50FC814CFF670005F7284 /* KeyboardInput.cpp in Sources */,
|
||||||
D5B50FCA14CFF670005F7284 /* TouchscreenInput.cpp in Sources */,
|
D5B50FCA14CFF670005F7284 /* TouchscreenInput.cpp in Sources */,
|
||||||
D5B50FCC14CFF670005F7284 /* LocalPlayer.cpp in Sources */,
|
D5B50FCC14CFF670005F7284 /* LocalPlayer.cpp in Sources */,
|
||||||
|
F99D34482F736FE800DC153E /* KeyOption.cpp in Sources */,
|
||||||
D5B50FCE14CFF670005F7284 /* Chunk.cpp in Sources */,
|
D5B50FCE14CFF670005F7284 /* Chunk.cpp in Sources */,
|
||||||
D5B50FD014CFF670005F7284 /* Frustum.cpp in Sources */,
|
D5B50FD014CFF670005F7284 /* Frustum.cpp in Sources */,
|
||||||
D5B50FD214CFF670005F7284 /* ChickenRenderer.cpp in Sources */,
|
D5B50FD214CFF670005F7284 /* ChickenRenderer.cpp in Sources */,
|
||||||
@@ -5125,6 +5210,7 @@
|
|||||||
D5B5113014CFF670005F7284 /* TripodCamera.cpp in Sources */,
|
D5B5113014CFF670005F7284 /* TripodCamera.cpp in Sources */,
|
||||||
D5B5113214CFF670005F7284 /* Mob.cpp in Sources */,
|
D5B5113214CFF670005F7284 /* Mob.cpp in Sources */,
|
||||||
D5B5113414CFF670005F7284 /* MobCategory.cpp in Sources */,
|
D5B5113414CFF670005F7284 /* MobCategory.cpp in Sources */,
|
||||||
|
F99D34282F736AFB00DC153E /* OptionsFile.cpp in Sources */,
|
||||||
D5B5113814CFF670005F7284 /* PathFinderMob.cpp in Sources */,
|
D5B5113814CFF670005F7284 /* PathFinderMob.cpp in Sources */,
|
||||||
D5B5113A14CFF670005F7284 /* Inventory.cpp in Sources */,
|
D5B5113A14CFF670005F7284 /* Inventory.cpp in Sources */,
|
||||||
D5B5113C14CFF670005F7284 /* Player.cpp in Sources */,
|
D5B5113C14CFF670005F7284 /* Player.cpp in Sources */,
|
||||||
@@ -5136,6 +5222,7 @@
|
|||||||
D5B5114814CFF670005F7284 /* Item.cpp in Sources */,
|
D5B5114814CFF670005F7284 /* Item.cpp in Sources */,
|
||||||
D5B5114A14CFF670005F7284 /* ItemInstance.cpp in Sources */,
|
D5B5114A14CFF670005F7284 /* ItemInstance.cpp in Sources */,
|
||||||
D5B5114C14CFF670005F7284 /* PickaxeItem.cpp in Sources */,
|
D5B5114C14CFF670005F7284 /* PickaxeItem.cpp in Sources */,
|
||||||
|
F99D344B2F7370CF00DC153E /* Slider.cpp in Sources */,
|
||||||
D5B5114E14CFF670005F7284 /* ShovelItem.cpp in Sources */,
|
D5B5114E14CFF670005F7284 /* ShovelItem.cpp in Sources */,
|
||||||
D5B5115014CFF670005F7284 /* Biome.cpp in Sources */,
|
D5B5115014CFF670005F7284 /* Biome.cpp in Sources */,
|
||||||
D5B5115214CFF670005F7284 /* BiomeSource.cpp in Sources */,
|
D5B5115214CFF670005F7284 /* BiomeSource.cpp in Sources */,
|
||||||
@@ -5186,6 +5273,7 @@
|
|||||||
D5251DBA1538192700FC82C8 /* CloudServer.cpp in Sources */,
|
D5251DBA1538192700FC82C8 /* CloudServer.cpp in Sources */,
|
||||||
D5251DBE1538192700FC82C8 /* CommandParserInterface.cpp in Sources */,
|
D5251DBE1538192700FC82C8 /* CommandParserInterface.cpp in Sources */,
|
||||||
D5251DC01538192700FC82C8 /* ConnectionGraph2.cpp in Sources */,
|
D5251DC01538192700FC82C8 /* ConnectionGraph2.cpp in Sources */,
|
||||||
|
F99D34402F736C8400DC153E /* GuiElementContainer.cpp in Sources */,
|
||||||
D5251DC21538192700FC82C8 /* ConsoleServer.cpp in Sources */,
|
D5251DC21538192700FC82C8 /* ConsoleServer.cpp in Sources */,
|
||||||
D5251DC41538192700FC82C8 /* DataCompressor.cpp in Sources */,
|
D5251DC41538192700FC82C8 /* DataCompressor.cpp in Sources */,
|
||||||
D5251DC61538192700FC82C8 /* DirectoryDeltaTransfer.cpp in Sources */,
|
D5251DC61538192700FC82C8 /* DirectoryDeltaTransfer.cpp in Sources */,
|
||||||
@@ -5210,6 +5298,8 @@
|
|||||||
D5251DEC1538192700FC82C8 /* HTTPConnection.cpp in Sources */,
|
D5251DEC1538192700FC82C8 /* HTTPConnection.cpp in Sources */,
|
||||||
D5251DEE1538192700FC82C8 /* IncrementalReadInterface.cpp in Sources */,
|
D5251DEE1538192700FC82C8 /* IncrementalReadInterface.cpp in Sources */,
|
||||||
D5251DF01538192700FC82C8 /* Itoa.cpp in Sources */,
|
D5251DF01538192700FC82C8 /* Itoa.cpp in Sources */,
|
||||||
|
F99D34202F736AA100DC153E /* HttpClient.cpp in Sources */,
|
||||||
|
F99D34382F736C1000DC153E /* JoinByIPScreen.cpp in Sources */,
|
||||||
D5251DF21538192700FC82C8 /* LinuxStrings.cpp in Sources */,
|
D5251DF21538192700FC82C8 /* LinuxStrings.cpp in Sources */,
|
||||||
D5251DF41538192700FC82C8 /* LocklessTypes.cpp in Sources */,
|
D5251DF41538192700FC82C8 /* LocklessTypes.cpp in Sources */,
|
||||||
D5251DF61538192700FC82C8 /* LogCommandParser.cpp in Sources */,
|
D5251DF61538192700FC82C8 /* LogCommandParser.cpp in Sources */,
|
||||||
@@ -5238,6 +5328,7 @@
|
|||||||
D5251E2A1538192700FC82C8 /* RakSleep.cpp in Sources */,
|
D5251E2A1538192700FC82C8 /* RakSleep.cpp in Sources */,
|
||||||
D5251E2C1538192700FC82C8 /* RakString.cpp in Sources */,
|
D5251E2C1538192700FC82C8 /* RakString.cpp in Sources */,
|
||||||
D5251E2E1538192700FC82C8 /* RakThread.cpp in Sources */,
|
D5251E2E1538192700FC82C8 /* RakThread.cpp in Sources */,
|
||||||
|
F99D34332F736BDA00DC153E /* CreditsScreen.cpp in Sources */,
|
||||||
D5251E301538192700FC82C8 /* RakWString.cpp in Sources */,
|
D5251E301538192700FC82C8 /* RakWString.cpp in Sources */,
|
||||||
D5251E321538192700FC82C8 /* Rand.cpp in Sources */,
|
D5251E321538192700FC82C8 /* Rand.cpp in Sources */,
|
||||||
D5251E341538192700FC82C8 /* rdlmalloc.cpp in Sources */,
|
D5251E341538192700FC82C8 /* rdlmalloc.cpp in Sources */,
|
||||||
@@ -5280,6 +5371,7 @@
|
|||||||
D5951EEB159349100043A12A /* TileEntity.cpp in Sources */,
|
D5951EEB159349100043A12A /* TileEntity.cpp in Sources */,
|
||||||
D5951EEF159349680043A12A /* FurnaceScreen.cpp in Sources */,
|
D5951EEF159349680043A12A /* FurnaceScreen.cpp in Sources */,
|
||||||
D5951EF215934A2D0043A12A /* Feature.cpp in Sources */,
|
D5951EF215934A2D0043A12A /* Feature.cpp in Sources */,
|
||||||
|
F99D342C2F736B6F00DC153E /* OptionsItem.cpp in Sources */,
|
||||||
D5951EF815934AC50043A12A /* BaseContainerMenu.cpp in Sources */,
|
D5951EF815934AC50043A12A /* BaseContainerMenu.cpp in Sources */,
|
||||||
D5951EFA15934AC50043A12A /* FurnaceMenu.cpp in Sources */,
|
D5951EFA15934AC50043A12A /* FurnaceMenu.cpp in Sources */,
|
||||||
D5D381F315A1A1CF00B6C50E /* FillingContainer.cpp in Sources */,
|
D5D381F315A1A1CF00B6C50E /* FillingContainer.cpp in Sources */,
|
||||||
@@ -5339,8 +5431,10 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
F912B8CF2F6C3D5200BC60DF /* TextBox.h in Sources */,
|
||||||
D5CF9C57144C225000E4244F /* main.mm in Sources */,
|
D5CF9C57144C225000E4244F /* main.mm in Sources */,
|
||||||
D5CF9C5B144C225000E4244F /* minecraftpeAppDelegate.mm in Sources */,
|
D5CF9C5B144C225000E4244F /* minecraftpeAppDelegate.mm in Sources */,
|
||||||
|
F99D343C2F736C3B00DC153E /* UsernameScreen.cpp in Sources */,
|
||||||
D5CF9C65144C225000E4244F /* EAGLView.m in Sources */,
|
D5CF9C65144C225000E4244F /* EAGLView.m in Sources */,
|
||||||
D5CFA01D144C453900E4244F /* minecraftpeViewController.mm in Sources */,
|
D5CFA01D144C453900E4244F /* minecraftpeViewController.mm in Sources */,
|
||||||
D5A55E4914500EDE00A7571B /* CreateNewWorldViewController.mm in Sources */,
|
D5A55E4914500EDE00A7571B /* CreateNewWorldViewController.mm in Sources */,
|
||||||
@@ -5354,6 +5448,7 @@
|
|||||||
D5F3B7D014548E7900D25470 /* IASKSettingsStoreUserDefaults.m in Sources */,
|
D5F3B7D014548E7900D25470 /* IASKSettingsStoreUserDefaults.m in Sources */,
|
||||||
D5F3B7D114548E7900D25470 /* IASKSpecifier.m in Sources */,
|
D5F3B7D114548E7900D25470 /* IASKSpecifier.m in Sources */,
|
||||||
D5F3B7D214548E7900D25470 /* IASKPSSliderSpecifierViewCell.m in Sources */,
|
D5F3B7D214548E7900D25470 /* IASKPSSliderSpecifierViewCell.m in Sources */,
|
||||||
|
F99D34472F736FE800DC153E /* KeyOption.cpp in Sources */,
|
||||||
D5F3B7D314548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m in Sources */,
|
D5F3B7D314548E7900D25470 /* IASKPSTextFieldSpecifierViewCell.m in Sources */,
|
||||||
D5F3B7D414548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m in Sources */,
|
D5F3B7D414548E7900D25470 /* IASKPSTitleValueSpecifierViewCell.m in Sources */,
|
||||||
D5F3B7D514548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */,
|
D5F3B7D514548E7900D25470 /* IASKPSToggleSwitchSpecifierViewCell.m in Sources */,
|
||||||
@@ -5465,11 +5560,13 @@
|
|||||||
D5B5112D14CFF670005F7284 /* PrimedTnt.cpp in Sources */,
|
D5B5112D14CFF670005F7284 /* PrimedTnt.cpp in Sources */,
|
||||||
D5B5112F14CFF670005F7284 /* TripodCamera.cpp in Sources */,
|
D5B5112F14CFF670005F7284 /* TripodCamera.cpp in Sources */,
|
||||||
D5B5113114CFF670005F7284 /* Mob.cpp in Sources */,
|
D5B5113114CFF670005F7284 /* Mob.cpp in Sources */,
|
||||||
|
F99D34442F736F9400DC153E /* Option.cpp in Sources */,
|
||||||
D5B5113314CFF670005F7284 /* MobCategory.cpp in Sources */,
|
D5B5113314CFF670005F7284 /* MobCategory.cpp in Sources */,
|
||||||
D5B5113714CFF670005F7284 /* PathFinderMob.cpp in Sources */,
|
D5B5113714CFF670005F7284 /* PathFinderMob.cpp in Sources */,
|
||||||
D5B5113914CFF670005F7284 /* Inventory.cpp in Sources */,
|
D5B5113914CFF670005F7284 /* Inventory.cpp in Sources */,
|
||||||
D5B5113B14CFF670005F7284 /* Player.cpp in Sources */,
|
D5B5113B14CFF670005F7284 /* Player.cpp in Sources */,
|
||||||
D5B5113D14CFF670005F7284 /* Arrow.cpp in Sources */,
|
D5B5113D14CFF670005F7284 /* Arrow.cpp in Sources */,
|
||||||
|
F99D343F2F736C8400DC153E /* GuiElementContainer.cpp in Sources */,
|
||||||
D5B5113F14CFF670005F7284 /* Recipes.cpp in Sources */,
|
D5B5113F14CFF670005F7284 /* Recipes.cpp in Sources */,
|
||||||
D5B5114114CFF670005F7284 /* ToolRecipes.cpp in Sources */,
|
D5B5114114CFF670005F7284 /* ToolRecipes.cpp in Sources */,
|
||||||
D5B5114314CFF670005F7284 /* WeaponRecipes.cpp in Sources */,
|
D5B5114314CFF670005F7284 /* WeaponRecipes.cpp in Sources */,
|
||||||
@@ -5507,10 +5604,12 @@
|
|||||||
D5B5118514CFF670005F7284 /* HitResult.cpp in Sources */,
|
D5B5118514CFF670005F7284 /* HitResult.cpp in Sources */,
|
||||||
D5B5118B14D03342005F7284 /* SynchedEntityData.cpp in Sources */,
|
D5B5118B14D03342005F7284 /* SynchedEntityData.cpp in Sources */,
|
||||||
D5B5118E14DEA27F005F7284 /* DeathScreen.cpp in Sources */,
|
D5B5118E14DEA27F005F7284 /* DeathScreen.cpp in Sources */,
|
||||||
|
F99D34242F736AD400DC153E /* TextOption.cpp in Sources */,
|
||||||
D5B5119114DEA2B7005F7284 /* LevelData.cpp in Sources */,
|
D5B5119114DEA2B7005F7284 /* LevelData.cpp in Sources */,
|
||||||
D5B5119414DEA2EF005F7284 /* DyePowderItem.cpp in Sources */,
|
D5B5119414DEA2EF005F7284 /* DyePowderItem.cpp in Sources */,
|
||||||
D584926D14FD234400741128 /* SharedConstants.cpp in Sources */,
|
D584926D14FD234400741128 /* SharedConstants.cpp in Sources */,
|
||||||
D584927314FD236700741128 /* MoveControl.cpp in Sources */,
|
D584927314FD236700741128 /* MoveControl.cpp in Sources */,
|
||||||
|
F99D344C2F7370CF00DC153E /* Slider.cpp in Sources */,
|
||||||
D584928614FD240D00741128 /* IConfigListener.cpp in Sources */,
|
D584928614FD240D00741128 /* IConfigListener.cpp in Sources */,
|
||||||
D584928914FD2FAF00741128 /* Path.cpp in Sources */,
|
D584928914FD2FAF00741128 /* Path.cpp in Sources */,
|
||||||
D5B86281153810BD00F3238A /* I18n.cpp in Sources */,
|
D5B86281153810BD00F3238A /* I18n.cpp in Sources */,
|
||||||
@@ -5562,6 +5661,7 @@
|
|||||||
D5251E011538192700FC82C8 /* NatTypeDetectionServer.cpp in Sources */,
|
D5251E011538192700FC82C8 /* NatTypeDetectionServer.cpp in Sources */,
|
||||||
D5251E031538192700FC82C8 /* NetworkIDManager.cpp in Sources */,
|
D5251E031538192700FC82C8 /* NetworkIDManager.cpp in Sources */,
|
||||||
D5251E051538192700FC82C8 /* NetworkIDObject.cpp in Sources */,
|
D5251E051538192700FC82C8 /* NetworkIDObject.cpp in Sources */,
|
||||||
|
F99D34372F736C1000DC153E /* JoinByIPScreen.cpp in Sources */,
|
||||||
D5251E071538192700FC82C8 /* PacketConsoleLogger.cpp in Sources */,
|
D5251E071538192700FC82C8 /* PacketConsoleLogger.cpp in Sources */,
|
||||||
D5251E091538192700FC82C8 /* PacketFileLogger.cpp in Sources */,
|
D5251E091538192700FC82C8 /* PacketFileLogger.cpp in Sources */,
|
||||||
D5251E0B1538192700FC82C8 /* PacketizedTCP.cpp in Sources */,
|
D5251E0B1538192700FC82C8 /* PacketizedTCP.cpp in Sources */,
|
||||||
@@ -5591,11 +5691,13 @@
|
|||||||
D5251E411538192700FC82C8 /* SendToThread.cpp in Sources */,
|
D5251E411538192700FC82C8 /* SendToThread.cpp in Sources */,
|
||||||
D5251E431538192700FC82C8 /* SHA1.cpp in Sources */,
|
D5251E431538192700FC82C8 /* SHA1.cpp in Sources */,
|
||||||
D5251E451538192700FC82C8 /* SignaledEvent.cpp in Sources */,
|
D5251E451538192700FC82C8 /* SignaledEvent.cpp in Sources */,
|
||||||
|
F99D34342F736BDA00DC153E /* CreditsScreen.cpp in Sources */,
|
||||||
D5251E471538192700FC82C8 /* SimpleMutex.cpp in Sources */,
|
D5251E471538192700FC82C8 /* SimpleMutex.cpp in Sources */,
|
||||||
D5251E491538192700FC82C8 /* SocketLayer.cpp in Sources */,
|
D5251E491538192700FC82C8 /* SocketLayer.cpp in Sources */,
|
||||||
D5251E4B1538192700FC82C8 /* StringCompressor.cpp in Sources */,
|
D5251E4B1538192700FC82C8 /* StringCompressor.cpp in Sources */,
|
||||||
D5251E4D1538192700FC82C8 /* StringTable.cpp in Sources */,
|
D5251E4D1538192700FC82C8 /* StringTable.cpp in Sources */,
|
||||||
D5251E4F1538192700FC82C8 /* SuperFastHash.cpp in Sources */,
|
D5251E4F1538192700FC82C8 /* SuperFastHash.cpp in Sources */,
|
||||||
|
F99D342B2F736B6F00DC153E /* OptionsItem.cpp in Sources */,
|
||||||
D5251E511538192700FC82C8 /* TableSerializer.cpp in Sources */,
|
D5251E511538192700FC82C8 /* TableSerializer.cpp in Sources */,
|
||||||
D5251E531538192700FC82C8 /* TCPInterface.cpp in Sources */,
|
D5251E531538192700FC82C8 /* TCPInterface.cpp in Sources */,
|
||||||
D5251E551538192700FC82C8 /* TeamBalancer.cpp in Sources */,
|
D5251E551538192700FC82C8 /* TeamBalancer.cpp in Sources */,
|
||||||
@@ -5618,6 +5720,7 @@
|
|||||||
D5951EDD159348C50043A12A /* ItemPane.cpp in Sources */,
|
D5951EDD159348C50043A12A /* ItemPane.cpp in Sources */,
|
||||||
D5951EE3159349000043A12A /* FurnaceTile.cpp in Sources */,
|
D5951EE3159349000043A12A /* FurnaceTile.cpp in Sources */,
|
||||||
D5951EE8159349100043A12A /* FurnaceTileEntity.cpp in Sources */,
|
D5951EE8159349100043A12A /* FurnaceTileEntity.cpp in Sources */,
|
||||||
|
F99D342F2F736BAD00DC153E /* ConsoleScreen.cpp in Sources */,
|
||||||
D5951EEA159349100043A12A /* TileEntity.cpp in Sources */,
|
D5951EEA159349100043A12A /* TileEntity.cpp in Sources */,
|
||||||
D5951EEE159349680043A12A /* FurnaceScreen.cpp in Sources */,
|
D5951EEE159349680043A12A /* FurnaceScreen.cpp in Sources */,
|
||||||
D5951EF115934A2D0043A12A /* Feature.cpp in Sources */,
|
D5951EF115934A2D0043A12A /* Feature.cpp in Sources */,
|
||||||
@@ -5654,6 +5757,7 @@
|
|||||||
D544941E15D13F45005FA9B0 /* PlayerRenderer.cpp in Sources */,
|
D544941E15D13F45005FA9B0 /* PlayerRenderer.cpp in Sources */,
|
||||||
D544942215D13F5E005FA9B0 /* RemotePlayer.cpp in Sources */,
|
D544942215D13F5E005FA9B0 /* RemotePlayer.cpp in Sources */,
|
||||||
D5B17ED515E226F50056E751 /* Throwable.cpp in Sources */,
|
D5B17ED515E226F50056E751 /* Throwable.cpp in Sources */,
|
||||||
|
F99D341F2F736AA100DC153E /* HttpClient.cpp in Sources */,
|
||||||
D5B17ED915E2273F0056E751 /* SurvivalMode.cpp in Sources */,
|
D5B17ED915E2273F0056E751 /* SurvivalMode.cpp in Sources */,
|
||||||
D5B17EDD15E227670056E751 /* TrapDoorTile.cpp in Sources */,
|
D5B17EDD15E227670056E751 /* TrapDoorTile.cpp in Sources */,
|
||||||
D5B17EE115E260910056E751 /* MoveFolder.mm in Sources */,
|
D5B17EE115E260910056E751 /* MoveFolder.mm in Sources */,
|
||||||
@@ -5689,6 +5793,7 @@
|
|||||||
0400453A16A4125C003EB6FA /* FallingTileRenderer.cpp in Sources */,
|
0400453A16A4125C003EB6FA /* FallingTileRenderer.cpp in Sources */,
|
||||||
0413970716A82E1E008A9F1A /* ArmorItem.cpp in Sources */,
|
0413970716A82E1E008A9F1A /* ArmorItem.cpp in Sources */,
|
||||||
0413970D16A82E6B008A9F1A /* CraftingFilters.cpp in Sources */,
|
0413970D16A82E6B008A9F1A /* CraftingFilters.cpp in Sources */,
|
||||||
|
F99D34272F736AFB00DC153E /* OptionsFile.cpp in Sources */,
|
||||||
0413970E16A82E6B008A9F1A /* StonecutterScreen.cpp in Sources */,
|
0413970E16A82E6B008A9F1A /* StonecutterScreen.cpp in Sources */,
|
||||||
0413971116A82E7B008A9F1A /* ArmorScreen.cpp in Sources */,
|
0413971116A82E7B008A9F1A /* ArmorScreen.cpp in Sources */,
|
||||||
0413971516A82EB9008A9F1A /* ArmorRecipes.cpp in Sources */,
|
0413971516A82EB9008A9F1A /* ArmorRecipes.cpp in Sources */,
|
||||||
@@ -5697,7 +5802,6 @@
|
|||||||
042A91AE16B17517007ABBC6 /* GuiElement.cpp in Sources */,
|
042A91AE16B17517007ABBC6 /* GuiElement.cpp in Sources */,
|
||||||
042A91AF16B17517007ABBC6 /* NinePatch.cpp in Sources */,
|
042A91AF16B17517007ABBC6 /* NinePatch.cpp in Sources */,
|
||||||
042A91B016B17517007ABBC6 /* OptionsGroup.cpp in Sources */,
|
042A91B016B17517007ABBC6 /* OptionsGroup.cpp in Sources */,
|
||||||
042A91B116B17517007ABBC6 /* OptionsPane.cpp in Sources */,
|
|
||||||
042A91B216B17517007ABBC6 /* TextBox.cpp in Sources */,
|
042A91B216B17517007ABBC6 /* TextBox.cpp in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@@ -5735,25 +5839,29 @@
|
|||||||
D50BE20815EE05B8008AA75E /* Ad-Hoc */ = {
|
D50BE20815EE05B8008AA75E /* Ad-Hoc */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||||
ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
|
ARCHS = "$(ARCHS_STANDARD)";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Mojang AB";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Mojang AB";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = PUBLISH;
|
GCC_PREPROCESSOR_DEFINITIONS = PUBLISH;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "C93D3524-5C6F-466E-B12B-833663B7EAE0";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "C93D3524-5C6F-466E-B12B-833663B7EAE0";
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
name = "Ad-Hoc";
|
name = "Ad-Hoc";
|
||||||
@@ -5765,15 +5873,26 @@
|
|||||||
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = "";
|
GCC_PREPROCESSOR_DEFINITIONS = "";
|
||||||
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||||
HEADER_SEARCH_PATHS = "";
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(SRCROOT)/../../src",
|
||||||
|
"$(SRCROOT)/../../src/client/gui/components",
|
||||||
|
"$(SRCROOT)/../../src/world",
|
||||||
|
"$(SRCROOT)/../../src/platform/input",
|
||||||
|
"$(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views",
|
||||||
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
VALID_ARCHS = "i386 armv6 armv7";
|
SYSTEM_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../lib_projects/InAppSettingsKit/Models $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
name = "Ad-Hoc";
|
name = "Ad-Hoc";
|
||||||
@@ -5846,24 +5965,28 @@
|
|||||||
D5A20ADB146AAD9C00A52FEC /* AppStore */ = {
|
D5A20ADB146AAD9C00A52FEC /* AppStore */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||||
ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
|
ARCHS = "$(ARCHS_STANDARD)";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Mojang AB";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Mojang AB";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "64BA8967-1A9A-4980-972C-42E75AD5E023";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "64BA8967-1A9A-4980-972C-42E75AD5E023";
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
name = AppStore;
|
name = AppStore;
|
||||||
@@ -5876,11 +5999,19 @@
|
|||||||
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = PUBLISH;
|
GCC_PREPROCESSOR_DEFINITIONS = PUBLISH;
|
||||||
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||||
HEADER_SEARCH_PATHS = "";
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(SRCROOT)/../../src",
|
||||||
|
"$(SRCROOT)/../../src/client/gui/components",
|
||||||
|
"$(SRCROOT)/../../src/world",
|
||||||
|
"$(SRCROOT)/../../src/platform/input",
|
||||||
|
"$(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views",
|
||||||
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"-DNS_BLOCK_ASSERTIONS=1",
|
"-DNS_BLOCK_ASSERTIONS=1",
|
||||||
"-DANDROID_PUBLISH",
|
"-DANDROID_PUBLISH",
|
||||||
@@ -5888,8 +6019,10 @@
|
|||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "1B194957-98CF-49B7-A0E7-76692B4B722D";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "1B194957-98CF-49B7-A0E7-76692B4B722D";
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
VALID_ARCHS = "i386 armv6 armv7";
|
SYSTEM_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../lib_projects/InAppSettingsKit/Models $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
name = AppStore;
|
name = AppStore;
|
||||||
@@ -5922,8 +6055,8 @@
|
|||||||
D5CF9C6C144C225000E4244F /* Debug */ = {
|
D5CF9C6C144C225000E4244F /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||||
ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
|
ARCHS = "$(ARCHS_STANDARD)";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
@@ -5935,41 +6068,50 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
);
|
);
|
||||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
D5CF9C6D144C225000E4244F /* Release */ = {
|
D5CF9C6D144C225000E4244F /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = YES;
|
||||||
ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
|
ARCHS = "$(ARCHS_STANDARD)";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = PUBLISH;
|
GCC_PREPROCESSOR_DEFINITIONS = PUBLISH;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
|
||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
@@ -5977,19 +6119,34 @@
|
|||||||
D5CF9C6F144C225000E4244F /* Debug */ = {
|
D5CF9C6F144C225000E4244F /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
DEVELOPMENT_TEAM = PZUVNW8F2U;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
|
||||||
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||||
HEADER_SEARCH_PATHS = "";
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(SRCROOT)/../../src",
|
||||||
|
"$(SRCROOT)/../../src/client/gui/components",
|
||||||
|
"$(SRCROOT)/../../src/world",
|
||||||
|
"$(SRCROOT)/../../src/platform/input",
|
||||||
|
"$(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views",
|
||||||
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
VALID_ARCHS = "i386 armv6 armv7";
|
SYSTEM_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../lib_projects/InAppSettingsKit/Models $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@@ -5997,19 +6154,34 @@
|
|||||||
D5CF9C70144C225000E4244F /* Release */ = {
|
D5CF9C70144C225000E4244F /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
DEVELOPMENT_TEAM = PZUVNW8F2U;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
GCC_PREFIX_HEADER = "minecraftpe/minecraftpe-Prefix.pch";
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = "";
|
GCC_PREPROCESSOR_DEFINITIONS = "";
|
||||||
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
"GCC_THUMB_SUPPORT[arch=armv7]" = NO;
|
||||||
GCC_VERSION = com.apple.compilers.llvmgcc42;
|
GCC_VERSION = "";
|
||||||
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
|
||||||
HEADER_SEARCH_PATHS = "";
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(SRCROOT)/../../src",
|
||||||
|
"$(SRCROOT)/../../src/client/gui/components",
|
||||||
|
"$(SRCROOT)/../../src/world",
|
||||||
|
"$(SRCROOT)/../../src/platform/input",
|
||||||
|
"$(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views",
|
||||||
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos6.0;
|
SDKROOT = iphoneos;
|
||||||
VALID_ARCHS = "i386 armv6 armv7";
|
SYSTEM_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src $(SRCROOT)/../lib_projects/InAppSettingsKit/Models $(SRCROOT)/../../src/client/gui/components $(SRCROOT)/../../src/world $(SRCROOT)/../../src/platform/input $(SRCROOT)/../../project/lib_projects/InAppSettingsKit/Views";
|
||||||
|
USE_HEADERMAP = NO;
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.mojang.${PRODUCT_NAME:rfc1034identifier}</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
@@ -58,6 +58,8 @@
|
|||||||
<array>
|
<array>
|
||||||
<string>minecraft.ttf</string>
|
<string>minecraft.ttf</string>
|
||||||
</array>
|
</array>
|
||||||
|
<key>UILaunchStoryboardName</key>
|
||||||
|
<string>Launch Screen</string>
|
||||||
<key>UIPrerenderedIcon</key>
|
<key>UIPrerenderedIcon</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>UIRequiresPersistentWiFi</key>
|
<key>UIRequiresPersistentWiFi</key>
|
||||||
|
|||||||
@@ -52,11 +52,10 @@ public:
|
|||||||
|
|
||||||
virtual StringVector getOptionStrings();
|
virtual StringVector getOptionStrings();
|
||||||
|
|
||||||
virtual bool isPowerVR() { return false; }
|
virtual bool isPowerVR();
|
||||||
virtual bool isSuperFast();
|
virtual bool isSuperFast();
|
||||||
virtual void showKeyboard();
|
virtual void showKeyboard();
|
||||||
virtual void hideKeyboard();
|
virtual void hideKeyboard();
|
||||||
virtual void isPowerVR();
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
std::string _basePath;
|
std::string _basePath;
|
||||||
|
|||||||
@@ -275,8 +275,10 @@ void AppPlatform_iOS::hideKeyboard() {
|
|||||||
[_viewController hideKeyboard];
|
[_viewController hideKeyboard];
|
||||||
super::hideKeyboard();
|
super::hideKeyboard();
|
||||||
}
|
}
|
||||||
void AppPlatform_iOS::isPowerVR() {
|
|
||||||
|
// this was originally void but i changed it to bool because void cant return values
|
||||||
|
bool AppPlatform_iOS::isPowerVR() {
|
||||||
const char* s = (const char*)glGetString(GL_RENDERER);
|
const char* s = (const char*)glGetString(GL_RENDERER);
|
||||||
if (!s) return false;
|
if (!s) return false;
|
||||||
return strstr(s, "SGX") != NULL;
|
return strstr(s, "SGX") != NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
21
src/client/KeyMapping.h
Normal file
21
src/client/KeyMapping.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#ifndef NET_MINECRAFT_CLIENT__KeyMapping_H__
|
||||||
|
#define NET_MINECRAFT_CLIENT__KeyMapping_H__
|
||||||
|
|
||||||
|
//package net.minecraft.client;
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class KeyMapping
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
std::string name;
|
||||||
|
int key;
|
||||||
|
|
||||||
|
KeyMapping() {}
|
||||||
|
|
||||||
|
KeyMapping(const std::string& name_, int key_)
|
||||||
|
: name(name_),
|
||||||
|
key(key_)
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /*NET_MINECRAFT_CLIENT__KeyMapping_H__*/
|
||||||
@@ -90,7 +90,6 @@
|
|||||||
#include "../network/command/CommandServer.h"
|
#include "../network/command/CommandServer.h"
|
||||||
#include "gamemode/CreatorMode.h"
|
#include "gamemode/CreatorMode.h"
|
||||||
|
|
||||||
#include "../world/level/GrassColor.h"
|
|
||||||
static void checkGlError(const char* tag) {
|
static void checkGlError(const char* tag) {
|
||||||
#ifdef GLDEBUG
|
#ifdef GLDEBUG
|
||||||
while (1) {
|
while (1) {
|
||||||
@@ -1106,7 +1105,9 @@ void Minecraft::releaseMouse()
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Minecraft::useTouchscreen() {
|
bool Minecraft::useTouchscreen() {
|
||||||
#ifdef RPI
|
#if TARGET_OS_IPHONE
|
||||||
|
return true;
|
||||||
|
#elif RPI
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
return options.getBooleanValue(OPTIONS_USE_TOUCHSCREEN) && !_supportsNonTouchscreen;
|
return options.getBooleanValue(OPTIONS_USE_TOUCHSCREEN) && !_supportsNonTouchscreen;
|
||||||
@@ -1126,31 +1127,12 @@ void Minecraft::init()
|
|||||||
textures = new Textures(&options, platform());
|
textures = new Textures(&options, platform());
|
||||||
textures->addDynamicTexture(new WaterTexture());
|
textures->addDynamicTexture(new WaterTexture());
|
||||||
textures->addDynamicTexture(new WaterSideTexture());
|
textures->addDynamicTexture(new WaterSideTexture());
|
||||||
textures->addDynamicTexture(new FireTexture());
|
|
||||||
gui.texturesLoaded(textures);
|
gui.texturesLoaded(textures);
|
||||||
|
|
||||||
levelRenderer = new LevelRenderer(this);
|
levelRenderer = new LevelRenderer(this);
|
||||||
gameRenderer = new GameRenderer(this);
|
gameRenderer = new GameRenderer(this);
|
||||||
particleEngine = new ParticleEngine(level, textures);
|
particleEngine = new ParticleEngine(level, textures);
|
||||||
|
|
||||||
// 4j's code for reference
|
|
||||||
// FoliageColor::init(textures->loadTexturePixels(L"misc/foliagecolor.png"));
|
|
||||||
|
|
||||||
|
|
||||||
// my code
|
|
||||||
TextureId foliageId = (textures->loadTexture("misc/foliagecolor.png")); // loading the uh png for foliage color
|
|
||||||
int* foliagePixels = textures->loadTexturePixels(foliageId, "misc/foliagecolor.png");
|
|
||||||
// now i can finally initialize foliage color, probably not the best way to handle this but i cant be arsed rn
|
|
||||||
FoliageColor::init(foliagePixels);
|
|
||||||
|
|
||||||
TextureId grassId = (textures->loadTexture("misc/foliagecolor.png")); // loading the uh png for foliage color
|
|
||||||
int* grassPixels = textures->loadTexturePixels(grassId, "misc/foliagecolor.png");
|
|
||||||
GrassColor::init(grassPixels);
|
|
||||||
|
|
||||||
bool tint = options.getBooleanValue(OPTIONS_FOLIAGE_TINT); // finally, toggleable foliage color
|
|
||||||
FoliageColor::setUseTint(tint);
|
|
||||||
GrassColor::setUseTint(tint);
|
|
||||||
|
|
||||||
// Platform specific initialization here
|
// Platform specific initialization here
|
||||||
font = new Font(&options, "font/default8.png", textures);
|
font = new Font(&options, "font/default8.png", textures);
|
||||||
|
|
||||||
@@ -1212,7 +1194,7 @@ void Minecraft::setSize(int w, int h) {
|
|||||||
int screenHeight = (int)(height * Gui::InvGuiScale);
|
int screenHeight = (int)(height * Gui::InvGuiScale);
|
||||||
|
|
||||||
// if (platform()) {
|
// if (platform()) {
|
||||||
// float pixelsPerMillimeter = options.getProgressValue(&Options::Option::PIXELS_PER_MILLIMETER);
|
// float pixelsPerMillimeter = options.getProgressValue(&Option::PIXELS_PER_MILLIMETER);
|
||||||
// pixelCalc.setPixelsPerMillimeter(pixelsPerMillimeter);
|
// pixelCalc.setPixelsPerMillimeter(pixelsPerMillimeter);
|
||||||
// pixelCalcUi.setPixelsPerMillimeter(pixelsPerMillimeter * Gui::InvGuiScale);
|
// pixelCalcUi.setPixelsPerMillimeter(pixelsPerMillimeter * Gui::InvGuiScale);
|
||||||
// }
|
// }
|
||||||
@@ -1401,12 +1383,6 @@ void Minecraft::_levelGenerated()
|
|||||||
player->resetPos(false);
|
player->resetPos(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (level && level->dimension) {
|
|
||||||
// For example, if you want FogType or any other option
|
|
||||||
level->dimension->FogType = options.getBooleanValue(OPTIONS_FOG_TYPE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
this->cameraTargetPlayer = player;
|
this->cameraTargetPlayer = player;
|
||||||
|
|
||||||
std::string serverName = options.getStringValue(OPTIONS_USERNAME) + " - " + level->getLevelData()->levelName;
|
std::string serverName = options.getStringValue(OPTIONS_USERNAME) + " - " + level->getLevelData()->levelName;
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ private:
|
|||||||
bool _isCreativeMode;
|
bool _isCreativeMode;
|
||||||
//int _respawnPlayerTicks;
|
//int _respawnPlayerTicks;
|
||||||
Player* _pendingRemovePlayer; // @attn @todo @fix: remove this shait and fix the respawn behaviour
|
Player* _pendingRemovePlayer; // @attn @todo @fix: remove this shait and fix the respawn behaviour
|
||||||
|
// shit* lmao
|
||||||
|
|
||||||
PerfRenderer* _perfRenderer;
|
PerfRenderer* _perfRenderer;
|
||||||
CommandServer* _commandServer;
|
CommandServer* _commandServer;
|
||||||
|
|||||||
@@ -104,4 +104,4 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::string m_value;
|
std::string m_value;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -60,12 +60,6 @@ OptionBool useTouchscreen("useTouchscreen", true);
|
|||||||
|
|
||||||
OptionBool serverVisible("servervisible", true);
|
OptionBool serverVisible("servervisible", true);
|
||||||
|
|
||||||
OptionBool foliageTint("foliagetint", false);
|
|
||||||
|
|
||||||
OptionInt fogType("fogType", 0, 0, 2);
|
|
||||||
|
|
||||||
OptionBool javaHud("javaHud", false);
|
|
||||||
|
|
||||||
OptionInt keyForward("key.forward", Keyboard::KEY_W);
|
OptionInt keyForward("key.forward", Keyboard::KEY_W);
|
||||||
OptionInt keyLeft("key.left", Keyboard::KEY_A);
|
OptionInt keyLeft("key.left", Keyboard::KEY_A);
|
||||||
OptionInt keyBack("key.back", Keyboard::KEY_S);
|
OptionInt keyBack("key.back", Keyboard::KEY_S);
|
||||||
@@ -142,8 +136,6 @@ void Options::initTable() {
|
|||||||
|
|
||||||
m_options[OPTIONS_USE_TOUCHSCREEN] = &useTouchscreen;
|
m_options[OPTIONS_USE_TOUCHSCREEN] = &useTouchscreen;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
m_options[OPTIONS_SERVER_VISIBLE] = &serverVisible;
|
m_options[OPTIONS_SERVER_VISIBLE] = &serverVisible;
|
||||||
|
|
||||||
m_options[OPTIONS_KEY_FORWARD] = &keyForward;
|
m_options[OPTIONS_KEY_FORWARD] = &keyForward;
|
||||||
@@ -168,12 +160,6 @@ void Options::initTable() {
|
|||||||
m_options[OPTIONS_BAR_ON_TOP] = &barOnTop;
|
m_options[OPTIONS_BAR_ON_TOP] = &barOnTop;
|
||||||
m_options[OPTIONS_ALLOW_SPRINT] = &allowSprint;
|
m_options[OPTIONS_ALLOW_SPRINT] = &allowSprint;
|
||||||
m_options[OPTIONS_RPI_CURSOR] = &rpiCursor;
|
m_options[OPTIONS_RPI_CURSOR] = &rpiCursor;
|
||||||
m_options[OPTIONS_FOLIAGE_TINT] = &foliageTint;
|
|
||||||
|
|
||||||
// more options yay
|
|
||||||
m_options[OPTIONS_FOG_TYPE] = &fogType;
|
|
||||||
|
|
||||||
m_options[OPTIONS_JAVA_HUD] = &javaHud;
|
|
||||||
|
|
||||||
m_options[OPTIONS_AUTOJUMP] = &autoJump;
|
m_options[OPTIONS_AUTOJUMP] = &autoJump;
|
||||||
m_options[OPTIONS_LAST_IP] = &lastIp;
|
m_options[OPTIONS_LAST_IP] = &lastIp;
|
||||||
|
|||||||
@@ -84,9 +84,6 @@ enum OptionId {
|
|||||||
OPTIONS_LAST_IP,
|
OPTIONS_LAST_IP,
|
||||||
|
|
||||||
OPTIONS_RPI_CURSOR,
|
OPTIONS_RPI_CURSOR,
|
||||||
OPTIONS_FOLIAGE_TINT,
|
|
||||||
OPTIONS_FOG_TYPE,
|
|
||||||
OPTIONS_JAVA_HUD,
|
|
||||||
// Should be last!
|
// Should be last!
|
||||||
OPTIONS_COUNT
|
OPTIONS_COUNT
|
||||||
};
|
};
|
||||||
@@ -97,6 +94,10 @@ typedef std::vector<std::string> StringVector;
|
|||||||
class Options
|
class Options
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
// deepfriedwaffles: for iOS, was getting compile errors saying: No member named 'sound' in 'Options' and No member named 'music' in 'Options' so I floated them here. 1.0f means full volume out of the box, but if everything is too loud, you might want to try adjusting this
|
||||||
|
float sound = 1.0f;
|
||||||
|
float music = 1.0f;
|
||||||
|
|
||||||
static bool debugGl;
|
static bool debugGl;
|
||||||
|
|
||||||
Options(Minecraft* minecraft, const std::string& workingDirectory = "")
|
Options(Minecraft* minecraft, const std::string& workingDirectory = "")
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ const float Gui::DropTicks = 40.0f;
|
|||||||
//#include <android/log.h>
|
//#include <android/log.h>
|
||||||
|
|
||||||
Gui::Gui(Minecraft* minecraft)
|
Gui::Gui(Minecraft* minecraft)
|
||||||
: minecraft(minecraft),
|
: minecraft(minecraft),
|
||||||
tickCount(0),
|
tickCount(0),
|
||||||
progress(0),
|
progress(0),
|
||||||
overlayMessageTime(0),
|
overlayMessageTime(0),
|
||||||
@@ -77,7 +77,7 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse) {
|
|||||||
Font* font = minecraft->font;
|
Font* font = minecraft->font;
|
||||||
|
|
||||||
const bool isTouchInterface = minecraft->useTouchscreen();
|
const bool isTouchInterface = minecraft->useTouchscreen();
|
||||||
|
|
||||||
const int screenWidth = (int)(minecraft->width * InvGuiScale);
|
const int screenWidth = (int)(minecraft->width * InvGuiScale);
|
||||||
const int screenHeight = (int)(minecraft->height * InvGuiScale);
|
const int screenHeight = (int)(minecraft->height * InvGuiScale);
|
||||||
blitOffset = -90;
|
blitOffset = -90;
|
||||||
@@ -86,9 +86,9 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse) {
|
|||||||
glColor4f2(1, 1, 1, 1);
|
glColor4f2(1, 1, 1, 1);
|
||||||
|
|
||||||
// H: 4
|
// H: 4
|
||||||
// T: 7
|
// T: 7
|
||||||
// L: 6
|
// L: 6
|
||||||
// F: 3
|
// F: 3
|
||||||
int ySlot = screenHeight - 16 - 3;
|
int ySlot = screenHeight - 16 - 3;
|
||||||
|
|
||||||
if (!minecraft->options.getBooleanValue(OPTIONS_HIDEGUI)) {
|
if (!minecraft->options.getBooleanValue(OPTIONS_HIDEGUI)) {
|
||||||
@@ -103,12 +103,6 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @todo - Shredder: I added this here but currently viginette is broken so i cant do much about it.
|
|
||||||
// if (minecraft->options.getBooleanValue(OPTIONS_FANCY_GRAPHICS)){
|
|
||||||
// this->renderVignette(this->minecraft->player->getBrightness(a), screenWidth, screenHeight);
|
|
||||||
// }
|
|
||||||
// shredder end
|
|
||||||
|
|
||||||
if(minecraft->player->getSleepTimer() > 0) {
|
if(minecraft->player->getSleepTimer() > 0) {
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
glDisable(GL_ALPHA_TEST);
|
glDisable(GL_ALPHA_TEST);
|
||||||
@@ -119,38 +113,38 @@ void Gui::render(float a, bool mouseFree, int xMouse, int yMouse) {
|
|||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
}
|
}
|
||||||
if (!minecraft->options.getBooleanValue(OPTIONS_HIDEGUI)) {
|
if (!minecraft->options.getBooleanValue(OPTIONS_HIDEGUI)) {
|
||||||
renderToolBar(a, ySlot, screenWidth);
|
renderToolBar(a, ySlot, screenWidth);
|
||||||
|
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
bool isChatting = (minecraft->screen && (dynamic_cast<ChatScreen*>(minecraft->screen) || dynamic_cast<ConsoleScreen*>(minecraft->screen)));
|
bool isChatting = (minecraft->screen && (dynamic_cast<ChatScreen*>(minecraft->screen) || dynamic_cast<ConsoleScreen*>(minecraft->screen)));
|
||||||
unsigned int max = 10;
|
unsigned int max = 10;
|
||||||
if (isChatting) {
|
if (isChatting) {
|
||||||
int lineHeight = 9;
|
int lineHeight = 9;
|
||||||
max = (screenHeight - 48) / lineHeight;
|
max = (screenHeight - 48) / lineHeight;
|
||||||
if (max < 1) max = 1;
|
if (max < 1) max = 1;
|
||||||
int maxScroll = (int)guiMessages.size() - (int)max;
|
int maxScroll = (int)guiMessages.size() - (int)max;
|
||||||
if (maxScroll < 0) maxScroll = 0;
|
if (maxScroll < 0) maxScroll = 0;
|
||||||
if (chatScrollOffset > maxScroll) chatScrollOffset = maxScroll;
|
if (chatScrollOffset > maxScroll) chatScrollOffset = maxScroll;
|
||||||
} else {
|
} else {
|
||||||
chatScrollOffset = 0;
|
chatScrollOffset = 0;
|
||||||
}
|
}
|
||||||
renderChatMessages(screenHeight, max, isChatting, font);
|
renderChatMessages(screenHeight, max, isChatting, font);
|
||||||
#if !defined(RPI)
|
#if !defined(RPI)
|
||||||
renderOnSelectItemNameText(screenWidth, font, ySlot);
|
renderOnSelectItemNameText(screenWidth, font, ySlot);
|
||||||
#endif
|
#endif
|
||||||
#if defined(RPI)
|
#if defined(RPI)
|
||||||
renderDebugInfo();
|
renderDebugInfo();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (Keyboard::isKeyDown(Keyboard::KEY_TAB)) {
|
if (Keyboard::isKeyDown(Keyboard::KEY_TAB)) {
|
||||||
renderPlayerList(font, screenWidth, screenHeight);
|
renderPlayerList(font, screenWidth, screenHeight);
|
||||||
}
|
|
||||||
|
|
||||||
if (minecraft->options.getBooleanValue(OPTIONS_RENDER_DEBUG))
|
|
||||||
renderDebugInfo();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glDisable(GL_BLEND);
|
if (minecraft->options.getBooleanValue(OPTIONS_RENDER_DEBUG))
|
||||||
|
renderDebugInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
glDisable(GL_BLEND);
|
||||||
glEnable2(GL_ALPHA_TEST);
|
glEnable2(GL_ALPHA_TEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,7 +183,7 @@ void Gui::getSlotPos(int slot, int& posX, int& posY) {
|
|||||||
int screenWidth = (int)(minecraft->width * InvGuiScale);
|
int screenWidth = (int)(minecraft->width * InvGuiScale);
|
||||||
int screenHeight = (int)(minecraft->height * InvGuiScale);
|
int screenHeight = (int)(minecraft->height * InvGuiScale);
|
||||||
posX = screenWidth / 2 - getNumSlots() * 10 + slot * 20,
|
posX = screenWidth / 2 - getNumSlots() * 10 + slot * 20,
|
||||||
posY = screenHeight - 22;
|
posY = screenHeight - 22;
|
||||||
}
|
}
|
||||||
|
|
||||||
RectangleArea Gui::getRectangleArea(int extendSide) {
|
RectangleArea Gui::getRectangleArea(int extendSide) {
|
||||||
@@ -202,7 +196,7 @@ RectangleArea Gui::getRectangleArea(int extendSide) {
|
|||||||
return RectangleArea(0, (float)minecraft->height-pHeight, pCenterX+pHalfWidth+2, (float)minecraft->height);
|
return RectangleArea(0, (float)minecraft->height-pHeight, pCenterX+pHalfWidth+2, (float)minecraft->height);
|
||||||
if (extendSide > 0)
|
if (extendSide > 0)
|
||||||
return RectangleArea(pCenterX-pHalfWidth, (float)minecraft->height-pHeight, (float)minecraft->width, (float)minecraft->height);
|
return RectangleArea(pCenterX-pHalfWidth, (float)minecraft->height-pHeight, (float)minecraft->width, (float)minecraft->height);
|
||||||
|
|
||||||
return RectangleArea(pCenterX-pHalfWidth, (float)minecraft->height-pHeight, pCenterX+pHalfWidth+2, (float)minecraft->height);
|
return RectangleArea(pCenterX-pHalfWidth, (float)minecraft->height-pHeight, pCenterX+pHalfWidth+2, (float)minecraft->height);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -248,7 +242,7 @@ void Gui::handleKeyPressed(int key)
|
|||||||
if (key == Keyboard::KEY_F1) {
|
if (key == Keyboard::KEY_F1) {
|
||||||
minecraft->options.toggle(OPTIONS_HIDEGUI);
|
minecraft->options.toggle(OPTIONS_HIDEGUI);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key == 99)
|
if (key == 99)
|
||||||
{
|
{
|
||||||
if (minecraft->player->inventory->selected > 0)
|
if (minecraft->player->inventory->selected > 0)
|
||||||
@@ -296,11 +290,11 @@ void Gui::tick() {
|
|||||||
if(itemNameOverlayTime < 2)
|
if(itemNameOverlayTime < 2)
|
||||||
itemNameOverlayTime += 1.0f / SharedConstants::TicksPerSecond;
|
itemNameOverlayTime += 1.0f / SharedConstants::TicksPerSecond;
|
||||||
for (unsigned int i = 0; i < guiMessages.size(); i++) {
|
for (unsigned int i = 0; i < guiMessages.size(); i++) {
|
||||||
guiMessages.at(i).ticks++;
|
guiMessages.at(i).ticks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!minecraft->isCreativeMode())
|
if (!minecraft->isCreativeMode())
|
||||||
tickItemDrop();
|
tickItemDrop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gui::addMessage(const std::string& _string) {
|
void Gui::addMessage(const std::string& _string) {
|
||||||
@@ -350,8 +344,6 @@ void Gui::displayClientMessage(const std::string& messageId) {
|
|||||||
addMessage(messageId);
|
addMessage(messageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// @todo - shredder: Function seems to be completely fine and ported over from java beta, but renders opaque??? need to investigate
|
|
||||||
void Gui::renderVignette(float br, int w, int h) {
|
void Gui::renderVignette(float br, int w, int h) {
|
||||||
br = 1 - br;
|
br = 1 - br;
|
||||||
if (br < 0) br = 0;
|
if (br < 0) br = 0;
|
||||||
@@ -362,10 +354,7 @@ void Gui::renderVignette(float br, int w, int h) {
|
|||||||
glDepthMask(false);
|
glDepthMask(false);
|
||||||
glBlendFunc2(GL_ZERO, GL_ONE_MINUS_SRC_COLOR);
|
glBlendFunc2(GL_ZERO, GL_ONE_MINUS_SRC_COLOR);
|
||||||
glColor4f2(tbr, tbr, tbr, 1);
|
glColor4f2(tbr, tbr, tbr, 1);
|
||||||
|
|
||||||
minecraft->textures->loadAndBindTexture("misc/vignette.png");
|
minecraft->textures->loadAndBindTexture("misc/vignette.png");
|
||||||
glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
|
||||||
glTexParameteri2(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
|
||||||
|
|
||||||
Tesselator& t = Tesselator::instance;
|
Tesselator& t = Tesselator::instance;
|
||||||
t.begin();
|
t.begin();
|
||||||
@@ -418,7 +407,7 @@ void Gui::inventoryUpdated() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Gui::onGraphicsReset() {
|
void Gui::onGraphicsReset() {
|
||||||
inventoryUpdated();
|
inventoryUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gui::texturesLoaded( Textures* textures ) {
|
void Gui::texturesLoaded( Textures* textures ) {
|
||||||
@@ -596,12 +585,12 @@ void Gui::renderProgressIndicator( const bool isTouchInterface, const int screen
|
|||||||
bool bowEquipped = currentItem != NULL ? currentItem->getItem() == Item::bow : false;
|
bool bowEquipped = currentItem != NULL ? currentItem->getItem() == Item::bow : false;
|
||||||
bool itemInUse = currentItem != NULL ? currentItem->getItem() == minecraft->player->getUseItem()->getItem() : false;
|
bool itemInUse = currentItem != NULL ? currentItem->getItem() == minecraft->player->getUseItem()->getItem() : false;
|
||||||
if ((!isTouchInterface || minecraft->options.getBooleanValue(OPTIONS_IS_JOY_TOUCH_AREA)
|
if ((!isTouchInterface || minecraft->options.getBooleanValue(OPTIONS_IS_JOY_TOUCH_AREA)
|
||||||
|| (bowEquipped && itemInUse)) && !minecraft->options.getBooleanValue(OPTIONS_HIDEGUI)) {
|
|| (bowEquipped && itemInUse)) && !minecraft->options.getBooleanValue(OPTIONS_HIDEGUI)) {
|
||||||
minecraft->textures->loadAndBindTexture("gui/icons.png");
|
minecraft->textures->loadAndBindTexture("gui/icons.png");
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc2(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR);
|
glBlendFunc2(GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR);
|
||||||
blit(screenWidth/2 - 8, screenHeight/2 - 8, 0, 0, 16, 16);
|
blit(screenWidth/2 - 8, screenHeight/2 - 8, 0, 0, 16, 16);
|
||||||
glDisable(GL_BLEND);
|
glDisable(GL_BLEND);
|
||||||
} else if(!bowEquipped) {
|
} else if(!bowEquipped) {
|
||||||
const float tprogress = minecraft->gameMode->destroyProgress;
|
const float tprogress = minecraft->gameMode->destroyProgress;
|
||||||
const float alpha = Mth::clamp(minecraft->inputHolder->alpha, 0.0f, 1.0f);
|
const float alpha = Mth::clamp(minecraft->inputHolder->alpha, 0.0f, 1.0f);
|
||||||
@@ -676,10 +665,10 @@ void Gui::renderHearts() {
|
|||||||
int ip2 = i + i + 1;
|
int ip2 = i + i + 1;
|
||||||
|
|
||||||
if (armor > 0) {
|
if (armor > 0) {
|
||||||
int xo = xx + 80 + i * 8 + 4;
|
int xo = xx + 80 + i * 8 + 4;
|
||||||
if (ip2 < armor) blit(xo, yo, 16 + 2 * 9, 9 * 1, 9, 9);
|
if (ip2 < armor) blit(xo, yo, 16 + 2 * 9, 9 * 1, 9, 9);
|
||||||
else if (ip2 == armor) blit(xo, yo, 16 + 4 * 9, 9 * 1, 9, 9);
|
else if (ip2 == armor) blit(xo, yo, 16 + 4 * 9, 9 * 1, 9, 9);
|
||||||
else if (ip2 > armor) blit(xo, yo, 16 + 0 * 9, 9 * 1, 9, 9);
|
else if (ip2 > armor) blit(xo, yo, 16 + 0 * 9, 9 * 1, 9, 9);
|
||||||
}
|
}
|
||||||
|
|
||||||
int bg = 0;
|
int bg = 0;
|
||||||
@@ -702,7 +691,7 @@ void Gui::renderBubbles() {
|
|||||||
if (minecraft->player->isUnderLiquid(Material::water)) {
|
if (minecraft->player->isUnderLiquid(Material::water)) {
|
||||||
int screenWidth = (int)(minecraft->width * InvGuiScale);
|
int screenWidth = (int)(minecraft->width * InvGuiScale);
|
||||||
int screenHeight = (int)(minecraft->height * InvGuiScale);
|
int screenHeight = (int)(minecraft->height * InvGuiScale);
|
||||||
|
|
||||||
int xx = (minecraft->options.getBooleanValue(OPTIONS_BAR_ON_TOP)) ? screenWidth / 2 - getNumSlots() * 10 - 1 : 2;
|
int xx = (minecraft->options.getBooleanValue(OPTIONS_BAR_ON_TOP)) ? screenWidth / 2 - getNumSlots() * 10 - 1 : 2;
|
||||||
int yo = (minecraft->options.getBooleanValue(OPTIONS_BAR_ON_TOP)) ? screenHeight - 42 : 12;
|
int yo = (minecraft->options.getBooleanValue(OPTIONS_BAR_ON_TOP)) ? screenHeight - 42 : 12;
|
||||||
int count = (int) std::ceil((minecraft->player->airSupply - 2) * 10.0f / Player::TOTAL_AIR_SUPPLY);
|
int count = (int) std::ceil((minecraft->player->airSupply - 2) * 10.0f / Player::TOTAL_AIR_SUPPLY);
|
||||||
@@ -921,64 +910,64 @@ void Gui::renderOnSelectItemNameText( const int screenWidth, Font* font, int ySl
|
|||||||
|
|
||||||
// helper structure used by drawColoredString
|
// helper structure used by drawColoredString
|
||||||
struct ColorSegment {
|
struct ColorSegment {
|
||||||
std::string text;
|
std::string text;
|
||||||
uint32_t color;
|
uint32_t color;
|
||||||
};
|
};
|
||||||
|
|
||||||
// parse [tag] and [/tag] markers; tags may contain a color name (gold, green, etc.)
|
// parse [tag] and [/tag] markers; tags may contain a color name (gold, green, etc.)
|
||||||
static void parseColorTags(const std::string& in, std::vector<ColorSegment>& out) {
|
static void parseColorTags(const std::string& in, std::vector<ColorSegment>& out) {
|
||||||
uint32_t curColor = 0xffffff;
|
uint32_t curColor = 0xffffff;
|
||||||
size_t pos = 0;
|
size_t pos = 0;
|
||||||
while (pos < in.size()) {
|
while (pos < in.size()) {
|
||||||
size_t open = in.find('[', pos);
|
size_t open = in.find('[', pos);
|
||||||
if (open == std::string::npos) {
|
if (open == std::string::npos) {
|
||||||
out.push_back({in.substr(pos), curColor});
|
out.push_back({in.substr(pos), curColor});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (open > pos) {
|
if (open > pos) {
|
||||||
out.push_back({in.substr(pos, open - pos), curColor});
|
out.push_back({in.substr(pos, open - pos), curColor});
|
||||||
}
|
}
|
||||||
size_t close = in.find(']', open);
|
size_t close = in.find(']', open);
|
||||||
if (close == std::string::npos) {
|
if (close == std::string::npos) {
|
||||||
out.push_back({in.substr(open), curColor});
|
out.push_back({in.substr(open), curColor});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
std::string tag = in.substr(open + 1, close - open - 1);
|
std::string tag = in.substr(open + 1, close - open - 1);
|
||||||
if (!tag.empty() && tag[0] == '/') {
|
if (!tag.empty() && tag[0] == '/') {
|
||||||
curColor = 0xffffff;
|
curColor = 0xffffff;
|
||||||
} else {
|
} else {
|
||||||
std::string lower;
|
std::string lower;
|
||||||
lower.resize(tag.size());
|
lower.resize(tag.size());
|
||||||
std::transform(tag.begin(), tag.end(), lower.begin(), ::tolower);
|
std::transform(tag.begin(), tag.end(), lower.begin(), ::tolower);
|
||||||
if (lower.find("gold") != std::string::npos) curColor = 0xffd700;
|
if (lower.find("gold") != std::string::npos) curColor = 0xffd700;
|
||||||
else if (lower.find("green") != std::string::npos) curColor = 0x00ff00;
|
else if (lower.find("green") != std::string::npos) curColor = 0x00ff00;
|
||||||
else if (lower.find("yellow") != std::string::npos) curColor = 0xffff00;
|
else if (lower.find("yellow") != std::string::npos) curColor = 0xffff00;
|
||||||
else if (lower.find("red") != std::string::npos) curColor = 0xff0000;
|
else if (lower.find("red") != std::string::npos) curColor = 0xff0000;
|
||||||
else if (lower.find("blue") != std::string::npos) curColor = 0x0000ff;
|
else if (lower.find("blue") != std::string::npos) curColor = 0x0000ff;
|
||||||
}
|
}
|
||||||
pos = close + 1;
|
pos = close + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gui::drawColoredString(Font* font, const std::string& text, float x, float y, int alpha) {
|
void Gui::drawColoredString(Font* font, const std::string& text, float x, float y, int alpha) {
|
||||||
std::vector<ColorSegment> segs;
|
std::vector<ColorSegment> segs;
|
||||||
parseColorTags(text, segs);
|
parseColorTags(text, segs);
|
||||||
float cx = x;
|
float cx = x;
|
||||||
for (auto &s : segs) {
|
for (auto &s : segs) {
|
||||||
int color = s.color + (alpha << 24);
|
int color = s.color + (alpha << 24);
|
||||||
font->drawShadow(s.text, cx, y, color);
|
font->drawShadow(s.text, cx, y, color);
|
||||||
cx += font->width(s.text);
|
cx += font->width(s.text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float Gui::getColoredWidth(Font* font, const std::string& text) {
|
float Gui::getColoredWidth(Font* font, const std::string& text) {
|
||||||
std::vector<ColorSegment> segs;
|
std::vector<ColorSegment> segs;
|
||||||
parseColorTags(text, segs);
|
parseColorTags(text, segs);
|
||||||
float w = 0;
|
float w = 0;
|
||||||
for (auto &s : segs) {
|
for (auto &s : segs) {
|
||||||
w += font->width(s.text);
|
w += font->width(s.text);
|
||||||
}
|
}
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gui::renderChatMessages( const int screenHeight, unsigned int max, bool isChatting, Font* font ) {
|
void Gui::renderChatMessages( const int screenHeight, unsigned int max, bool isChatting, Font* font ) {
|
||||||
@@ -1022,13 +1011,13 @@ void Gui::renderChatMessages( const int screenHeight, unsigned int max, bool isC
|
|||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
|
|
||||||
// special-case join/leave announcements
|
// special-case join/leave announcements
|
||||||
int baseColor = 0xffffff;
|
int baseColor = 0xffffff;
|
||||||
if (msg.find(" joined the game") != std::string::npos ||
|
if (msg.find(" joined the game") != std::string::npos ||
|
||||||
msg.find(" left the game") != std::string::npos) {
|
msg.find(" left the game") != std::string::npos) {
|
||||||
baseColor = 0xffff00; // yellow
|
baseColor = 0xffff00; // yellow
|
||||||
}
|
}
|
||||||
// replace previous logic; allow full colour tags now
|
// replace previous logic; allow full colour tags now
|
||||||
Gui::drawColoredString(font, msg, x, y, alpha);
|
Gui::drawColoredString(font, msg, x, y, alpha);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1116,41 +1105,22 @@ void Gui::renderToolBar( float a, int ySlot, const int screenWidth ) {
|
|||||||
|
|
||||||
// Draw count
|
// Draw count
|
||||||
//Tesselator& t = Tesselator::instance;
|
//Tesselator& t = Tesselator::instance;
|
||||||
|
glPushMatrix2();
|
||||||
|
glScalef2(InvGuiScale + InvGuiScale, InvGuiScale + InvGuiScale, 1);
|
||||||
const float k = 0.5f * GuiScale;
|
const float k = 0.5f * GuiScale;
|
||||||
if (minecraft->options.getBooleanValue(OPTIONS_JAVA_HUD)) // if true enables the java beta item count size and color and calls the java items decorations
|
|
||||||
{
|
t.beginOverride();
|
||||||
t.beginOverride();
|
if (minecraft->gameMode->isSurvivalType()) {
|
||||||
if (minecraft->gameMode->isSurvivalType()) {
|
x = baseItemX;
|
||||||
x = baseItemX;
|
for (int i = 0; i < slots; i++) {
|
||||||
for (int i = 0; i < slots; i++) {
|
ItemInstance* item = minecraft->player->inventory->getItem(i);
|
||||||
ItemInstance* item = minecraft->player->inventory->getItem(i);
|
if (item && item->count >= 0)
|
||||||
if (item && item->count >= 0)
|
renderSlotText(item, k*x, k*ySlot + 1, true, true);
|
||||||
ItemRenderer::renderGuiItemDecorations(minecraft->font, minecraft->textures, minecraft->player->inventory->getItem(i), x, (float)ySlot);
|
x += 20;
|
||||||
x += 20;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
minecraft->textures->loadAndBindTexture("font/default8.png");
|
|
||||||
t.endOverrideAndDraw();
|
|
||||||
}
|
|
||||||
else { // otherwise uses the normal pocket edition one
|
|
||||||
glPushMatrix2();
|
|
||||||
glScalef2(InvGuiScale + InvGuiScale, InvGuiScale + InvGuiScale, 1);
|
|
||||||
t.beginOverride();
|
|
||||||
if (minecraft->gameMode->isSurvivalType()) {
|
|
||||||
x = baseItemX;
|
|
||||||
for (int i = 0; i < slots; i++) {
|
|
||||||
ItemInstance* item = minecraft->player->inventory->getItem(i);
|
|
||||||
if (item && item->count >= 0)
|
|
||||||
renderSlotText(item, k*x, k*ySlot, true, true);
|
|
||||||
x += 20;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
minecraft->textures->loadAndBindTexture("font/default8.png");
|
|
||||||
t.endOverrideAndDraw();
|
|
||||||
|
|
||||||
glPopMatrix2();
|
|
||||||
}
|
}
|
||||||
|
minecraft->textures->loadAndBindTexture("font/default8.png");
|
||||||
|
t.endOverrideAndDraw();
|
||||||
|
|
||||||
|
glPopMatrix2();
|
||||||
}
|
}
|
||||||
|
|||||||
64
src/client/gui/components/OptionsPane.cpp
Normal file
64
src/client/gui/components/OptionsPane.cpp
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#include "OptionsPane.h"
|
||||||
|
#include "OptionsGroup.h"
|
||||||
|
#include "OptionsItem.h"
|
||||||
|
#include "ImageButton.h"
|
||||||
|
#include "Slider.h"
|
||||||
|
#include "../../Minecraft.h"
|
||||||
|
#include "client/Options.h"
|
||||||
|
|
||||||
|
OptionsPane::OptionsPane() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsPane::setupPositions() {
|
||||||
|
int currentHeight = y + 1;
|
||||||
|
for(std::vector<GuiElement*>::iterator it = children.begin(); it != children.end(); ++it ) {
|
||||||
|
(*it)->width = width;
|
||||||
|
(*it)->y = currentHeight;
|
||||||
|
(*it)->x = x;
|
||||||
|
currentHeight += (*it)->height + 1;
|
||||||
|
}
|
||||||
|
height = currentHeight;
|
||||||
|
super::setupPositions();
|
||||||
|
}
|
||||||
|
|
||||||
|
OptionsGroup& OptionsPane::createOptionsGroup( std::string label ) {
|
||||||
|
OptionsGroup* newGroup = new OptionsGroup(label);
|
||||||
|
children.push_back(newGroup);
|
||||||
|
// create and return a new group index
|
||||||
|
return *newGroup;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsPane::createToggle( unsigned int group, std::string label, OptionId option ) {
|
||||||
|
if(group > children.size()) return;
|
||||||
|
ImageDef def;
|
||||||
|
def.setSrc(IntRectangle(160, 206, 39, 20));
|
||||||
|
def.name = "gui/touchgui.png";
|
||||||
|
def.width = 39 * 0.7f;
|
||||||
|
def.height = 20 * 0.7f;
|
||||||
|
OptionButton* element = new OptionButton(option);
|
||||||
|
element->setImageDef(def, true);
|
||||||
|
OptionsItem* item = new OptionsItem(option, label, element);
|
||||||
|
((OptionsGroup*)children[group])->addChild(item);
|
||||||
|
setupPositions();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsPane::createProgressSlider( Minecraft* minecraft, unsigned int group, std::string label, OptionId option, float progressMin/*=1.0f*/, float progressMax/*=1.0f */ ) {
|
||||||
|
if(group > children.size()) return;
|
||||||
|
Slider* element = new SliderFloat(minecraft, option);
|
||||||
|
element->width = 100;
|
||||||
|
element->height = 20;
|
||||||
|
OptionsItem* item = new OptionsItem(option, label, element);
|
||||||
|
((OptionsGroup*)children[group])->addChild(item);
|
||||||
|
setupPositions();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OptionsPane::createStepSlider( Minecraft* minecraft, unsigned int group, std::string label, OptionId option, const std::vector<int>& stepVec ) {
|
||||||
|
if(group > children.size()) return;
|
||||||
|
Slider* element = new SliderInt(minecraft, option);
|
||||||
|
element->width = 100;
|
||||||
|
element->height = 20;
|
||||||
|
OptionsItem* item = new OptionsItem(option, label, element);
|
||||||
|
((OptionsGroup*)children[group])->addChild(item);
|
||||||
|
setupPositions();
|
||||||
|
}
|
||||||
30
src/client/gui/components/OptionsPane.h
Normal file
30
src/client/gui/components/OptionsPane.h
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#ifndef ITEMPANE_H__
|
||||||
|
#define ITEMPANE_H__
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include "GuiElementContainer.h"
|
||||||
|
#include "../../../world/item/ItemInstance.h"
|
||||||
|
#include "../../../client/Options.h"
|
||||||
|
class Font;
|
||||||
|
class Textures;
|
||||||
|
class NinePatchLayer;
|
||||||
|
class ItemPane;
|
||||||
|
class OptionButton;
|
||||||
|
class Button;
|
||||||
|
class OptionsGroup;
|
||||||
|
class Slider;
|
||||||
|
class Minecraft;
|
||||||
|
class OptionsPane: public GuiElementContainer
|
||||||
|
{
|
||||||
|
typedef GuiElementContainer super;
|
||||||
|
public:
|
||||||
|
OptionsPane();
|
||||||
|
OptionsGroup& createOptionsGroup( std::string label );
|
||||||
|
void createToggle( unsigned int group, std::string label, OptionId option );
|
||||||
|
void createProgressSlider(Minecraft* minecraft, unsigned int group, std::string label, OptionId option, float progressMin=1.0f, float progressMax=1.0f );
|
||||||
|
void createStepSlider(Minecraft* minecraft, unsigned int group, std::string label, OptionId option, const std::vector<int>& stepVec );
|
||||||
|
void setupPositions();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /*ITEMPANE_H__*/
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "GuiElement.h"
|
#include "GuiElement.h"
|
||||||
#include "../../../client/Options.h"
|
#include "../../../client/Options.h"
|
||||||
#include <client/Option.h>
|
|
||||||
|
|
||||||
class Slider : public GuiElement {
|
class Slider : public GuiElement {
|
||||||
typedef GuiElement super;
|
typedef GuiElement super;
|
||||||
|
|||||||
24
src/client/gui/components/SmallButton.cpp
Normal file
24
src/client/gui/components/SmallButton.cpp
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#include "SmallButton.h"
|
||||||
|
|
||||||
|
SmallButton::SmallButton( int id, int x, int y, const std::string& msg )
|
||||||
|
: super(id, x, y, 150, 20, msg),
|
||||||
|
option(NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
SmallButton::SmallButton( int id, int x, int y, int width, int height, const std::string& msg )
|
||||||
|
: super(id, x, y, width, height, msg),
|
||||||
|
option(NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
SmallButton::SmallButton( int id, int x, int y, Option* item, const std::string& msg )
|
||||||
|
: super(id, x, y, 150, 20, msg),
|
||||||
|
option(item)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Option* SmallButton::getOption()
|
||||||
|
{
|
||||||
|
return option;
|
||||||
|
}
|
||||||
23
src/client/gui/components/SmallButton.h
Normal file
23
src/client/gui/components/SmallButton.h
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef NET_MINECRAFT_CLIENT_GUI_COMPONENTS__SmallButton_H__
|
||||||
|
#define NET_MINECRAFT_CLIENT_GUI_COMPONENTS__SmallButton_H__
|
||||||
|
|
||||||
|
//package net.minecraft.client.gui;
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "Button.h"
|
||||||
|
#include "../../Options.h"
|
||||||
|
|
||||||
|
class SmallButton: public Button
|
||||||
|
{
|
||||||
|
typedef Button super;
|
||||||
|
public:
|
||||||
|
SmallButton(int id, int x, int y, const std::string& msg);
|
||||||
|
SmallButton(int id, int x, int y, int width, int height, const std::string& msg);
|
||||||
|
SmallButton(int id, int x, int y, Option* item, const std::string& msg);
|
||||||
|
|
||||||
|
Option* getOption();
|
||||||
|
private:
|
||||||
|
Option* option;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /*NET_MINECRAFT_CLIENT_GUI_COMPONENTS__SmallButton_H__*/
|
||||||
26
src/client/gui/screens/BuyGameScreen.h
Normal file
26
src/client/gui/screens/BuyGameScreen.h
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__BuyGameScreen_H__
|
||||||
|
#define NET_MINECRAFT_CLIENT_GUI_SCREENS__BuyGameScreen_H__
|
||||||
|
|
||||||
|
#include "../Screen.h"
|
||||||
|
#include "../components/Button.h"
|
||||||
|
|
||||||
|
class BuyGameScreen: public Screen
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BuyGameScreen() {}
|
||||||
|
virtual ~BuyGameScreen() {}
|
||||||
|
|
||||||
|
void init();
|
||||||
|
|
||||||
|
void render(int xm, int ym, float a);
|
||||||
|
|
||||||
|
void buttonClicked(Button* button) {
|
||||||
|
//if (button->id == bQuit.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
//Button bQuit;
|
||||||
|
//Button bBuyGame;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__BuyGameScreen_H__*/
|
||||||
107
src/client/gui/screens/InvalidLicenseScreen.h
Normal file
107
src/client/gui/screens/InvalidLicenseScreen.h
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
#ifndef NET_MINECRAFT_CLIENT_GUI_SCREENS__InvalidLicenseScreen_H__
|
||||||
|
#define NET_MINECRAFT_CLIENT_GUI_SCREENS__InvalidLicenseScreen_H__
|
||||||
|
|
||||||
|
#include "../Screen.h"
|
||||||
|
#include "../components/Button.h"
|
||||||
|
#include "../../Minecraft.h"
|
||||||
|
#include "../../../LicenseCodes.h"
|
||||||
|
|
||||||
|
class InvalidLicenseScreen: public Screen
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
InvalidLicenseScreen(int id, bool hasBuyButton)
|
||||||
|
: _id(id),
|
||||||
|
_hasBuyButton(hasBuyButton),
|
||||||
|
_baseY(0),
|
||||||
|
bOk(0),
|
||||||
|
bBuy(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~InvalidLicenseScreen() {
|
||||||
|
delete bOk;
|
||||||
|
delete bBuy;
|
||||||
|
}
|
||||||
|
|
||||||
|
void init() {
|
||||||
|
if (minecraft->useTouchscreen()) {
|
||||||
|
bOk = new Touch::TButton(1, "Ok");
|
||||||
|
bBuy = new Touch::TButton(2, "Buy");
|
||||||
|
} else {
|
||||||
|
bOk = new Button(1, "Ok");
|
||||||
|
bBuy = new Button(2, "Buy");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_hasBuyButton)
|
||||||
|
bOk->msg = "Quit";
|
||||||
|
|
||||||
|
if (!LicenseCodes::isOk(_id)) {
|
||||||
|
char buf[20] = {0};
|
||||||
|
sprintf(buf, "%d", _id);
|
||||||
|
|
||||||
|
desc1 = "License verification failed (error ";
|
||||||
|
desc1 += buf;
|
||||||
|
desc1 += ")";
|
||||||
|
desc2 = "Try again later.";
|
||||||
|
hint = "You need to be connected to the internet\n";
|
||||||
|
hint += "once while you start the game.";
|
||||||
|
}
|
||||||
|
|
||||||
|
buttons.push_back(bOk);
|
||||||
|
tabButtons.push_back(bOk);
|
||||||
|
|
||||||
|
if (_hasBuyButton) {
|
||||||
|
buttons.push_back(bBuy);
|
||||||
|
tabButtons.push_back(bBuy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void setupPositions() {
|
||||||
|
_baseY = height/5 + 6;
|
||||||
|
//if (_hasBuyButton)
|
||||||
|
_baseY -= 24;
|
||||||
|
|
||||||
|
bOk->width = bBuy->width = 200;
|
||||||
|
bOk->x = bBuy->x = (width - bOk->width) / 2;
|
||||||
|
bBuy->y = _baseY + 84;
|
||||||
|
bOk->y = bBuy->y + bBuy->height + 4;
|
||||||
|
|
||||||
|
if (!_hasBuyButton)
|
||||||
|
bOk->y -= 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
void tick() {}
|
||||||
|
|
||||||
|
//void keyPressed(int eventKey) {}
|
||||||
|
|
||||||
|
void render(int xm, int ym, float a) {
|
||||||
|
renderDirtBackground(0);
|
||||||
|
drawCenteredString(minecraft->font, desc1, width/2, _baseY, 0xffffff);
|
||||||
|
drawCenteredString(minecraft->font, desc2, width/2, _baseY + 24, 0xffffff);
|
||||||
|
|
||||||
|
drawCenteredString(minecraft->font, hint, width/2, _baseY + 60, 0xffffff);
|
||||||
|
|
||||||
|
Screen::render(xm, ym, a);
|
||||||
|
}
|
||||||
|
|
||||||
|
void buttonClicked(Button* button) {
|
||||||
|
if (button->id == bOk->id) {
|
||||||
|
minecraft->quit();
|
||||||
|
}
|
||||||
|
if (button->id == bBuy->id) {
|
||||||
|
minecraft->platform()->buyGame();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private:
|
||||||
|
int _id;
|
||||||
|
std::string desc1;
|
||||||
|
std::string desc2;
|
||||||
|
std::string hint;
|
||||||
|
|
||||||
|
Button* bOk;
|
||||||
|
Button* bBuy;
|
||||||
|
bool _hasBuyButton;
|
||||||
|
int _baseY;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /*NET_MINECRAFT_CLIENT_GUI_SCREENS__InvalidLicenseScreen_H__*/
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
#include "../Screen.h"
|
#include "../Screen.h"
|
||||||
#include "../components/Button.h"
|
#include "../components/Button.h"
|
||||||
#include "../../Minecraft.h"
|
#include "../../Minecraft.h"
|
||||||
#include "client/gui/components/ImageButton.h"
|
#include "../components/ImageButton.h"
|
||||||
#include "client/gui/components/TextBox.h"
|
#include "../components/TextBox.h"
|
||||||
|
|
||||||
class JoinByIPScreen: public Screen
|
class JoinByIPScreen: public Screen
|
||||||
{
|
{
|
||||||
@@ -25,4 +25,4 @@ private:
|
|||||||
Touch::THeader bHeader;
|
Touch::THeader bHeader;
|
||||||
Touch::TButton bJoin;
|
Touch::TButton bJoin;
|
||||||
ImageButton bBack;
|
ImageButton bBack;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ void OptionsScreen::render(int xm, int ym, float a) {
|
|||||||
|
|
||||||
if (currentOptionsGroup != NULL)
|
if (currentOptionsGroup != NULL)
|
||||||
currentOptionsGroup->render(minecraft, xmm, ymm);
|
currentOptionsGroup->render(minecraft, xmm, ymm);
|
||||||
|
|
||||||
super::render(xm, ym, a);
|
super::render(xm, ym, a);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,20 +216,19 @@ void OptionsScreen::generateOptionScreens() {
|
|||||||
|
|
||||||
// // Graphics Pane
|
// // Graphics Pane
|
||||||
optionPanes[3]->addOptionItem(OPTIONS_FANCY_GRAPHICS, minecraft)
|
optionPanes[3]->addOptionItem(OPTIONS_FANCY_GRAPHICS, minecraft)
|
||||||
|
// .addOptionItem(&Option::VIEW_BOBBING, minecraft)
|
||||||
|
// .addOptionItem(&Option::AMBIENT_OCCLUSION, minecraft)
|
||||||
|
// .addOptionItem(&Option::ANAGLYPH, minecraft)
|
||||||
.addOptionItem(OPTIONS_LIMIT_FRAMERATE, minecraft)
|
.addOptionItem(OPTIONS_LIMIT_FRAMERATE, minecraft)
|
||||||
.addOptionItem(OPTIONS_VSYNC, minecraft)
|
.addOptionItem(OPTIONS_VSYNC, minecraft)
|
||||||
.addOptionItem(OPTIONS_RENDER_DEBUG, minecraft)
|
.addOptionItem(OPTIONS_RENDER_DEBUG, minecraft)
|
||||||
.addOptionItem(OPTIONS_ANAGLYPH_3D, minecraft)
|
.addOptionItem(OPTIONS_ANAGLYPH_3D, minecraft)
|
||||||
.addOptionItem(OPTIONS_VIEW_BOBBING, minecraft)
|
.addOptionItem(OPTIONS_VIEW_BOBBING, minecraft)
|
||||||
.addOptionItem(OPTIONS_AMBIENT_OCCLUSION, minecraft);
|
.addOptionItem(OPTIONS_AMBIENT_OCCLUSION, minecraft);
|
||||||
|
|
||||||
optionPanes[4]->addOptionItem(OPTIONS_ALLOW_SPRINT, minecraft)
|
optionPanes[4]->addOptionItem(OPTIONS_ALLOW_SPRINT, minecraft)
|
||||||
.addOptionItem(OPTIONS_BAR_ON_TOP, minecraft)
|
.addOptionItem(OPTIONS_BAR_ON_TOP, minecraft)
|
||||||
.addOptionItem(OPTIONS_RPI_CURSOR, minecraft)
|
.addOptionItem(OPTIONS_RPI_CURSOR, minecraft);
|
||||||
.addOptionItem(OPTIONS_FOLIAGE_TINT, minecraft)
|
|
||||||
.addOptionItem(OPTIONS_JAVA_HUD, minecraft)
|
|
||||||
.addOptionItem(OPTIONS_FOG_TYPE, minecraft);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OptionsScreen::mouseClicked(int x, int y, int buttonNum) {
|
void OptionsScreen::mouseClicked(int x, int y, int buttonNum) {
|
||||||
@@ -251,7 +250,7 @@ void OptionsScreen::keyPressed(int eventKey) {
|
|||||||
currentOptionsGroup->keyPressed(minecraft, eventKey);
|
currentOptionsGroup->keyPressed(minecraft, eventKey);
|
||||||
if (eventKey == Keyboard::KEY_ESCAPE)
|
if (eventKey == Keyboard::KEY_ESCAPE)
|
||||||
minecraft->options.save();
|
minecraft->options.save();
|
||||||
|
|
||||||
super::keyPressed(eventKey);
|
super::keyPressed(eventKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
#include "../../Minecraft.h"
|
#include "../../Minecraft.h"
|
||||||
|
|
||||||
#include <client/gui/screens/UsernameScreen.h>
|
#include "UsernameScreen.h"
|
||||||
|
|
||||||
Screen* ScreenChooser::createScreen( ScreenId id )
|
Screen* ScreenChooser::createScreen( ScreenId id )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ void UsernameScreen::setupPositions()
|
|||||||
// Make the done button match the touch-style option tabs
|
// Make the done button match the touch-style option tabs
|
||||||
_btnDone.width = 66;
|
_btnDone.width = 66;
|
||||||
_btnDone.height = 26;
|
_btnDone.height = 26;
|
||||||
_btnDone.x = (width - _btnDone.width) / 2;
|
_btnDone.x = cx - (_btnDone.width / 2);
|
||||||
_btnDone.y = height / 2 + 52;
|
_btnDone.y = cy + 52;
|
||||||
|
|
||||||
tUsername.width = 120;
|
tUsername.width = 120;
|
||||||
tUsername.height = 20;
|
tUsername.height = 20;
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
|
|
||||||
#include "../Screen.h"
|
#include "../Screen.h"
|
||||||
#include "../components/Button.h"
|
#include "../components/Button.h"
|
||||||
#include "client/gui/components/TextBox.h"
|
// this is cursed lol
|
||||||
|
#include "../../../client/gui/components/TextBox.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
class UsernameScreen : public Screen
|
class UsernameScreen : public Screen
|
||||||
|
|||||||
@@ -7,10 +7,6 @@
|
|||||||
#include "../../world/level/Region.h"
|
#include "../../world/level/Region.h"
|
||||||
#include "../../world/level/chunk/LevelChunk.h"
|
#include "../../world/level/chunk/LevelChunk.h"
|
||||||
#include "../../util/Mth.h"
|
#include "../../util/Mth.h"
|
||||||
|
|
||||||
#include "../../world/level/biome/BiomeSource.h"
|
|
||||||
|
|
||||||
#include "../../world/level/Level.h"
|
|
||||||
//#include "../../platform/time.h"
|
//#include "../../platform/time.h"
|
||||||
|
|
||||||
/*static*/ int Chunk::updates = 0;
|
/*static*/ int Chunk::updates = 0;
|
||||||
@@ -263,4 +259,4 @@ void Chunk::resetUpdates()
|
|||||||
{
|
{
|
||||||
updates = 0;
|
updates = 0;
|
||||||
//swRebuild.reset();
|
//swRebuild.reset();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,6 @@
|
|||||||
|
|
||||||
#include "../../client/player/LocalPlayer.h"
|
#include "../../client/player/LocalPlayer.h"
|
||||||
|
|
||||||
#include "../../world/level/GrassColor.h"
|
|
||||||
|
|
||||||
#ifdef GFX_SMALLER_CHUNKS
|
#ifdef GFX_SMALLER_CHUNKS
|
||||||
/* static */ const int LevelRenderer::CHUNK_SIZE = 8;
|
/* static */ const int LevelRenderer::CHUNK_SIZE = 8;
|
||||||
#else
|
#else
|
||||||
@@ -34,7 +32,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
LevelRenderer::LevelRenderer( Minecraft* mc)
|
LevelRenderer::LevelRenderer( Minecraft* mc)
|
||||||
: mc(mc),
|
: mc(mc),
|
||||||
textures(mc->textures),
|
textures(mc->textures),
|
||||||
level(NULL),
|
level(NULL),
|
||||||
cullStep(0),
|
cullStep(0),
|
||||||
@@ -49,7 +47,6 @@ LevelRenderer::LevelRenderer( Minecraft* mc)
|
|||||||
xMaxChunk(0), yMaxChunk(0), zMaxChunk(0),
|
xMaxChunk(0), yMaxChunk(0), zMaxChunk(0),
|
||||||
|
|
||||||
lastViewDistance(-1),
|
lastViewDistance(-1),
|
||||||
lastFogType(-1),
|
|
||||||
|
|
||||||
noEntityRenderFrames(2),
|
noEntityRenderFrames(2),
|
||||||
totalEntities(0),
|
totalEntities(0),
|
||||||
@@ -146,10 +143,6 @@ void LevelRenderer::setLevel( Level* level )
|
|||||||
level->addListener(this);
|
level->addListener(this);
|
||||||
allChanged();
|
allChanged();
|
||||||
}
|
}
|
||||||
if (mc->options.getBooleanValue(OPTIONS_AMBIENT_OCCLUSION)) {
|
|
||||||
mc->useAmbientOcclusion = !mc->useAmbientOcclusion;
|
|
||||||
allChanged();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LevelRenderer::allChanged()
|
void LevelRenderer::allChanged()
|
||||||
@@ -162,21 +155,14 @@ void LevelRenderer::allChanged()
|
|||||||
Tile::leaves_carried->setFancy(fancy);
|
Tile::leaves_carried->setFancy(fancy);
|
||||||
lastViewDistance = mc->options.getIntValue(OPTIONS_VIEW_DISTANCE);
|
lastViewDistance = mc->options.getIntValue(OPTIONS_VIEW_DISTANCE);
|
||||||
|
|
||||||
lastFogType = mc->options.getIntValue(OPTIONS_FOG_TYPE);
|
|
||||||
|
|
||||||
bool tint = mc->options.getBooleanValue(OPTIONS_FOLIAGE_TINT);
|
|
||||||
FoliageColor::setUseTint(tint);
|
|
||||||
GrassColor::setUseTint(tint);
|
|
||||||
|
|
||||||
|
|
||||||
int dist = (512 >> 3) << (3 - lastViewDistance);
|
int dist = (512 >> 3) << (3 - lastViewDistance);
|
||||||
if (lastViewDistance <= 2 && mc->isPowerVR())
|
if (lastViewDistance <= 2 && mc->isPowerVR())
|
||||||
dist = (int)((float)dist * 0.8f);
|
dist = (int)((float)dist * 0.8f);
|
||||||
LOGI("last: %d, power: %d\n", lastViewDistance, mc->isPowerVR());
|
LOGI("last: %d, power: %d\n", lastViewDistance, mc->isPowerVR());
|
||||||
|
|
||||||
#if defined(RPI)
|
#if defined(RPI)
|
||||||
dist *= 0.6f;
|
dist *= 0.6f;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (dist > 400) dist = 400;
|
if (dist > 400) dist = 400;
|
||||||
/*
|
/*
|
||||||
@@ -241,17 +227,17 @@ void LevelRenderer::allChanged()
|
|||||||
void LevelRenderer::deleteChunks()
|
void LevelRenderer::deleteChunks()
|
||||||
{
|
{
|
||||||
for (int z = 0; z < zChunks; ++z)
|
for (int z = 0; z < zChunks; ++z)
|
||||||
for (int y = 0; y < yChunks; ++y)
|
for (int y = 0; y < yChunks; ++y)
|
||||||
for (int x = 0; x < xChunks; ++x) {
|
for (int x = 0; x < xChunks; ++x) {
|
||||||
int c = getLinearCoord(x, y, z);
|
int c = getLinearCoord(x, y, z);
|
||||||
delete chunks[c];
|
delete chunks[c];
|
||||||
}
|
}
|
||||||
|
|
||||||
delete[] chunks;
|
delete[] chunks;
|
||||||
chunks = NULL;
|
chunks = NULL;
|
||||||
|
|
||||||
delete[] sortedChunks;
|
delete[] sortedChunks;
|
||||||
sortedChunks = NULL;
|
sortedChunks = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LevelRenderer::resortChunks( int xc, int yc, int zc )
|
void LevelRenderer::resortChunks( int xc, int yc, int zc )
|
||||||
@@ -315,17 +301,6 @@ int LevelRenderer::render( Mob* player, int layer, float alpha )
|
|||||||
allChanged();
|
allChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
int currentFogType = mc->options.getIntValue(OPTIONS_FOG_TYPE);
|
|
||||||
if (currentFogType != lastFogType) {
|
|
||||||
lastFogType = currentFogType;
|
|
||||||
|
|
||||||
if (level && level->dimension) {
|
|
||||||
level->dimension->FogType = currentFogType; // use new fog stuff
|
|
||||||
}
|
|
||||||
|
|
||||||
allChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
TIMER_PUSH("sortchunks");
|
TIMER_PUSH("sortchunks");
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
chunkFixOffs = (chunkFixOffs + 1) % chunksLength;
|
chunkFixOffs = (chunkFixOffs + 1) % chunksLength;
|
||||||
@@ -594,11 +569,11 @@ int LevelRenderer::renderChunks( int from, int to, int layer, float alpha )
|
|||||||
|
|
||||||
for (unsigned int i = 0; i < _renderChunks.size(); ++i) {
|
for (unsigned int i = 0; i < _renderChunks.size(); ++i) {
|
||||||
Chunk* chunk = _renderChunks[i];
|
Chunk* chunk = _renderChunks[i];
|
||||||
#ifdef USE_VBO
|
#ifdef USE_VBO
|
||||||
renderList.addR(chunk->getRenderChunk(layer));
|
renderList.addR(chunk->getRenderChunk(layer));
|
||||||
#else
|
#else
|
||||||
renderList.add(chunk->getList(layer));
|
renderList.add(chunk->getList(layer));
|
||||||
#endif
|
#endif
|
||||||
renderList.next();
|
renderList.next();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -749,20 +724,20 @@ bool LevelRenderer::updateDirtyChunks( Mob* player, bool force )
|
|||||||
Chunk* chunk = dirtyChunks[cursor];
|
Chunk* chunk = dirtyChunks[cursor];
|
||||||
if (chunk != NULL) {
|
if (chunk != NULL) {
|
||||||
bool remove = false;
|
bool remove = false;
|
||||||
for (int i = 0; i < count && !remove; i++)
|
for (int i = 0; i < count && !remove; i++)
|
||||||
if (chunk == toAdd[i]) {
|
if (chunk == toAdd[i]) {
|
||||||
remove = true;
|
remove = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!remove) {
|
if (!remove) {
|
||||||
//if (chunk == toAdd[0] || chunk == toAdd[1] || chunk == toAdd[2]) {
|
//if (chunk == toAdd[0] || chunk == toAdd[1] || chunk == toAdd[2]) {
|
||||||
// ; // this chunk was rendered and should be removed
|
// ; // this chunk was rendered and should be removed
|
||||||
//} else {
|
//} else {
|
||||||
if (target != cursor) {
|
if (target != cursor) {
|
||||||
dirtyChunks[target] = chunk;
|
dirtyChunks[target] = chunk;
|
||||||
}
|
|
||||||
target++;
|
|
||||||
}
|
}
|
||||||
|
target++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
cursor++;
|
cursor++;
|
||||||
}
|
}
|
||||||
@@ -936,23 +911,23 @@ bool entityRenderPredicate(const Entity* a, const Entity* b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LevelRenderer::renderEntities(Vec3 cam, Culler* culler, float a) {
|
void LevelRenderer::renderEntities(Vec3 cam, Culler* culler, float a) {
|
||||||
if (noEntityRenderFrames > 0) {
|
if (noEntityRenderFrames > 0) {
|
||||||
noEntityRenderFrames--;
|
noEntityRenderFrames--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TIMER_PUSH("prepare");
|
TIMER_PUSH("prepare");
|
||||||
TileEntityRenderDispatcher::getInstance()->prepare(level, textures, mc->font, mc->cameraTargetPlayer, a);
|
TileEntityRenderDispatcher::getInstance()->prepare(level, textures, mc->font, mc->cameraTargetPlayer, a);
|
||||||
EntityRenderDispatcher::getInstance()->prepare(level, mc->font, mc->cameraTargetPlayer, &mc->options, a);
|
EntityRenderDispatcher::getInstance()->prepare(level, mc->font, mc->cameraTargetPlayer, &mc->options, a);
|
||||||
|
|
||||||
totalEntities = 0;
|
totalEntities = 0;
|
||||||
renderedEntities = 0;
|
renderedEntities = 0;
|
||||||
culledEntities = 0;
|
culledEntities = 0;
|
||||||
|
|
||||||
Entity* player = mc->cameraTargetPlayer;
|
Entity* player = mc->cameraTargetPlayer;
|
||||||
EntityRenderDispatcher::xOff = TileEntityRenderDispatcher::xOff = (player->xOld + (player->x - player->xOld) * a);
|
EntityRenderDispatcher::xOff = TileEntityRenderDispatcher::xOff = (player->xOld + (player->x - player->xOld) * a);
|
||||||
EntityRenderDispatcher::yOff = TileEntityRenderDispatcher::yOff = (player->yOld + (player->y - player->yOld) * a);
|
EntityRenderDispatcher::yOff = TileEntityRenderDispatcher::yOff = (player->yOld + (player->y - player->yOld) * a);
|
||||||
EntityRenderDispatcher::zOff = TileEntityRenderDispatcher::zOff = (player->zOld + (player->z - player->zOld) * a);
|
EntityRenderDispatcher::zOff = TileEntityRenderDispatcher::zOff = (player->zOld + (player->z - player->zOld) * a);
|
||||||
|
|
||||||
glEnableClientState2(GL_VERTEX_ARRAY);
|
glEnableClientState2(GL_VERTEX_ARRAY);
|
||||||
glEnableClientState2(GL_TEXTURE_COORD_ARRAY);
|
glEnableClientState2(GL_TEXTURE_COORD_ARRAY);
|
||||||
@@ -991,10 +966,10 @@ void LevelRenderer::renderEntities(Vec3 cam, Culler* culler, float a) {
|
|||||||
delete[] toRender;
|
delete[] toRender;
|
||||||
}
|
}
|
||||||
|
|
||||||
TIMER_POP_PUSH("tileentities");
|
TIMER_POP_PUSH("tileentities");
|
||||||
for (unsigned int i = 0; i < level->tileEntities.size(); i++) {
|
for (unsigned int i = 0; i < level->tileEntities.size(); i++) {
|
||||||
TileEntityRenderDispatcher::getInstance()->render(level->tileEntities[i], a);
|
TileEntityRenderDispatcher::getInstance()->render(level->tileEntities[i], a);
|
||||||
}
|
}
|
||||||
|
|
||||||
glDisableClientState2(GL_VERTEX_ARRAY);
|
glDisableClientState2(GL_VERTEX_ARRAY);
|
||||||
glDisableClientState2(GL_TEXTURE_COORD_ARRAY);
|
glDisableClientState2(GL_TEXTURE_COORD_ARRAY);
|
||||||
@@ -1005,7 +980,7 @@ void LevelRenderer::renderEntities(Vec3 cam, Culler* culler, float a) {
|
|||||||
std::string LevelRenderer::gatherStats1() {
|
std::string LevelRenderer::gatherStats1() {
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << "C: " << renderedChunks << "/" << totalChunks << ". F: " << offscreenChunks << ", O: " << occludedChunks << ", E: " << emptyChunks << "\n";
|
ss << "C: " << renderedChunks << "/" << totalChunks << ". F: " << offscreenChunks << ", O: " << occludedChunks << ", E: " << emptyChunks << "\n";
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -1017,34 +992,34 @@ std::string LevelRenderer::gatherStats1() {
|
|||||||
// IntBuffer resultBuffer = MemoryTracker.createIntBuffer(64);
|
// IntBuffer resultBuffer = MemoryTracker.createIntBuffer(64);
|
||||||
|
|
||||||
void LevelRenderer::renderSky(float alpha) {
|
void LevelRenderer::renderSky(float alpha) {
|
||||||
if (mc->level->dimension->foggy) return;
|
if (mc->level->dimension->foggy) return;
|
||||||
|
|
||||||
glDisable2(GL_TEXTURE_2D);
|
glDisable2(GL_TEXTURE_2D);
|
||||||
Vec3 sc = level->getSkyColor(mc->cameraTargetPlayer, alpha);
|
Vec3 sc = level->getSkyColor(mc->cameraTargetPlayer, alpha);
|
||||||
float sr = (float) sc.x;
|
float sr = (float) sc.x;
|
||||||
float sg = (float) sc.y;
|
float sg = (float) sc.y;
|
||||||
float sb = (float) sc.z;// + 0.5f;
|
float sb = (float) sc.z;// + 0.5f;
|
||||||
|
|
||||||
if (mc->options.getBooleanValue(OPTIONS_ANAGLYPH_3D)) {
|
if (mc->options.getBooleanValue(OPTIONS_ANAGLYPH_3D)) {
|
||||||
float srr = (sr * 30.0f + sg * 59.0f + sb * 11.0f) / 100.0f;
|
float srr = (sr * 30.0f + sg * 59.0f + sb * 11.0f) / 100.0f;
|
||||||
float sgg = (sr * 30.0f + sg * 70.0f) / (100.0f);
|
float sgg = (sr * 30.0f + sg * 70.0f) / (100.0f);
|
||||||
float sbb = (sr * 30.0f + sb * 70.0f) / (100.0f);
|
float sbb = (sr * 30.0f + sb * 70.0f) / (100.0f);
|
||||||
|
|
||||||
sr = srr;
|
sr = srr;
|
||||||
sg = sgg;
|
sg = sgg;
|
||||||
sb = sbb;
|
sb = sbb;
|
||||||
}
|
}
|
||||||
glColor4f2(sr, sg, Mth::Min(1.0f, sb), 1);
|
glColor4f2(sr, sg, Mth::Min(1.0f, sb), 1);
|
||||||
|
|
||||||
//Tesselator& t = Tesselator::instance;
|
//Tesselator& t = Tesselator::instance;
|
||||||
|
|
||||||
glEnable2(GL_FOG);
|
glEnable2(GL_FOG);
|
||||||
glColor4f2(sr, sg, sb, 1.0f);
|
glColor4f2(sr, sg, sb, 1.0f);
|
||||||
|
|
||||||
#ifdef OPENGL_ES
|
#ifdef OPENGL_ES
|
||||||
drawArrayVT(skyBuffer, skyVertexCount);
|
drawArrayVT(skyBuffer, skyVertexCount);
|
||||||
#endif
|
#endif
|
||||||
glEnable2(GL_TEXTURE_2D);
|
glEnable2(GL_TEXTURE_2D);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LevelRenderer::renderClouds( float alpha ) {
|
void LevelRenderer::renderClouds( float alpha ) {
|
||||||
@@ -1058,7 +1033,7 @@ void LevelRenderer::renderClouds( float alpha ) {
|
|||||||
|
|
||||||
//glBindTexture(GL_TEXTURE_2D, texturesloadTexture("/environment/clouds.png"));
|
//glBindTexture(GL_TEXTURE_2D, texturesloadTexture("/environment/clouds.png"));
|
||||||
textures->loadAndBindTexture("environment/clouds.png");
|
textures->loadAndBindTexture("environment/clouds.png");
|
||||||
|
|
||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
@@ -1101,17 +1076,17 @@ void LevelRenderer::playSound(const std::string& name, float x, float y, float z
|
|||||||
// @todo: deny sounds here if sound is off (rather than waiting 'til SoundEngine)
|
// @todo: deny sounds here if sound is off (rather than waiting 'til SoundEngine)
|
||||||
float dd = 16;
|
float dd = 16;
|
||||||
|
|
||||||
if (volume > 1) dd *= volume;
|
if (volume > 1) dd *= volume;
|
||||||
if (mc->cameraTargetPlayer->distanceToSqr(x, y, z) < dd * dd) {
|
if (mc->cameraTargetPlayer->distanceToSqr(x, y, z) < dd * dd) {
|
||||||
mc->soundEngine->play(name, x, y, z, volume, pitch);
|
mc->soundEngine->play(name, x, y, z, volume, pitch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LevelRenderer::addParticle(const std::string& name, float x, float y, float z, float xa, float ya, float za, int data) {
|
void LevelRenderer::addParticle(const std::string& name, float x, float y, float z, float xa, float ya, float za, int data) {
|
||||||
|
|
||||||
float xd = mc->cameraTargetPlayer->x - x;
|
float xd = mc->cameraTargetPlayer->x - x;
|
||||||
float yd = mc->cameraTargetPlayer->y - y;
|
float yd = mc->cameraTargetPlayer->y - y;
|
||||||
float zd = mc->cameraTargetPlayer->z - z;
|
float zd = mc->cameraTargetPlayer->z - z;
|
||||||
float distanceSquared = xd * xd + yd * yd + zd * zd;
|
float distanceSquared = xd * xd + yd * yd + zd * zd;
|
||||||
|
|
||||||
//Particle* p = NULL;
|
//Particle* p = NULL;
|
||||||
@@ -1125,27 +1100,27 @@ void LevelRenderer::addParticle(const std::string& name, float x, float y, float
|
|||||||
// return;
|
// return;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
const float particleDistance = 16;
|
const float particleDistance = 16;
|
||||||
if (distanceSquared > particleDistance * particleDistance) return;
|
if (distanceSquared > particleDistance * particleDistance) return;
|
||||||
|
|
||||||
//static Stopwatch sw;
|
//static Stopwatch sw;
|
||||||
//sw.start();
|
//sw.start();
|
||||||
|
|
||||||
if (name == "bubble") mc->particleEngine->add(new BubbleParticle(level, x, y, z, xa, ya, za));
|
if (name == "bubble") mc->particleEngine->add(new BubbleParticle(level, x, y, z, xa, ya, za));
|
||||||
else if (name == "crit") mc->particleEngine->add(new CritParticle2(level, x, y, z, xa, ya, za));
|
else if (name == "crit") mc->particleEngine->add(new CritParticle2(level, x, y, z, xa, ya, za));
|
||||||
else if (name == "smoke") mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za));
|
else if (name == "smoke") mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za));
|
||||||
//else if (name == "note") mc->particleEngine->add(new NoteParticle(level, x, y, z, xa, ya, za));
|
//else if (name == "note") mc->particleEngine->add(new NoteParticle(level, x, y, z, xa, ya, za));
|
||||||
else if (name == "explode") mc->particleEngine->add(new ExplodeParticle(level, x, y, z, xa, ya, za));
|
else if (name == "explode") mc->particleEngine->add(new ExplodeParticle(level, x, y, z, xa, ya, za));
|
||||||
else if (name == "flame") mc->particleEngine->add(new FlameParticle(level, x, y, z, xa, ya, za));
|
else if (name == "flame") mc->particleEngine->add(new FlameParticle(level, x, y, z, xa, ya, za));
|
||||||
else if (name == "lava") mc->particleEngine->add(new LavaParticle(level, x, y, z));
|
else if (name == "lava") mc->particleEngine->add(new LavaParticle(level, x, y, z));
|
||||||
//else if (name == "splash") mc->particleEngine->add(new SplashParticle(level, x, y, z, xa, ya, za));
|
//else if (name == "splash") mc->particleEngine->add(new SplashParticle(level, x, y, z, xa, ya, za));
|
||||||
else if (name == "largesmoke") mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f));
|
else if (name == "largesmoke") mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f));
|
||||||
else if (name == "reddust") mc->particleEngine->add(new RedDustParticle(level, x, y, z, xa, ya, za));
|
else if (name == "reddust") mc->particleEngine->add(new RedDustParticle(level, x, y, z, xa, ya, za));
|
||||||
else if (name == "iconcrack") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]));
|
else if (name == "iconcrack") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]));
|
||||||
else if (name == "snowballpoof") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::snowBall));
|
else if (name == "snowballpoof") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::snowBall));
|
||||||
//else if (name == "snowballpoof") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::snowBall));
|
//else if (name == "snowballpoof") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::snowBall));
|
||||||
//else if (name == "slime") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::slimeBall));
|
//else if (name == "slime") mc->particleEngine->add(new BreakingItemParticle(level, x, y, z, Item::slimeBall));
|
||||||
//else if (name == "heart") mc->particleEngine->add(new HeartParticle(level, x, y, z, xa, ya, za));
|
//else if (name == "heart") mc->particleEngine->add(new HeartParticle(level, x, y, z, xa, ya, za));
|
||||||
|
|
||||||
//sw.stop();
|
//sw.stop();
|
||||||
//sw.printEvery(50, "add-particle-string");
|
//sw.printEvery(50, "add-particle-string");
|
||||||
@@ -1153,53 +1128,53 @@ void LevelRenderer::addParticle(const std::string& name, float x, float y, float
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
void LevelRenderer::addParticle(ParticleType::Id name, float x, float y, float z, float xa, float ya, float za, int data) {
|
void LevelRenderer::addParticle(ParticleType::Id name, float x, float y, float z, float xa, float ya, float za, int data) {
|
||||||
float xd = mc->cameraTargetPlayer->x - x;
|
float xd = mc->cameraTargetPlayer->x - x;
|
||||||
float yd = mc->cameraTargetPlayer->y - y;
|
float yd = mc->cameraTargetPlayer->y - y;
|
||||||
float zd = mc->cameraTargetPlayer->z - z;
|
float zd = mc->cameraTargetPlayer->z - z;
|
||||||
|
|
||||||
const float particleDistance = 16;
|
const float particleDistance = 16;
|
||||||
if (xd * xd + yd * yd + zd * zd > particleDistance * particleDistance) return;
|
if (xd * xd + yd * yd + zd * zd > particleDistance * particleDistance) return;
|
||||||
|
|
||||||
//static Stopwatch sw;
|
//static Stopwatch sw;
|
||||||
//sw.start();
|
//sw.start();
|
||||||
|
|
||||||
//Particle* p = NULL;
|
//Particle* p = NULL;
|
||||||
|
|
||||||
if (name == ParticleType::bubble) mc->particleEngine->add( new BubbleParticle(level, x, y, z, xa, ya, za) );
|
if (name == ParticleType::bubble) mc->particleEngine->add( new BubbleParticle(level, x, y, z, xa, ya, za) );
|
||||||
else if (name == ParticleType::crit) mc->particleEngine->add(new CritParticle2(level, x, y, z, xa, ya, za) );
|
else if (name == ParticleType::crit) mc->particleEngine->add(new CritParticle2(level, x, y, z, xa, ya, za) );
|
||||||
else if (name == ParticleType::smoke) mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za) );
|
else if (name == ParticleType::smoke) mc->particleEngine->add(new SmokeParticle(level, x, y, z, xa, ya, za) );
|
||||||
else if (name == ParticleType::explode) mc->particleEngine->add( new ExplodeParticle(level, x, y, z, xa, ya, za) );
|
else if (name == ParticleType::explode) mc->particleEngine->add( new ExplodeParticle(level, x, y, z, xa, ya, za) );
|
||||||
else if (name == ParticleType::flame) mc->particleEngine->add( new FlameParticle(level, x, y, z, xa, ya, za) );
|
else if (name == ParticleType::flame) mc->particleEngine->add( new FlameParticle(level, x, y, z, xa, ya, za) );
|
||||||
else if (name == ParticleType::lava) mc->particleEngine->add( new LavaParticle(level, x, y, z) );
|
else if (name == ParticleType::lava) mc->particleEngine->add( new LavaParticle(level, x, y, z) );
|
||||||
else if (name == ParticleType::largesmoke) mc->particleEngine->add( new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f) );
|
else if (name == ParticleType::largesmoke) mc->particleEngine->add( new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f) );
|
||||||
else if (name == ParticleType::reddust) mc->particleEngine->add( new RedDustParticle(level, x, y, z, xa, ya, za) );
|
else if (name == ParticleType::reddust) mc->particleEngine->add( new RedDustParticle(level, x, y, z, xa, ya, za) );
|
||||||
else if (name == ParticleType::iconcrack) mc->particleEngine->add( new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]) );
|
else if (name == ParticleType::iconcrack) mc->particleEngine->add( new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]) );
|
||||||
|
|
||||||
//switch (name) {
|
//switch (name) {
|
||||||
// case ParticleType::bubble: p = new BubbleParticle(level, x, y, z, xa, ya, za); break;
|
// case ParticleType::bubble: p = new BubbleParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// case ParticleType::crit: p = new CritParticle2(level, x, y, z, xa, ya, za); break;
|
// case ParticleType::crit: p = new CritParticle2(level, x, y, z, xa, ya, za); break;
|
||||||
// case ParticleType::smoke: p = new SmokeParticle(level, x, y, z, xa, ya, za); break;
|
// case ParticleType::smoke: p = new SmokeParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// //case ParticleType::note: p = new NoteParticle(level, x, y, z, xa, ya, za); break;
|
// //case ParticleType::note: p = new NoteParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// case ParticleType::explode: p = new ExplodeParticle(level, x, y, z, xa, ya, za); break;
|
// case ParticleType::explode: p = new ExplodeParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// case ParticleType::flame: p = new FlameParticle(level, x, y, z, xa, ya, za); break;
|
// case ParticleType::flame: p = new FlameParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// case ParticleType::lava: p = new LavaParticle(level, x, y, z); break;
|
// case ParticleType::lava: p = new LavaParticle(level, x, y, z); break;
|
||||||
// //case ParticleType::splash: p = new SplashParticle(level, x, y, z, xa, ya, za); break;
|
// //case ParticleType::splash: p = new SplashParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// case ParticleType::largesmoke: p = new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f); break;
|
// case ParticleType::largesmoke: p = new SmokeParticle(level, x, y, z, xa, ya, za, 2.5f); break;
|
||||||
// case ParticleType::reddust: p = new RedDustParticle(level, x, y, z, xa, ya, za); break;
|
// case ParticleType::reddust: p = new RedDustParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// case ParticleType::iconcrack: p = new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]); break;
|
// case ParticleType::iconcrack: p = new BreakingItemParticle(level, x, y, z, xa, ya, za, Item::items[data]); break;
|
||||||
// //case ParticleType::snowballpoof: p = new BreakingItemParticle(level, x, y, z, Item::snowBall); break;
|
// //case ParticleType::snowballpoof: p = new BreakingItemParticle(level, x, y, z, Item::snowBall); break;
|
||||||
// //case ParticleType::slime: p = new BreakingItemParticle(level, x, y, z, Item::slimeBall); break;
|
// //case ParticleType::slime: p = new BreakingItemParticle(level, x, y, z, Item::slimeBall); break;
|
||||||
// //case ParticleType::heart: p = new HeartParticle(level, x, y, z, xa, ya, za); break;
|
// //case ParticleType::heart: p = new HeartParticle(level, x, y, z, xa, ya, za); break;
|
||||||
// default:
|
// default:
|
||||||
// LOGW("Couldn't find particle of type: %d\n", name);
|
// LOGW("Couldn't find particle of type: %d\n", name);
|
||||||
// break;
|
// break;
|
||||||
//}
|
//}
|
||||||
//if (p) {
|
//if (p) {
|
||||||
// mc->particleEngine->add(p);
|
// mc->particleEngine->add(p);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//sw.stop();
|
//sw.stop();
|
||||||
//sw.printEvery(50, "add-particle-enum");
|
//sw.printEvery(50, "add-particle-enum");
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -1217,7 +1192,7 @@ void LevelRenderer::renderHitSelect( Player* player, const HitResult& h, int mod
|
|||||||
glEnable2(GL_DEPTH_TEST);
|
glEnable2(GL_DEPTH_TEST);
|
||||||
|
|
||||||
textures->loadAndBindTexture("terrain.png");
|
textures->loadAndBindTexture("terrain.png");
|
||||||
|
|
||||||
int tileId = level->getTile(h.x, h.y, h.z);
|
int tileId = level->getTile(h.x, h.y, h.z);
|
||||||
Tile* tile = tileId > 0 ? Tile::tiles[tileId] : NULL;
|
Tile* tile = tileId > 0 ? Tile::tiles[tileId] : NULL;
|
||||||
glDisable2(GL_ALPHA_TEST);
|
glDisable2(GL_ALPHA_TEST);
|
||||||
@@ -1314,11 +1289,11 @@ void LevelRenderer::takePicture( TripodCamera* cam, Entity* entity )
|
|||||||
void LevelRenderer::levelEvent(Player* player, int type, int x, int y, int z, int data) {
|
void LevelRenderer::levelEvent(Player* player, int type, int x, int y, int z, int data) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case LevelEvent::SOUND_OPEN_DOOR:
|
case LevelEvent::SOUND_OPEN_DOOR:
|
||||||
if (Mth::random() < 0.5f) {
|
if (Mth::random() < 0.5f) {
|
||||||
level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "random.door_open", 1, level->random.nextFloat() * 0.1f + 0.9f);
|
level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "random.door_open", 1, level->random.nextFloat() * 0.1f + 0.9f);
|
||||||
} else {
|
} else {
|
||||||
level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "random.door_close", 1, level->random.nextFloat() * 0.1f + 0.9f);
|
level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "random.door_close", 1, level->random.nextFloat() * 0.1f + 0.9f);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,9 +113,6 @@ private:
|
|||||||
bool occlusionCheck;
|
bool occlusionCheck;
|
||||||
int lastViewDistance;
|
int lastViewDistance;
|
||||||
|
|
||||||
// shredder added again...
|
|
||||||
int lastFogType;
|
|
||||||
|
|
||||||
int ticks;
|
int ticks;
|
||||||
int starList, skyList, darkList;
|
int starList, skyList, darkList;
|
||||||
|
|
||||||
|
|||||||
@@ -249,37 +249,6 @@ int Textures::crispBlend( int c0, int c1 )
|
|||||||
return (a << 24) | (r << 16) | (g << 8) | b;
|
return (a << 24) | (r << 16) | (g << 8) | b;
|
||||||
}
|
}
|
||||||
|
|
||||||
// shredder here, moved the code from minecraft.cpp bcus that isnt the right place
|
|
||||||
// had to implement this because i couldn't find a similar function in the code to do this
|
|
||||||
int* Textures::loadTexturePixels(TextureId texId, const std::string& resourceName){
|
|
||||||
|
|
||||||
const TextureData* texture = getTemporaryTextureData(texId); // storing raw pixels
|
|
||||||
|
|
||||||
int size = texture->w * texture->h; // gets the size of our funny lil guy
|
|
||||||
int* pixels = new int[size]; // memory leaks be galore
|
|
||||||
unsigned char* raw = texture->data; // storing raw data into our beloved variable
|
|
||||||
for (int i = 0; i < (texture->w * texture->h); i++){
|
|
||||||
// my head hurts i hate working with this
|
|
||||||
|
|
||||||
|
|
||||||
// uh since each pixel stores r g b a, aka the color channels which are each one byte, we multiply them by 4 to move from one pixel to another
|
|
||||||
|
|
||||||
int r = raw[i * 4 + 0]; // gets us the first channel aka red
|
|
||||||
int g = raw[i * 4 + 1]; // gets us the second channel green
|
|
||||||
int b = raw[i * 4 + 2]; // gets us the third channel blue
|
|
||||||
int a = raw[i * 4 + 3]; // gets us the alpha channel
|
|
||||||
|
|
||||||
// woohoo pixels uh should have been seperated into their colors now hopefully
|
|
||||||
|
|
||||||
// r g b a
|
|
||||||
// ugh we now got to turn it into the AA RR GGBB format aak 0xAARRGGBB
|
|
||||||
// b gets 0 - 7 (8 bits), g gets 7 - 15 (8 bits), r gets 16 - 23 (8 bits), alpha gets the last ones 24 - 31 (8 bits),
|
|
||||||
pixels[i] = (a << 24) | (r << 16) | (g << 8) | (b); // shuld combine them into one 32 bit int unless i did something dumb
|
|
||||||
}
|
|
||||||
return pixels; // your meal has been prepared john colors
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///*public*/ int loadHttpTexture(std::string url, std::string backup) {
|
///*public*/ int loadHttpTexture(std::string url, std::string backup) {
|
||||||
// HttpTexture texture = httpTextures.get(url);
|
// HttpTexture texture = httpTextures.get(url);
|
||||||
// if (texture != NULL) {
|
// if (texture != NULL) {
|
||||||
|
|||||||
@@ -44,8 +44,6 @@ public:
|
|||||||
TextureId assignTexture(const std::string& resourceName, const TextureData& img);
|
TextureId assignTexture(const std::string& resourceName, const TextureData& img);
|
||||||
const TextureData* getTemporaryTextureData(TextureId id);
|
const TextureData* getTemporaryTextureData(TextureId id);
|
||||||
|
|
||||||
int* loadTexturePixels(TextureId texId, const std::string& resourceName);
|
|
||||||
|
|
||||||
void tick(bool uploadToGraphicsCard);
|
void tick(bool uploadToGraphicsCard);
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
#include "../../world/level/tile/BedTile.h"
|
#include "../../world/level/tile/BedTile.h"
|
||||||
#include "../../world/level/tile/StemTile.h"
|
#include "../../world/level/tile/StemTile.h"
|
||||||
#include "../../world/level/tile/StairTile.h"
|
#include "../../world/level/tile/StairTile.h"
|
||||||
#include "../../world/level/tile/FireTile.h"
|
|
||||||
#include "../../world/Direction.h"
|
#include "../../world/Direction.h"
|
||||||
#include "../../world/Facing.h"
|
#include "../../world/Facing.h"
|
||||||
#include "tileentity/TileEntityRenderer.h"
|
#include "tileentity/TileEntityRenderer.h"
|
||||||
@@ -158,8 +157,8 @@ bool TileRenderer::tesselateInWorld( Tile* tt, int x, int y, int z )
|
|||||||
return tesselateRowInWorld(tt, x, y, z);
|
return tesselateRowInWorld(tt, x, y, z);
|
||||||
} else if (shape == Tile::SHAPE_TORCH) {
|
} else if (shape == Tile::SHAPE_TORCH) {
|
||||||
return tesselateTorchInWorld(tt, x, y, z);
|
return tesselateTorchInWorld(tt, x, y, z);
|
||||||
} else if (shape == Tile::SHAPE_FIRE) {
|
//} else if (shape == Tile::SHAPE_FIRE) {
|
||||||
return tesselateFireInWorld(tt, x, y, z);
|
// return tesselateFireInWorld(tt, x, y, z);
|
||||||
//} else if (shape == Tile::SHAPE_RED_DUST) {
|
//} else if (shape == Tile::SHAPE_RED_DUST) {
|
||||||
// return tesselateDustInWorld(tt, x, y, z);
|
// return tesselateDustInWorld(tt, x, y, z);
|
||||||
} else if (shape == Tile::SHAPE_LADDER) {
|
} else if (shape == Tile::SHAPE_LADDER) {
|
||||||
@@ -223,278 +222,6 @@ bool TileRenderer::tesselateTorchInWorld( Tile* tt, int x, int y, int z )
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TileRenderer::tesselateFireInWorld( Tile* tt, int x, int y, int z )
|
|
||||||
{
|
|
||||||
// @todo: fire alpha transparency seems to be scuffed, also it seems i might have messed up the second layer while porting from lce/java , need to look into it - shredder
|
|
||||||
|
|
||||||
Tesselator& t = Tesselator::instance;
|
|
||||||
|
|
||||||
int tex = tt->getTexture(0);
|
|
||||||
|
|
||||||
if (fixedTexture >= 0) tex = fixedTexture;
|
|
||||||
|
|
||||||
float br = tt->getBrightness( level, x, y, z );
|
|
||||||
t.color( br, br, br );
|
|
||||||
|
|
||||||
int xt = ((tex & 0xf) << 4);
|
|
||||||
int yt = tex & 0xf0;
|
|
||||||
|
|
||||||
float u0 = (xt) / 256.0f;
|
|
||||||
float u1 = (xt + 15.99f) / 256.0f;
|
|
||||||
float v0 = (yt) / 256.0f;
|
|
||||||
float v1 = (yt + 15.99f) / 256.0f;
|
|
||||||
float h = 1.4f;
|
|
||||||
|
|
||||||
if ( level->isSolidBlockingTile( x, y - 1, z ) || Tile::fire->canBurn( level, x, y - 1, z ) )
|
|
||||||
{
|
|
||||||
float x0 = x + 0.5f + 0.2f;
|
|
||||||
float x1 = x + 0.5f - 0.2f;
|
|
||||||
float z0 = z + 0.5f + 0.2f;
|
|
||||||
float z1 = z + 0.5f - 0.2f;
|
|
||||||
|
|
||||||
float x0_ = x + 0.5f - 0.3f;
|
|
||||||
float x1_ = x + 0.5f + 0.3f;
|
|
||||||
float z0_ = z + 0.5f - 0.3f;
|
|
||||||
float z1_ = z + 0.5f + 0.3f;
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x0_ ), ( float )( y + h ), ( float )( z + 1 ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x0 ), ( float )( y + 0 ), ( float )( z + 1 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x0 ), ( float )( y + 0 ), ( float )( z + 0 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x0_ ), ( float )( y + h ), ( float )( z + 0 ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x1_ ), ( float )( y + h ), ( float )( z + 0 ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x1 ), ( float )( y + 0 ), ( float )( z + 0 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x1 ), ( float )( y + 0 ), ( float )( z + 1 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x1_ ), ( float )( y + h ), ( float )( z + 1 ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
u0 = (xt) / 256.0f;
|
|
||||||
u1 = (xt + 15.99f) / 256.0f;
|
|
||||||
v0 = (yt) / 256.0f;
|
|
||||||
v1 = (yt + 15.99f) / 256.0f;
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + h ), ( float )( z1_ ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + 0 ), ( float )( z1 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + 0 ), ( float )( z1 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + h ), ( float )( z1_ ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + h ), ( float )( z0_ ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + 0 ), ( float )( z0 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + 0 ), ( float )( z0 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + h ), ( float )( z0_ ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
x0 = x + 0.5f - 0.5f;
|
|
||||||
x1 = x + 0.5f + 0.5f;
|
|
||||||
z0 = z + 0.5f - 0.5f;
|
|
||||||
z1 = z + 0.5f + 0.5f;
|
|
||||||
|
|
||||||
x0_ = x + 0.5f - 0.4f;
|
|
||||||
x1_ = x + 0.5f + 0.4f;
|
|
||||||
z0_ = z + 0.5f - 0.4f;
|
|
||||||
z1_ = z + 0.5f + 0.4f;
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x0_ ), ( float )( y + h ), ( float )( z + 0 ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x0 ), ( float )( y + 0 ), ( float )( z + 0 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x0 ), ( float )( y + 0 ), ( float )( z + 1 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x0_ ), ( float )( y + h ), ( float )( z + 1 ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x1_ ), ( float )( y + h ), ( float )( z + 1 ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x1 ), ( float )( y + 0 ), ( float )( z + 1 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x1 ), ( float )( y + 0 ), ( float )( z + 0 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x1_ ), ( float )( y + h ), ( float )( z + 0 ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
|
|
||||||
u0 = (xt) / 256.0f;
|
|
||||||
u1 = (xt + 15.99f) / 256.0f;
|
|
||||||
v0 = (yt) / 256.0f;
|
|
||||||
v1 = (yt + 15.99f) / 256.0f;
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + h ), ( float )( z1_ ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + 0 ), ( float )( z1 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + 0 ), ( float )( z1 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + h ), ( float )( z1_ ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + h ), ( float )( z0_ ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 ), ( float )( y + 0 ), ( float )( z0 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + 0 ), ( float )( z0 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0 ), ( float )( y + h ), ( float )( z0_ ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
float r = 0.2f;
|
|
||||||
float yo = 1 / 16.0f;
|
|
||||||
if ( ( ( x + y + z ) & 1 ) == 1 )
|
|
||||||
{
|
|
||||||
u0 = (xt) / 256.0f;
|
|
||||||
u1 = (xt + 15.99f) / 256.0f;
|
|
||||||
v0 = (yt) / 256.0f;
|
|
||||||
v1 = (yt + 15.99f) / 256.0f;
|
|
||||||
}
|
|
||||||
if ( ( ( x / 2 + y / 2 + z / 2 ) & 1 ) == 1 )
|
|
||||||
{
|
|
||||||
float tmp = u1;
|
|
||||||
u1 = u0;
|
|
||||||
u0 = tmp;
|
|
||||||
}
|
|
||||||
if ( Tile::fire->canBurn( level, x - 1, y, z ) )
|
|
||||||
{
|
|
||||||
t.vertexUV( ( float )( x + r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
}
|
|
||||||
if ( Tile::fire->canBurn( level, x + 1, y, z ) )
|
|
||||||
{
|
|
||||||
t.vertexUV( ( float )( x + 1 - r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 - 0 ), ( float )( y + 0 + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 - 0 ), ( float )( y + 0 + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1 - r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 1.0f - r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f - 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f - 0 ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f - r ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
}
|
|
||||||
if ( Tile::fire->canBurn( level, x, y, z - 1 ) )
|
|
||||||
{
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
r ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
r ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
r ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z +
|
|
||||||
0.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + h + yo ), ( float )( z +
|
|
||||||
r ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
}
|
|
||||||
if ( Tile::fire->canBurn( level, x, y, z + 1 ) )
|
|
||||||
{
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + h + yo ), ( float )( z + 1.0f -
|
|
||||||
r ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + 0.0f + yo ), ( float )( z + 1.0f -
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z + 1.0f -
|
|
||||||
0.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + h + yo ), ( float )( z + 1.0f -
|
|
||||||
r ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + h + yo ), ( float )( z + 1.0f -
|
|
||||||
r ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y + 0.0f + yo ), ( float )( z + 1.0f -
|
|
||||||
0.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + 0.0f + yo ), ( float )( z + 1.0f -
|
|
||||||
0.0f ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y + h + yo ), ( float )( z + 1.0f -
|
|
||||||
r ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
}
|
|
||||||
if ( Tile::fire->canBurn( level, x, y + 1.0f, z ) )
|
|
||||||
{
|
|
||||||
double x0 = x + 0.5f + 0.5f;
|
|
||||||
double x1 = x + 0.5f - 0.5f;
|
|
||||||
double z0 = z + 0.5f + 0.5f;
|
|
||||||
double z1 = z + 0.5f - 0.5f;
|
|
||||||
|
|
||||||
double x0_ = x + 0.5f - 0.5f;
|
|
||||||
double x1_ = x + 0.5f + 0.5f;
|
|
||||||
double z0_ = z + 0.5f - 0.5f;
|
|
||||||
double z1_ = z + 0.5f + 0.5f;
|
|
||||||
|
|
||||||
u0 = (xt) / 256.0f;
|
|
||||||
u1 = (xt + 15.99f) / 256.0f;
|
|
||||||
v0 = (yt) / 256.0f;
|
|
||||||
v1 = (yt + 15.99f) / 256.0f;
|
|
||||||
|
|
||||||
y += 1;
|
|
||||||
h = -0.2f;
|
|
||||||
|
|
||||||
if ( ( ( x + y + z ) & 1 ) == 0 )
|
|
||||||
{
|
|
||||||
t.vertexUV( ( float )( x0_ ), ( float )( y + h ), ( float )( z +
|
|
||||||
0 ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x0 ), ( float )( y + 0 ), ( float )( z +
|
|
||||||
0 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x0 ), ( float )( y + 0 ), ( float )( z +
|
|
||||||
1 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x0_ ), ( float )( y + h ), ( float )( z +
|
|
||||||
1 ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
u0 = (xt) / 256.0f;
|
|
||||||
u1 = (xt + 15.99f) / 256.0f;
|
|
||||||
v0 = (yt) / 256.0f;
|
|
||||||
v1 = (yt + 15.99f) / 256.0f;
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x1_ ), ( float )( y + h ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x1 ), ( float )( y + 0.0f ), ( float )( z +
|
|
||||||
1.0f ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x1 ), ( float )( y + 0.0f ), ( float )( z +
|
|
||||||
0 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x1_ ), ( float )( y + h ), ( float )( z +
|
|
||||||
0 ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y +
|
|
||||||
h ), ( float )( z1_ ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y +
|
|
||||||
0.0f ), ( float )( z1 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y +
|
|
||||||
0.0f ), ( float )( z1 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y +
|
|
||||||
h ), ( float )( z1_ ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
|
|
||||||
u0 = (xt) / 256.0f;
|
|
||||||
u1 = (xt + 15.99f) / 256.0f;
|
|
||||||
v0 = (yt) / 256.0f;
|
|
||||||
v1 = (yt + 15.99f) / 256.0f;
|
|
||||||
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y +
|
|
||||||
h ), ( float )( z0_ ), ( float )( u1 ), ( float )( v0 ) );
|
|
||||||
t.vertexUV( ( float )( x + 1.0f ), ( float )( y +
|
|
||||||
0.0f ), ( float )( z0 ), ( float )( u1 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y +
|
|
||||||
0.0f ), ( float )( z0 ), ( float )( u0 ), ( float )( v1 ) );
|
|
||||||
t.vertexUV( ( float )( x + 0.0f ), ( float )( y +
|
|
||||||
h ), ( float )( z0_ ), ( float )( u0 ), ( float )( v0 ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool TileRenderer::tesselateLadderInWorld( Tile* tt, int x, int y, int z )
|
bool TileRenderer::tesselateLadderInWorld( Tile* tt, int x, int y, int z )
|
||||||
{
|
{
|
||||||
Tesselator& t = Tesselator::instance;
|
Tesselator& t = Tesselator::instance;
|
||||||
|
|||||||
@@ -34,8 +34,6 @@ public:
|
|||||||
bool tesselateFenceGateInWorld(FenceGateTile* tt, int x, int y, int z);
|
bool tesselateFenceGateInWorld(FenceGateTile* tt, int x, int y, int z);
|
||||||
bool tesselateBedInWorld(Tile *tt, int x, int y, int z);
|
bool tesselateBedInWorld(Tile *tt, int x, int y, int z);
|
||||||
bool tesselateRowInWorld(Tile* tt, int x, int y, int z);
|
bool tesselateRowInWorld(Tile* tt, int x, int y, int z);
|
||||||
bool tesselateFireInWorld(Tile* tt, int x, int y, int z);
|
|
||||||
|
|
||||||
|
|
||||||
void tesselateTorch(Tile* tt, float x, float y, float z, float xxa, float zza);
|
void tesselateTorch(Tile* tt, float x, float y, float z, float xxa, float zza);
|
||||||
void tesselateCrossTexture(Tile* tt, int data, float x, float y, float z);
|
void tesselateCrossTexture(Tile* tt, int data, float x, float y, float z);
|
||||||
|
|||||||
@@ -40,18 +40,18 @@ EntityRenderDispatcher::EntityRenderDispatcher()
|
|||||||
{
|
{
|
||||||
//@note: The Models (model/armor) will be deleted by resp. MobRenderer
|
//@note: The Models (model/armor) will be deleted by resp. MobRenderer
|
||||||
assign( ER_ITEM_RENDERER, new ItemRenderer());
|
assign( ER_ITEM_RENDERER, new ItemRenderer());
|
||||||
assign( ER_HUMANOID_RENDERER, new HumanoidMobRenderer(new HumanoidModel(), 0.5));
|
assign( ER_HUMANOID_RENDERER, new HumanoidMobRenderer(new HumanoidModel(), 0));
|
||||||
assign( ER_PIG_RENDERER, new PigRenderer(new PigModel(0.5), NULL/*new PigModel(0.5f)*/, 0.7));
|
assign( ER_PIG_RENDERER, new PigRenderer(new PigModel(), NULL/*new PigModel(0.5f)*/, 0));
|
||||||
assign( ER_COW_RENDERER, new MobRenderer(new CowModel(), 0.7));
|
assign( ER_COW_RENDERER, new MobRenderer(new CowModel(), 0));
|
||||||
assign( ER_CHICKEN_RENDERER, new ChickenRenderer( new ChickenModel(), 0.3));
|
assign( ER_CHICKEN_RENDERER, new ChickenRenderer( new ChickenModel(), 0));
|
||||||
assign( ER_SHEEP_RENDERER, new SheepRenderer(new SheepModel(), new SheepFurModel(), 0.7));
|
assign( ER_SHEEP_RENDERER, new SheepRenderer(new SheepModel(), new SheepFurModel(), 0));
|
||||||
assign( ER_SKELETON_RENDERER, new HumanoidMobRenderer(new SkeletonModel(), 0.5f));
|
assign( ER_SKELETON_RENDERER, new HumanoidMobRenderer(new SkeletonModel(), 0.5f));
|
||||||
assign( ER_ZOMBIE_RENDERER, new HumanoidMobRenderer(new ZombieModel(), 0.5f));
|
assign( ER_ZOMBIE_RENDERER, new HumanoidMobRenderer(new ZombieModel(), 0.5f));
|
||||||
assign( ER_CREEPER_RENDERER, new CreeperRenderer());
|
assign( ER_CREEPER_RENDERER, new CreeperRenderer());
|
||||||
assign( ER_SPIDER_RENDERER, new SpiderRenderer());
|
assign( ER_SPIDER_RENDERER, new SpiderRenderer());
|
||||||
assign( ER_TNT_RENDERER, new TntRenderer());
|
assign( ER_TNT_RENDERER, new TntRenderer());
|
||||||
assign( ER_ARROW_RENDERER, new ArrowRenderer());
|
assign( ER_ARROW_RENDERER, new ArrowRenderer());
|
||||||
assign( ER_PLAYER_RENDERER, new PlayerRenderer(new HumanoidModel(0, 0, 64, 64), 0.5));
|
assign( ER_PLAYER_RENDERER, new PlayerRenderer(new HumanoidModel(0, 0, 64, 64), 0));
|
||||||
assign( ER_THROWNEGG_RENDERER, new ItemSpriteRenderer(Item::egg->getIcon(0)));
|
assign( ER_THROWNEGG_RENDERER, new ItemSpriteRenderer(Item::egg->getIcon(0)));
|
||||||
assign( ER_SNOWBALL_RENDERER, new ItemSpriteRenderer(Item::snowBall->getIcon(0)));
|
assign( ER_SNOWBALL_RENDERER, new ItemSpriteRenderer(Item::snowBall->getIcon(0)));
|
||||||
assign( ER_PAINTING_RENDERER, new PaintingRenderer());
|
assign( ER_PAINTING_RENDERER, new PaintingRenderer());
|
||||||
@@ -133,7 +133,7 @@ void EntityRenderDispatcher::render( Entity* entity, float x, float y, float z,
|
|||||||
EntityRenderer* renderer = getRenderer(entity);
|
EntityRenderer* renderer = getRenderer(entity);
|
||||||
if (renderer != NULL) {
|
if (renderer != NULL) {
|
||||||
renderer->render(entity, x, y, z, rot, a);
|
renderer->render(entity, x, y, z, rot, a);
|
||||||
renderer->postRender(entity, x, y, z, rot, a);
|
//renderer->postRender(entity, x, y, z, rot, a);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,17 +5,11 @@
|
|||||||
#include "../gles.h"
|
#include "../gles.h"
|
||||||
#include "../../../world/phys/AABB.h"
|
#include "../../../world/phys/AABB.h"
|
||||||
#include "EntityRenderDispatcher.h"
|
#include "EntityRenderDispatcher.h"
|
||||||
#include "../../../util/Mth.h"
|
|
||||||
#include "../../../world/level/Level.h"
|
|
||||||
#include "../../../world/level/tile/Tile.h"
|
|
||||||
|
|
||||||
#include "../../Minecraft.h"
|
|
||||||
#include "../../Option.h"
|
|
||||||
|
|
||||||
EntityRenderDispatcher* EntityRenderer::entityRenderDispatcher = NULL;
|
EntityRenderDispatcher* EntityRenderer::entityRenderDispatcher = NULL;
|
||||||
|
|
||||||
EntityRenderer::EntityRenderer()
|
EntityRenderer::EntityRenderer()
|
||||||
: shadowRadius(0),
|
: shadowRadius(0),
|
||||||
shadowStrength(1.0f)
|
shadowStrength(1.0f)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -42,37 +36,37 @@ void EntityRenderer::render(const AABB& bb, float xo, float yo, float zo) {
|
|||||||
glColor4f2(1, 1, 1, 1);
|
glColor4f2(1, 1, 1, 1);
|
||||||
t.begin();
|
t.begin();
|
||||||
t.offset(xo, yo, zo);
|
t.offset(xo, yo, zo);
|
||||||
t.normal(0, 0, -1);
|
//t.normal(0, 0, -1);
|
||||||
t.vertex(bb.x0, bb.y1, bb.z0);
|
t.vertex(bb.x0, bb.y1, bb.z0);
|
||||||
t.vertex(bb.x1, bb.y1, bb.z0);
|
t.vertex(bb.x1, bb.y1, bb.z0);
|
||||||
t.vertex(bb.x1, bb.y0, bb.z0);
|
t.vertex(bb.x1, bb.y0, bb.z0);
|
||||||
t.vertex(bb.x0, bb.y0, bb.z0);
|
t.vertex(bb.x0, bb.y0, bb.z0);
|
||||||
|
|
||||||
t.normal(0, 0, 1);
|
//t.normal(0, 0, 1);
|
||||||
t.vertex(bb.x0, bb.y0, bb.z1);
|
t.vertex(bb.x0, bb.y0, bb.z1);
|
||||||
t.vertex(bb.x1, bb.y0, bb.z1);
|
t.vertex(bb.x1, bb.y0, bb.z1);
|
||||||
t.vertex(bb.x1, bb.y1, bb.z1);
|
t.vertex(bb.x1, bb.y1, bb.z1);
|
||||||
t.vertex(bb.x0, bb.y1, bb.z1);
|
t.vertex(bb.x0, bb.y1, bb.z1);
|
||||||
|
|
||||||
t.normal(0, -1, 0);
|
//t.normal(0, -1, 0);
|
||||||
t.vertex(bb.x0, bb.y0, bb.z0);
|
t.vertex(bb.x0, bb.y0, bb.z0);
|
||||||
t.vertex(bb.x1, bb.y0, bb.z0);
|
t.vertex(bb.x1, bb.y0, bb.z0);
|
||||||
t.vertex(bb.x1, bb.y0, bb.z1);
|
t.vertex(bb.x1, bb.y0, bb.z1);
|
||||||
t.vertex(bb.x0, bb.y0, bb.z1);
|
t.vertex(bb.x0, bb.y0, bb.z1);
|
||||||
|
|
||||||
t.normal(0, 1, 0);
|
//t.normal(0, 1, 0);
|
||||||
t.vertex(bb.x0, bb.y1, bb.z1);
|
t.vertex(bb.x0, bb.y1, bb.z1);
|
||||||
t.vertex(bb.x1, bb.y1, bb.z1);
|
t.vertex(bb.x1, bb.y1, bb.z1);
|
||||||
t.vertex(bb.x1, bb.y1, bb.z0);
|
t.vertex(bb.x1, bb.y1, bb.z0);
|
||||||
t.vertex(bb.x0, bb.y1, bb.z0);
|
t.vertex(bb.x0, bb.y1, bb.z0);
|
||||||
|
|
||||||
t.normal(-1, 0, 0);
|
//t.normal(-1, 0, 0);
|
||||||
t.vertex(bb.x0, bb.y0, bb.z1);
|
t.vertex(bb.x0, bb.y0, bb.z1);
|
||||||
t.vertex(bb.x0, bb.y1, bb.z1);
|
t.vertex(bb.x0, bb.y1, bb.z1);
|
||||||
t.vertex(bb.x0, bb.y1, bb.z0);
|
t.vertex(bb.x0, bb.y1, bb.z0);
|
||||||
t.vertex(bb.x0, bb.y0, bb.z0);
|
t.vertex(bb.x0, bb.y0, bb.z0);
|
||||||
|
|
||||||
t.normal(1, 0, 0);
|
//t.normal(1, 0, 0);
|
||||||
t.vertex(bb.x1, bb.y0, bb.z0);
|
t.vertex(bb.x1, bb.y0, bb.z0);
|
||||||
t.vertex(bb.x1, bb.y1, bb.z0);
|
t.vertex(bb.x1, bb.y1, bb.z0);
|
||||||
t.vertex(bb.x1, bb.y1, bb.z1);
|
t.vertex(bb.x1, bb.y1, bb.z1);
|
||||||
@@ -122,139 +116,134 @@ Font* EntityRenderer::getFont() {
|
|||||||
return entityRenderDispatcher->getFont();
|
return entityRenderDispatcher->getFont();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityRenderer::postRender(Entity* entity, float x, float y, float z, float rot, float a) {
|
//void postRender(Entity entity, float x, float y, float z, float rot, float a) {
|
||||||
if (/*entityRenderDispatcher.options.fancyGraphics &&*/entityRenderDispatcher->minecraft->options.getBooleanValue(OPTIONS_FANCY_GRAPHICS) && shadowRadius > 0) {
|
// if (entityRenderDispatcher.options.fancyGraphics && shadowRadius > 0) {
|
||||||
float dist = entityRenderDispatcher->distanceToSqr(entity->x, entity->y, entity->z);
|
// float dist = entityRenderDispatcher.distanceToSqr(entity.x, entity.y, entity.z);
|
||||||
float pow = (float) ((1 - dist / (16.0f * 16.0f)) * shadowStrength);
|
// float pow = (float) ((1 - dist / (16.0f * 16.0f)) * shadowStrength);
|
||||||
if (pow > 0) {
|
// if (pow > 0) {
|
||||||
renderShadow(entity, x, y, z, pow, a);
|
// renderShadow(entity, x, y, z, pow, a);
|
||||||
}
|
// }
|
||||||
//}
|
// }
|
||||||
if (entity->isOnFire()) renderFlame(entity, x, y, z, a);
|
// if (entity.isOnFire()) renderFlame(entity, x, y, z, a);
|
||||||
}
|
//}
|
||||||
}
|
|
||||||
void EntityRenderer::renderFlame(Entity* e, float x, float y, float z, float a) {
|
|
||||||
|
|
||||||
int tex = ((Tile*)Tile::fire)->tex;
|
//void renderFlame(Entity e, float x, float y, float z, float a) {
|
||||||
|
// glDisable2(GL_LIGHTING);
|
||||||
|
// int tex = Tile.fire.tex;
|
||||||
|
|
||||||
int xt = (tex & 0xf) << 4;
|
// int xt = (tex & 0xf) << 4;
|
||||||
int yt = tex & 0xf0;
|
// int yt = tex & 0xf0;
|
||||||
|
|
||||||
float u0 = (xt) / 256.0f;
|
// float u0 = (xt) / 256.0f;
|
||||||
float u1 = (xt + 15.99f) / 256.0f;
|
// float u1 = (xt + 15.99f) / 256.0f;
|
||||||
float v0 = (yt) / 256.0f;
|
// float v0 = (yt) / 256.0f;
|
||||||
float v1 = (yt + 15.99f) / 256.0f;
|
// float v1 = (yt + 15.99f) / 256.0f;
|
||||||
|
|
||||||
glPushMatrix2();
|
// glPushMatrix2();
|
||||||
glTranslatef2((float) x, (float) y, (float) z);
|
// glTranslatef2((float) x, (float) y, (float) z);
|
||||||
|
|
||||||
float s = e->bbWidth * 1.4f;
|
// float s = e.bbWidth * 1.4f;
|
||||||
glScalef2(s, s, s);
|
// glScalef2(s, s, s);
|
||||||
bindTexture("terrain.png");
|
// bindTexture("terrain.png");
|
||||||
Tesselator& t = Tesselator::instance;
|
// Tesselator t = Tesselator.instance;
|
||||||
|
|
||||||
float r = 1.0f;
|
// float r = 1.0f;
|
||||||
float xo = 0.5f;
|
// float xo = 0.5f;
|
||||||
float yo = 0.0f;
|
// float yo = 0.0f;
|
||||||
|
|
||||||
float h = e->bbHeight / e->bbWidth;
|
// float h = e.bbHeight / e.bbWidth;
|
||||||
|
|
||||||
glRotatef2(-entityRenderDispatcher->playerRotY, 0, 1, 0);
|
// glRotatef2(-entityRenderDispatcher.playerRotY, 0, 1, 0);
|
||||||
glTranslatef2(0, 0, -0.4f + ((int) h) * 0.02f);
|
// glTranslatef2(0, 0, -0.4f + ((int) h) * 0.02f);
|
||||||
glColor4f2(1, 1, 1, 1);
|
// glColor4f2(1, 1, 1, 1);
|
||||||
// glRotatef2(-playerRotX, 1, 0, 0);
|
// // glRotatef2(-playerRotX, 1, 0, 0);
|
||||||
t.begin();
|
// t.begin();
|
||||||
while (h > 0) {
|
// while (h > 0) {
|
||||||
t.vertexUV(r - xo, 0 - yo, 0, u1, v1);
|
// t.vertexUV(r - xo, 0 - yo, 0, u1, v1);
|
||||||
t.vertexUV(0 - xo, 0 - yo, 0, u0, v1);
|
// t.vertexUV(0 - xo, 0 - yo, 0, u0, v1);
|
||||||
t.vertexUV(0 - xo, 1.4f - yo, 0, u0, v0);
|
// t.vertexUV(0 - xo, 1.4f - yo, 0, u0, v0);
|
||||||
t.vertexUV(r - xo, 1.4f - yo, 0, u1, v0);
|
// t.vertexUV(r - xo, 1.4f - yo, 0, u1, v0);
|
||||||
h -= 1;
|
// h -= 1;
|
||||||
yo -= 1;
|
// yo -= 1;
|
||||||
r *= 0.9f;
|
// r *= 0.9f;
|
||||||
glTranslatef2(0, 0, -0.04f);
|
// glTranslatef2(0, 0, -0.04f);
|
||||||
}
|
// }
|
||||||
t.draw();
|
// t.end();
|
||||||
glPopMatrix2();
|
// glPopMatrix2();
|
||||||
// glEnable2(GL_LIGHTING);
|
// glEnable2(GL_LIGHTING);
|
||||||
}
|
//}
|
||||||
|
|
||||||
void EntityRenderer::renderShadow(Entity* e, float x, float y, float z, float pow, float a) { //
|
//void renderShadow(Entity e, float x, float y, float z, float pow, float a) {
|
||||||
glEnable2(GL_BLEND);
|
// glEnable2(GL_BLEND);
|
||||||
glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
// glBlendFunc2(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
//Textures* textures = entityRenderDispatcher->textures;
|
// Textures textures = entityRenderDispatcher.textures;
|
||||||
//textures->bind(textures->loadTexture("%clamp%/environment/shadow.png"));
|
// textures.bind(textures.loadTexture("%clamp%/misc/shadow.png"));
|
||||||
Textures* textures = entityRenderDispatcher->textures;
|
|
||||||
textures->bind(textures->loadTexture("/misc/shadow.png"));
|
|
||||||
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
// Level level = getLevel();
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
|
||||||
|
|
||||||
Level* level = getLevel();
|
// glDepthMask(false);
|
||||||
|
// float r = shadowRadius;
|
||||||
|
|
||||||
glDepthMask(false);
|
// float ex = e.xOld + (e.x - e.xOld) * a;
|
||||||
float r = shadowRadius;
|
// float ey = e.yOld + (e.y - e.yOld) * a + e.getShadowHeightOffs();
|
||||||
|
// float ez = e.zOld + (e.z - e.zOld) * a;
|
||||||
|
|
||||||
float ex = e->xOld + (e->x - e->xOld) * a;
|
// int x0 = Mth.floor(ex - r);
|
||||||
float ey = e->yOld + (e->y - e->yOld) * a + e->getShadowHeightOffs();
|
// int x1 = Mth.floor(ex + r);
|
||||||
float ez = e->zOld + (e->z - e->zOld) * a;
|
// int y0 = Mth.floor(ey - r);
|
||||||
|
// int y1 = Mth.floor(ey);
|
||||||
|
// int z0 = Mth.floor(ez - r);
|
||||||
|
// int z1 = Mth.floor(ez + r);
|
||||||
|
|
||||||
int x0 = Mth::floor(ex - r);
|
// float xo = x - ex;
|
||||||
int x1 = Mth::floor(ex + r);
|
// float yo = y - ey;
|
||||||
int y0 = Mth::floor(ey - r);
|
// float zo = z - ez;
|
||||||
int y1 = Mth::floor(ey);
|
|
||||||
int z0 = Mth::floor(ez - r);
|
|
||||||
int z1 = Mth::floor(ez + r);
|
|
||||||
|
|
||||||
float xo = x - ex;
|
// Tesselator tt = Tesselator.instance;
|
||||||
float yo = y - ey;
|
// tt.begin();
|
||||||
float zo = z - ez;
|
// for (int xt = x0; xt <= x1; xt++)
|
||||||
|
// for (int yt = y0; yt <= y1; yt++)
|
||||||
|
// for (int zt = z0; zt <= z1; zt++) {
|
||||||
|
// int t = level.getTile(xt, yt - 1, zt);
|
||||||
|
// if (t > 0 && level.getRawBrightness(xt, yt, zt) > 3) {
|
||||||
|
// renderTileShadow(Tile.tiles[t], x, y + e.getShadowHeightOffs(), z, xt, yt, zt, pow, r, xo, yo + e.getShadowHeightOffs(), zo);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// tt.end();
|
||||||
|
|
||||||
Tesselator& tt = Tesselator::instance;
|
// glColor4f2(1, 1, 1, 1);
|
||||||
tt.begin();
|
// glDisable2(GL_BLEND);
|
||||||
for (int xt = x0; xt <= x1; xt++)
|
// glDepthMask(true);
|
||||||
for (int yt = y0; yt <= y1; yt++)
|
//}
|
||||||
for (int zt = z0; zt <= z1; zt++) {
|
|
||||||
int t = level->getTile(xt, yt - 1, zt);
|
|
||||||
if (t > 0 && level->getRawBrightness(xt, yt, zt) > 3) {
|
|
||||||
renderTileShadow(Tile::tiles[t], x, y + e->getShadowHeightOffs(), z, xt, yt, zt, pow, r, xo, yo + e->getShadowHeightOffs(), zo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tt.draw();
|
|
||||||
|
|
||||||
glColor4f2(1, 1, 1, 1);
|
//Level* getLevel() {
|
||||||
glDisable2(GL_BLEND);
|
// return entityRenderDispatcher.level;
|
||||||
glDepthMask(true);
|
//}
|
||||||
}
|
|
||||||
|
|
||||||
Level* EntityRenderer::getLevel() {
|
//void renderTileShadow(Tile tt, float x, float y, float z, int xt, int yt, int zt, float pow, float r, float xo, float yo, float zo) {
|
||||||
return entityRenderDispatcher->level;
|
// Tesselator t = Tesselator.instance;
|
||||||
}
|
// if (!tt.isCubeShaped()) return;
|
||||||
|
|
||||||
void EntityRenderer::renderTileShadow(Tile* tt, float x, float y, float z, int xt, int yt, int zt, float pow, float r, float xo, float yo, float zo) {
|
// float a = ((pow - (y - (yt + yo)) / 2) * 0.5f) * getLevel().getBrightness(xt, yt, zt);
|
||||||
Tesselator& t = Tesselator::instance;
|
// if (a < 0) return;
|
||||||
if (!tt->isCubeShaped()) return;
|
// if (a > 1) a = 1;
|
||||||
|
// t.color(1, 1, 1, (float) a);
|
||||||
|
// // glColor4f2(1, 1, 1, (float) a);
|
||||||
|
|
||||||
float a = ((pow - (y - (yt + yo)) / 2) * 0.5f) * getLevel()->getBrightness(xt, yt, zt);
|
// float x0 = xt + tt.xx0 + xo;
|
||||||
if (a < 0) return;
|
// float x1 = xt + tt.xx1 + xo;
|
||||||
if (a > 1) a = 1;
|
// float y0 = yt + tt.yy0 + yo + 1.0 / 64.0f;
|
||||||
// t.color(1, 1, 1, (float) a);
|
// float z0 = zt + tt.zz0 + zo;
|
||||||
glColor4f2(1, 1, 1, (float) a);
|
// float z1 = zt + tt.zz1 + zo;
|
||||||
|
|
||||||
float x0 = xt + tt->xx0 + xo;
|
// float u0 = (float) ((x - (x0)) / 2 / r + 0.5f);
|
||||||
float x1 = xt + tt->xx1 + xo;
|
// float u1 = (float) ((x - (x1)) / 2 / r + 0.5f);
|
||||||
float y0 = yt + tt->yy0 + yo + 1.0 / 64.0f;
|
// float v0 = (float) ((z - (z0)) / 2 / r + 0.5f);
|
||||||
float z0 = zt + tt->zz0 + zo;
|
// float v1 = (float) ((z - (z1)) / 2 / r + 0.5f);
|
||||||
float z1 = zt + tt->zz1 + zo;
|
|
||||||
|
|
||||||
float u0 = (float) ((x - (x0)) / 2 / r + 0.5f);
|
// t.vertexUV(x0, y0, z0, u0, v0);
|
||||||
float u1 = (float) ((x - (x1)) / 2 / r + 0.5f);
|
// t.vertexUV(x0, y0, z1, u0, v1);
|
||||||
float v0 = (float) ((z - (z0)) / 2 / r + 0.5f);
|
// t.vertexUV(x1, y0, z1, u1, v1);
|
||||||
float v1 = (float) ((z - (z1)) / 2 / r + 0.5f);
|
// t.vertexUV(x1, y0, z0, u1, v0);
|
||||||
|
//}
|
||||||
t.vertexUV(x0, y0, z0, u0, v0);
|
|
||||||
t.vertexUV(x0, y0, z1, u0, v1);
|
|
||||||
t.vertexUV(x1, y0, z1, u1, v1);
|
|
||||||
t.vertexUV(x1, y0, z0, u1, v0);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ class EntityRenderDispatcher;
|
|||||||
class Entity;
|
class Entity;
|
||||||
class AABB;
|
class AABB;
|
||||||
class Font;
|
class Font;
|
||||||
class Tile;
|
|
||||||
class Level;
|
|
||||||
|
|
||||||
class EntityRenderer
|
class EntityRenderer
|
||||||
{
|
{
|
||||||
@@ -26,11 +24,6 @@ public:
|
|||||||
virtual void render(Entity* entity, float x, float y, float z, float rot, float a) = 0;
|
virtual void render(Entity* entity, float x, float y, float z, float rot, float a) = 0;
|
||||||
static void render(const AABB& bb, float xo, float yo, float zo);
|
static void render(const AABB& bb, float xo, float yo, float zo);
|
||||||
static void renderFlat(const AABB& bb);
|
static void renderFlat(const AABB& bb);
|
||||||
void renderShadow(Entity* e, float x, float y, float z, float pow, float a);
|
|
||||||
void renderTileShadow(Tile* tt, float x, float y, float z, int xt, int yt, int zt, float pow, float r, float xo, float yo, float zo);
|
|
||||||
void renderFlame(Entity* e, float x, float y, float z, float a);
|
|
||||||
void postRender(Entity* entity, float x, float y, float z, float rot, float a);
|
|
||||||
Level* getLevel();
|
|
||||||
|
|
||||||
Font* getFont();
|
Font* getFont();
|
||||||
|
|
||||||
|
|||||||
@@ -226,42 +226,7 @@ void ItemRenderer::renderGuiItem(Font* font, Textures* textures, const ItemInsta
|
|||||||
t.draw();
|
t.draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ItemRenderer::renderGuiItemDecorations(const ItemInstance* item, float x, float y) {
|
||||||
void ItemRenderer::renderGuiItemDecorations(Font* font, Textures* textures, ItemInstance* item, int x, int y){ // this is normally unused in the header but i ported it from java beta - shredder
|
|
||||||
if (item != NULL) {
|
|
||||||
if (item->count > 1) {
|
|
||||||
char buf[16];
|
|
||||||
sprintf(buf, "%d", item->count);
|
|
||||||
std::string countStr = buf;
|
|
||||||
// glDisable(GL_LIGHTING);
|
|
||||||
// glDisable(GL_DEPTH_TEST);
|
|
||||||
font->drawShadow(countStr, x + 19 - 2 - font->width(countStr),
|
|
||||||
y + 6 + 3, 0xFFFFFF);
|
|
||||||
// glEnable(GL_LIGHTING);
|
|
||||||
// glEnable(GL_DEPTH_TEST);
|
|
||||||
}
|
|
||||||
if (item->isDamaged()) {
|
|
||||||
float p = std::floor(13.5f - (float) item->getDamageValue() * 13.0f / (float) item->getMaxDamage() + 0.5);
|
|
||||||
int cc = (int) std::floor(255.5f - (float) item->getDamageValue() * 255.0f / (float) item->getMaxDamage() + 0.5);
|
|
||||||
// glDisable(GL_LIGHTING);
|
|
||||||
// glDisable(GL_DEPTH_TEST);
|
|
||||||
// glDisable(GL_TEXTURE_2D);
|
|
||||||
// auto var8 = ::net::minecraft::client::renderer::Tesselator::instance();
|
|
||||||
Tesselator& t = Tesselator::instance;
|
|
||||||
int ca = ((255 - cc)<< 16 | (cc << 8));
|
|
||||||
int cb = (((255 - cc) / 4) << 16 | 16128);
|
|
||||||
fillRect(t, x + 2, y + 13, 13, 2, 0);
|
|
||||||
fillRect(t, x + 2, y + 13, 12, 1, cb);
|
|
||||||
fillRect(t, x + 2, y + 13, p, 1, ca);
|
|
||||||
// glEnable(GL_TEXTURE_2D);
|
|
||||||
// glEnable(GL_LIGHTING);
|
|
||||||
// glEnable(GL_DEPTH_TEST);
|
|
||||||
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ItemRenderer::renderGuiItemDecorations(const ItemInstance* item, float x, float y) { // nothing changed here this is the normal pocket edition one.
|
|
||||||
if (!item) return;
|
if (!item) return;
|
||||||
if (item->count > 0 && item->isDamaged()) {
|
if (item->count > 0 && item->isDamaged()) {
|
||||||
float p = std::floor(13.5f - (float) item->getDamageValue() * 13.0f / (float) item->getMaxDamage());
|
float p = std::floor(13.5f - (float) item->getDamageValue() * 13.0f / (float) item->getMaxDamage());
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public:
|
|||||||
static void renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, bool fancy);
|
static void renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, bool fancy);
|
||||||
static void renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, float w, float h, bool fancy);
|
static void renderGuiItem(Font* font, Textures* textures, const ItemInstance* item, float x, float y, float w, float h, bool fancy);
|
||||||
static void renderGuiItemCorrect(Font* font, Textures* textures, const ItemInstance* item, int x, int y);
|
static void renderGuiItemCorrect(Font* font, Textures* textures, const ItemInstance* item, int x, int y);
|
||||||
static void renderGuiItemDecorations(Font* font, Textures* textures, ItemInstance* item, int x, int y);
|
//void renderGuiItemDecorations(Font* font, Textures* textures, ItemInstance* item, int x, int y);
|
||||||
static void renderGuiItemDecorations(const ItemInstance* item, float x, float y);
|
static void renderGuiItemDecorations(const ItemInstance* item, float x, float y);
|
||||||
|
|
||||||
static void blit(float x, float y, float sx, float sy, float w, float h);
|
static void blit(float x, float y, float sx, float sy, float w, float h);
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ void MobRenderer::render(Entity* e, float x, float y, float z, float rot, float
|
|||||||
//glEnable2(GL_DEPTH_TEST);
|
//glEnable2(GL_DEPTH_TEST);
|
||||||
|
|
||||||
glPopMatrix2();
|
glPopMatrix2();
|
||||||
postRender(mob, x, y, z, rot, a);
|
|
||||||
renderName(mob, x, y, z);
|
renderName(mob, x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,11 +14,11 @@
|
|||||||
#define USE_VBO
|
#define USE_VBO
|
||||||
#define GL_QUADS 0x0007
|
#define GL_QUADS 0x0007
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
#import <OpenGLES/ES1/gl.height>
|
#import <OpenGLES/ES1/gl.h>
|
||||||
#import <OpenGLES/ES1/glext.height>
|
#import <OpenGLES/ES1/glext.h>
|
||||||
#elif defined(ANDROID) || defined(__EMSCRIPTEN__)
|
#elif defined(ANDROID) || defined(__EMSCRIPTEN__)
|
||||||
#include <GLES/gl.h>
|
#import <GLES/gl.h>
|
||||||
#include <GLES/glext.h>
|
#import <GLES/glext.h>
|
||||||
#else
|
#else
|
||||||
#include <glad/glad.h>
|
#include <glad/glad.h>
|
||||||
|
|
||||||
|
|||||||
@@ -206,93 +206,3 @@ void WaterSideTexture::tick() {
|
|||||||
pixels[i * 4 + 3] = a;
|
pixels[i * 4 + 3] = a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FireTexture::FireTexture()
|
|
||||||
: super(((Tile*)Tile::fire)->tex),
|
|
||||||
_tick(0),
|
|
||||||
_frame(0)
|
|
||||||
{
|
|
||||||
current = new float[16*20];
|
|
||||||
next = new float[16*20];
|
|
||||||
heat = new float[16*20];
|
|
||||||
heata = new float[16*20];
|
|
||||||
|
|
||||||
for (int i = 0; i < 256; ++i) {
|
|
||||||
current[i] = 0;
|
|
||||||
next[i] = 0;
|
|
||||||
heat[i] = 0;
|
|
||||||
heata[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FireTexture::~FireTexture() {
|
|
||||||
delete[] current;
|
|
||||||
delete[] next;
|
|
||||||
delete[] heat;
|
|
||||||
delete[] heata;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// oh boy time to implement fire textures, i am so fucked - shredder
|
|
||||||
|
|
||||||
void FireTexture::tick() {
|
|
||||||
// loop generates fire texture on the empty texture grid, hopefully shouldnt be too taxing on older hardware - shredder
|
|
||||||
for (int x = 0; x < 16; x++) {
|
|
||||||
for (int y = 0; y < 20; y++) {
|
|
||||||
int count = 18;
|
|
||||||
float pow = this->current[x + (y + 1) % 20 * 16] * (float)(count);
|
|
||||||
for (int xx = x - 1; xx <= x + 1; xx++) {
|
|
||||||
for (int yy = y; yy <= y + 1; yy++) {
|
|
||||||
if (xx >= 0 && yy >= 0 && xx < 16 && yy < 20) {
|
|
||||||
pow += this->current[xx + yy * 16];
|
|
||||||
}
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this->next[x + y * 16] = pow / (float(count) * 1.06f);
|
|
||||||
if (y >= 19) {
|
|
||||||
this->next[x + y * 16] = float(Mth::random() * Mth::random() * Mth::random() * 4.0 + Mth::random() * 0.1f + 0.2f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// hopefully this doesn't cause any mysterious issues - shredder
|
|
||||||
float* tmp = next;
|
|
||||||
next = current;
|
|
||||||
current = tmp;
|
|
||||||
|
|
||||||
for (int i = 0; i < 256; i++) {
|
|
||||||
float pow = this->current[i] * 1.8f;
|
|
||||||
if (pow > 1.0f) {
|
|
||||||
pow = 1.0f;
|
|
||||||
}
|
|
||||||
if (pow < 0.0f) {
|
|
||||||
pow = 0.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int r = (int) (pow * 155.0f + 100.0f);
|
|
||||||
int g = (int)(pow * pow * 255.0f);
|
|
||||||
int b = (int)(pow * pow * pow * pow * pow * pow * pow * pow * pow * pow * 255.0f);
|
|
||||||
int a = 255;
|
|
||||||
if (pow < 0.5f) {
|
|
||||||
a = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// @TODO: cant be arsed rn to implement the anaglyph3d check would be nice to check if it does - shredder
|
|
||||||
//if (this->anaglyph3d) {
|
|
||||||
// float rr = (r * 30 + g * 59 + b * 11) / 100;
|
|
||||||
// float gg = (r * 30 + g * 70) / 100;
|
|
||||||
// float bb = (r * 30 + b * 70) / 100;
|
|
||||||
// r = rr;
|
|
||||||
// g = gg;
|
|
||||||
// b = bb;
|
|
||||||
//}
|
|
||||||
|
|
||||||
pixels[i * 4 + 0] = r;
|
|
||||||
pixels[i * 4 + 1] = g;
|
|
||||||
pixels[i * 4 + 2] = b;
|
|
||||||
pixels[i * 4 + 3] = a;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -56,21 +56,4 @@ public:
|
|||||||
void tick();
|
void tick();
|
||||||
};
|
};
|
||||||
|
|
||||||
class FireTexture: public DynamicTexture
|
|
||||||
{
|
|
||||||
typedef DynamicTexture super;
|
|
||||||
int _tick;
|
|
||||||
int _frame;
|
|
||||||
|
|
||||||
float* current;
|
|
||||||
float* next;
|
|
||||||
float* heat;
|
|
||||||
float* heata;
|
|
||||||
|
|
||||||
public:
|
|
||||||
FireTexture();
|
|
||||||
~FireTexture();
|
|
||||||
|
|
||||||
void tick();
|
|
||||||
};
|
|
||||||
#endif /*NET_MINECRAFT_CLIENT_RENDERER_PTEXTURE__DynamicTexture_H__*/
|
#endif /*NET_MINECRAFT_CLIENT_RENDERER_PTEXTURE__DynamicTexture_H__*/
|
||||||
|
|||||||
@@ -3,8 +3,14 @@
|
|||||||
|
|
||||||
#include "SoundSystem.h"
|
#include "SoundSystem.h"
|
||||||
|
|
||||||
#include <AL/al.h>
|
// If audio breaks for other platforms, this is probably why. Here, I'm just calling where Apple's OpenAL headers live (they arent in just "AL"
|
||||||
#include <AL/alc.h>
|
#if defined(__APPLE__)
|
||||||
|
#include <OpenAL/al.h>
|
||||||
|
#include <OpenAL/alc.h>
|
||||||
|
#else
|
||||||
|
#include <AL/al.h>
|
||||||
|
#include <AL/alc.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|||||||
@@ -1,98 +0,0 @@
|
|||||||
#include "Mth.h"
|
|
||||||
|
|
||||||
#include "Color.h"
|
|
||||||
#include <cassert>
|
|
||||||
|
|
||||||
//Creates an opaque sRGB color with the specified red, green, and blue values in the range (0.0 - 1.0).
|
|
||||||
//Alpha is defaulted to 1.0. The actual color used in rendering depends on finding the best match given the color space
|
|
||||||
//available for a particular output device.
|
|
||||||
//Parameters:
|
|
||||||
//r - the red component
|
|
||||||
//g - the green component
|
|
||||||
//b - the blue component
|
|
||||||
//Throws:
|
|
||||||
//IllegalArgumentException - if r, g or b are outside of the range 0.0 to 1.0, inclusive
|
|
||||||
Color::Color( float r, float g, float b)
|
|
||||||
{
|
|
||||||
assert( r >= 0.0f && r <= 1.0f );
|
|
||||||
assert( g >= 0.0f && g <= 1.0f );
|
|
||||||
assert( b >= 0.0f && b <= 1.0f );
|
|
||||||
|
|
||||||
//argb
|
|
||||||
colour = ( (0xFF<<24) | ( (int)(r*255)<<16 ) | ( (int)(g*255)<<8 ) | ( (int)(b*255) ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
Color::Color( int r, int g, int b)
|
|
||||||
{
|
|
||||||
colour = ( (0xFF<<24) | ( (r&0xff)<<16 ) | ( (g&0xff)<<8 ) | ( (b&0xff) ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Creates a Color object based on the specified values for the HSB color model.
|
|
||||||
//The s and b components should be floating-point values between zero and one (numbers in the range 0.0-1.0).
|
|
||||||
//The h component can be any floating-point number. The floor of this number is subtracted from it to create a fraction between 0 and 1.
|
|
||||||
//This fractional number is then multiplied by 360 to produce the hue angle in the HSB color model.
|
|
||||||
//
|
|
||||||
//Parameters:
|
|
||||||
//h - the hue component
|
|
||||||
//s - the saturation of the color
|
|
||||||
//b - the brightness of the color
|
|
||||||
//Returns:
|
|
||||||
//a Color object with the specified hue, saturation, and brightness.
|
|
||||||
Color Color::getHSBColor(float hue, float saturation, float brightness)
|
|
||||||
{
|
|
||||||
int r = 0, g = 0, b = 0;
|
|
||||||
if (saturation == 0)
|
|
||||||
{
|
|
||||||
r = g = b = (int) (brightness * 255.0f + 0.5f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
float h = (hue - (float)Mth::floor(hue)) * 6.0f;
|
|
||||||
float f = h - (float)Mth::floor(h);
|
|
||||||
float p = brightness * (1.0f - saturation);
|
|
||||||
float q = brightness * (1.0f - saturation * f);
|
|
||||||
float t = brightness * (1.0f - (saturation * (1.0f - f)));
|
|
||||||
switch ((int) h)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
r = (int) (brightness * 255.0f + 0.5f);
|
|
||||||
g = (int) (t * 255.0f + 0.5f);
|
|
||||||
b = (int) (p * 255.0f + 0.5f);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
r = (int) (q * 255.0f + 0.5f);
|
|
||||||
g = (int) (brightness * 255.0f + 0.5f);
|
|
||||||
b = (int) (p * 255.0f + 0.5f);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
r = (int) (p * 255.0f + 0.5f);
|
|
||||||
g = (int) (brightness * 255.0f + 0.5f);
|
|
||||||
b = (int) (t * 255.0f + 0.5f);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
r = (int) (p * 255.0f + 0.5f);
|
|
||||||
g = (int) (q * 255.0f + 0.5f);
|
|
||||||
b = (int) (brightness * 255.0f + 0.5f);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
r = (int) (t * 255.0f + 0.5f);
|
|
||||||
g = (int) (p * 255.0f + 0.5f);
|
|
||||||
b = (int) (brightness * 255.0f + 0.5f);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
r = (int) (brightness * 255.0f + 0.5f);
|
|
||||||
g = (int) (p * 255.0f + 0.5f);
|
|
||||||
b = (int) (q * 255.0f + 0.5f);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return Color( r, g, b );
|
|
||||||
}
|
|
||||||
|
|
||||||
int Color::getRGB()
|
|
||||||
{
|
|
||||||
return colour;
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
class Color
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
int colour;
|
|
||||||
|
|
||||||
public:
|
|
||||||
//Creates an opaque sRGB color with the specified red, green, and blue values in the range (0.0 - 1.0).
|
|
||||||
Color( float r, float g, float b);
|
|
||||||
Color( int r, int g, int b);
|
|
||||||
|
|
||||||
static Color getHSBColor(float h, float s, float b);
|
|
||||||
int getRGB();
|
|
||||||
};
|
|
||||||
@@ -245,7 +245,6 @@ void Inventory::setupDefault() {
|
|||||||
addItem(new ItemInstance(Item::seeds_melon));
|
addItem(new ItemInstance(Item::seeds_melon));
|
||||||
addItem(new ItemInstance(Item::dye_powder, 1, DyePowderItem::WHITE));
|
addItem(new ItemInstance(Item::dye_powder, 1, DyePowderItem::WHITE));
|
||||||
addItem(new ItemInstance(Item::hoe_iron));
|
addItem(new ItemInstance(Item::hoe_iron));
|
||||||
addItem(new ItemInstance(Item::flintAndSteel));
|
|
||||||
#ifdef RPI
|
#ifdef RPI
|
||||||
Sel[0] = addItem(new ItemInstance(Item::sword_iron));
|
Sel[0] = addItem(new ItemInstance(Item::sword_iron));
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public:
|
|||||||
setMaxDamage(64);
|
setMaxDamage(64);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
bool useOn(ItemInstance* instance, Player* player, Level* level, int x, int y, int z, int face, float clickX, float clickY, float clickZ) {
|
bool useOn(ItemInstance* instance, Player* player, Level* level, int x, int y, int z, int face, float clickX, float clickY, float clickZ) {
|
||||||
if (face == 0) y--;
|
if (face == 0) y--;
|
||||||
if (face == 1) y++;
|
if (face == 1) y++;
|
||||||
@@ -30,14 +30,14 @@ public:
|
|||||||
|
|
||||||
int targetType = level->getTile(x, y, z);
|
int targetType = level->getTile(x, y, z);
|
||||||
if (targetType == 0) {
|
if (targetType == 0) {
|
||||||
level->playSound(x + 0.5, y + 0.5, z + 0.5, "fire.ignite", 1, random.nextFloat() * 0.4f + 0.8f);
|
level->playSound(x + 0.5, y + 0.5, z + 0.5, "fire.ignite", 1, sharedRandom.nextFloat() * 0.4f + 0.8f);
|
||||||
level->setTile(x, y, z, ((Tile*)Tile::fire)->id);
|
level->setTile(x, y, z, Tile::fire->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
instance->hurt(1);
|
instance->hurt(1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*NET_MINECRAFT_WORLD_ITEM__FlintAndSteelItem_H__*/
|
#endif /*NET_MINECRAFT_WORLD_ITEM__FlintAndSteelItem_H__*/
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#include "FoliageColor.h"
|
|
||||||
|
|
||||||
// TODO: Probably move all the stuff from the header into here so it's a bit cleaner
|
|
||||||
bool FoliageColor::useTint = true;
|
|
||||||
|
|
||||||
int FoliageColor::get(float temp, float rain) {
|
|
||||||
rain *= temp;
|
|
||||||
int x = (int) ((1 - temp) * 255);
|
|
||||||
int y = (int) ((1 - rain) * 255);
|
|
||||||
return pixels[y << 8 | x];
|
|
||||||
}
|
|
||||||
|
|
||||||
int* FoliageColor::pixels = nullptr;
|
|
||||||
@@ -6,49 +6,31 @@
|
|||||||
class FoliageColor
|
class FoliageColor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static bool useTint;
|
// static void init(int[] pixels) {
|
||||||
|
// FoliageColor::pixels = pixels;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// static int get(float temp, float rain) {
|
||||||
|
// rain *= temp;
|
||||||
|
// int x = (int) ((1 - temp) * 255);
|
||||||
|
// int y = (int) ((1 - rain) * 255);
|
||||||
|
// return pixels[y << 8 | x];
|
||||||
|
// }
|
||||||
|
|
||||||
static void setUseTint(bool value) {
|
static int getEvergreenColor() {
|
||||||
useTint = value;
|
return 0x619961;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
Shredder here, Ive converted the unused commented out code into their correct syntax, though if i did something incorrectly feel free to take reference from the
|
|
||||||
commented out code
|
|
||||||
*/
|
|
||||||
|
|
||||||
// static void init(int[] pixels) {
|
static int getBirchColor() {
|
||||||
// FoliageColor::pixels = pixels;
|
return 0x80a755;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// static int get(float temp, float rain) {
|
|
||||||
// rain *= temp;
|
|
||||||
// int x = (int) ((1 - temp) * 255);
|
|
||||||
// int y = (int) ((1 - rain) * 255);
|
|
||||||
// return pixels[y << 8 | x];
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
static int getDefaultColor() {
|
||||||
static void init(int* p) {
|
return 0x48b518;
|
||||||
pixels = p;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static int get(float temp, float rain);
|
|
||||||
|
|
||||||
static int getEvergreenColor() {
|
|
||||||
return 0x619961;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int getBirchColor() {
|
|
||||||
return 0x80a755;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int getDefaultColor() {
|
|
||||||
return 0xFFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// static int pixels[256*256];
|
//static int pixels[256*256];
|
||||||
static int* pixels;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*NET_MINECRAFT_WORLD_LEVEL__FoliageColor_H__*/
|
#endif /*NET_MINECRAFT_WORLD_LEVEL__FoliageColor_H__*/
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#include "GrassColor.h"
|
|
||||||
|
|
||||||
// TODO: Probably move all the stuff from the header into here so it's a bit cleaner
|
|
||||||
bool GrassColor::useTint = true;
|
|
||||||
|
|
||||||
int GrassColor::get(float temp, float rain) {
|
|
||||||
rain *= temp;
|
|
||||||
int x = (int) ((1 - temp) * 255);
|
|
||||||
int y = (int) ((1 - rain) * 255);
|
|
||||||
return pixels[y << 8 | x];
|
|
||||||
}
|
|
||||||
|
|
||||||
int* GrassColor::pixels = nullptr;
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#ifndef NET_MINECRAFT_WORLD_LEVEL__GrassColor_H__
|
|
||||||
#define NET_MINECRAFT_WORLD_LEVEL__GrassColor_H__
|
|
||||||
|
|
||||||
//package net.minecraft.world.level;
|
|
||||||
|
|
||||||
class GrassColor
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
static bool useTint;
|
|
||||||
|
|
||||||
static void setUseTint(bool value) {
|
|
||||||
useTint = value;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
Shredder here, Ive converted the unused commented out code into their correct syntax, though if i did something incorrectly feel free to take reference from the
|
|
||||||
commented out code
|
|
||||||
*/
|
|
||||||
|
|
||||||
// static void init(int[] pixels) {
|
|
||||||
// GrassColor::pixels = pixels;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// static int get(float temp, float rain) {
|
|
||||||
// rain *= temp;
|
|
||||||
// int x = (int) ((1 - temp) * 255);
|
|
||||||
// int y = (int) ((1 - rain) * 255);
|
|
||||||
// return pixels[y << 8 | x];
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
static void init(int* p) {
|
|
||||||
pixels = p;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int get(float temp, float rain);
|
|
||||||
|
|
||||||
private:
|
|
||||||
// static int pixels[256*256];
|
|
||||||
static int* pixels;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /*NET_MINECRAFT_WORLD_LEVEL__GrassColor_H__*/
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -3,9 +3,8 @@
|
|||||||
|
|
||||||
//package net.minecraft.world.level;
|
//package net.minecraft.world.level;
|
||||||
|
|
||||||
|
|
||||||
class BiomeSource;
|
|
||||||
/*
|
/*
|
||||||
|
class BiomeSource;
|
||||||
class TileEntity;
|
class TileEntity;
|
||||||
*/
|
*/
|
||||||
class Material;
|
class Material;
|
||||||
@@ -30,7 +29,7 @@ public:
|
|||||||
virtual bool isSolidRenderTile(int x, int i, int z) = 0;
|
virtual bool isSolidRenderTile(int x, int i, int z) = 0;
|
||||||
virtual bool isSolidBlockingTile(int x, int i, int z) = 0;
|
virtual bool isSolidBlockingTile(int x, int i, int z) = 0;
|
||||||
|
|
||||||
virtual BiomeSource* getBiomeSource() = 0;
|
//virtual BiomeSource* getBiomeSource() = 0;
|
||||||
virtual Biome* getBiome(int x, int z) = 0;
|
virtual Biome* getBiome(int x, int z) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#include "tile/Tile.h"
|
#include "tile/Tile.h"
|
||||||
#include "Level.h"
|
#include "Level.h"
|
||||||
|
|
||||||
|
|
||||||
Region::Region(Level* level, int x1, int y1, int z1, int x2, int y2, int z2) {
|
Region::Region(Level* level, int x1, int y1, int z1, int x2, int y2, int z2) {
|
||||||
this->level = level;
|
this->level = level;
|
||||||
|
|
||||||
@@ -136,6 +135,6 @@ Biome* Region::getBiome( int x, int z ) {
|
|||||||
return level->getBiome(x, z);
|
return level->getBiome(x, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
BiomeSource* Region::getBiomeSource() {
|
//BiomeSource getBiomeSource() {
|
||||||
return level->getBiomeSource();
|
// return level.getBiomeSource();
|
||||||
}
|
//}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
#include "LevelSource.h"
|
#include "LevelSource.h"
|
||||||
|
|
||||||
|
|
||||||
class Level;
|
class Level;
|
||||||
class Material;
|
class Material;
|
||||||
class LevelChunk;
|
class LevelChunk;
|
||||||
@@ -28,7 +27,6 @@ public:
|
|||||||
int getData(int x, int y, int z);
|
int getData(int x, int y, int z);
|
||||||
const Material* getMaterial(int x, int y, int z);
|
const Material* getMaterial(int x, int y, int z);
|
||||||
Biome* getBiome(int x, int z);
|
Biome* getBiome(int x, int z);
|
||||||
BiomeSource* getBiomeSource() override;
|
|
||||||
private:
|
private:
|
||||||
int xc1, zc1;
|
int xc1, zc1;
|
||||||
LevelChunk*** chunks;
|
LevelChunk*** chunks;
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
|
|
||||||
#include "../levelgen/feature/TreeFeature.h"
|
#include "../levelgen/feature/TreeFeature.h"
|
||||||
#include "../levelgen/feature/TallgrassFeature.h"
|
#include "../levelgen/feature/TallgrassFeature.h"
|
||||||
#include "../levelgen/feature/BasicTree.h"
|
|
||||||
|
|
||||||
#include "../../entity/EntityTypes.h"
|
#include "../../entity/EntityTypes.h"
|
||||||
#include "../../entity/MobCategory.h"
|
#include "../../entity/MobCategory.h"
|
||||||
#include "../../level/tile/TallGrass.h"
|
#include "../../level/tile/TallGrass.h"
|
||||||
|
|
||||||
#include "../../../util/Color.h"
|
|
||||||
|
|
||||||
Biome* Biome::rainForest = NULL;
|
Biome* Biome::rainForest = NULL;
|
||||||
Biome* Biome::swampland = NULL;
|
Biome* Biome::swampland = NULL;
|
||||||
Biome* Biome::seasonalForest = NULL;
|
Biome* Biome::seasonalForest = NULL;
|
||||||
@@ -143,7 +140,7 @@ void Biome::teardownBiomes() {
|
|||||||
Feature* Biome::getTreeFeature( Random* random )
|
Feature* Biome::getTreeFeature( Random* random )
|
||||||
{
|
{
|
||||||
if (random->nextInt(10) == 0) {
|
if (random->nextInt(10) == 0) {
|
||||||
return new BasicTree(false);
|
//return /*new*/ BasicTree();
|
||||||
}
|
}
|
||||||
return new TreeFeature(false);
|
return new TreeFeature(false);
|
||||||
}
|
}
|
||||||
@@ -151,9 +148,6 @@ Feature* Biome::getGrassFeature( Random* random ) {
|
|||||||
return new TallgrassFeature(Tile::tallgrass->id, TallGrass::TALL_GRASS);
|
return new TallgrassFeature(Tile::tallgrass->id, TallGrass::TALL_GRASS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Biome* Biome::getBiome( float temperature, float downfall )
|
Biome* Biome::getBiome( float temperature, float downfall )
|
||||||
{
|
{
|
||||||
int a = (int) (temperature * 63);
|
int a = (int) (temperature * 63);
|
||||||
@@ -210,11 +204,11 @@ float Biome::adjustDepth( float depth )
|
|||||||
|
|
||||||
int Biome::getSkyColor( float temp )
|
int Biome::getSkyColor( float temp )
|
||||||
{
|
{
|
||||||
temp /= 3.f;
|
// temp /= 3.f;
|
||||||
if (temp < -1) temp = -1;
|
// if (temp < -1) temp = -1;
|
||||||
if (temp > 1) temp = 1;
|
// if (temp > 1) temp = 1;
|
||||||
// return 0x80808080;This is the vanilla way, add it as OPTION_SKY or leave it like this bcus this function literally never gets used anyways if level has vanilla sky color - shredder
|
return 0x80808080;
|
||||||
return Color::getHSBColor(224 / 360.0f - temp * 0.05f, 0.50f + temp * 0.1f, 1.0f).getRGB();
|
//return Color.getHSBColor(224 / 360.0f - temp * 0.05f, 0.50f + temp * 0.1f, 1.0f).getRGB();
|
||||||
}
|
}
|
||||||
|
|
||||||
Biome::MobList& Biome::getMobs(const MobCategory& category)
|
Biome::MobList& Biome::getMobs(const MobCategory& category)
|
||||||
|
|||||||
@@ -69,11 +69,11 @@ Biome* BiomeSource::getBiome( int x, int z )
|
|||||||
return getBiomeBlock(x, z, 1, 1)[0];
|
return getBiomeBlock(x, z, 1, 1)[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
float BiomeSource::getTemperature( int x, int z )
|
//float BiomeSource::getTemperature( int x, int z )
|
||||||
{
|
//{
|
||||||
temperatures = temperatureMap->getRegion(temperatures, x, z, 1, 1, tempScale, tempScale, 0.5f);
|
// temperatures = temperatureMap->getRegion(temperatures, x, z, 1, 1, tempScale, tempScale, 0.5f);
|
||||||
return temperatures[0];
|
// return temperatures[0];
|
||||||
}
|
//}
|
||||||
|
|
||||||
Biome** BiomeSource::getBiomeBlock( int x, int z, int w, int h )
|
Biome** BiomeSource::getBiomeBlock( int x, int z, int w, int h )
|
||||||
{
|
{
|
||||||
@@ -123,7 +123,7 @@ Biome** BiomeSource::getBiomeBlock( Biome** biomes__, int x, int z, int w, int h
|
|||||||
return biomes;
|
return biomes;
|
||||||
}
|
}
|
||||||
|
|
||||||
float* BiomeSource::getTemperatureBlock( float* temperatures__, int x, int z, int w, int h )
|
float* BiomeSource::getTemperatureBlock( /*float* temperatures__, */int x, int z, int w, int h )
|
||||||
{
|
{
|
||||||
//LOGI("gTempBlock: 1\n");
|
//LOGI("gTempBlock: 1\n");
|
||||||
//const int size = w * h;
|
//const int size = w * h;
|
||||||
@@ -164,8 +164,8 @@ float* BiomeSource::getTemperatureBlock( float* temperatures__, int x, int z, in
|
|||||||
return temperatures;
|
return temperatures;
|
||||||
}
|
}
|
||||||
|
|
||||||
float* BiomeSource::getDownfallBlock( float* downfalls__, int x, int z, int w, int h )
|
//float* BiomeSource::getDownfallBlock( /*float* downfalls__,*/ int x, int z, int w, int h )
|
||||||
{
|
//{
|
||||||
// //const int size = w * h;
|
// //const int size = w * h;
|
||||||
// //if (lenDownfalls < size) {
|
// //if (lenDownfalls < size) {
|
||||||
// // delete[] downfalls;
|
// // delete[] downfalls;
|
||||||
@@ -173,6 +173,6 @@ float* BiomeSource::getDownfallBlock( float* downfalls__, int x, int z, int w, i
|
|||||||
// // lenDownfalls = size;
|
// // lenDownfalls = size;
|
||||||
// //}
|
// //}
|
||||||
//
|
//
|
||||||
downfalls = downfallMap->getRegion(downfalls, x, z, w, w, downfallScale, downfallScale, 0.5f);
|
// downfalls = downfallMap->getRegion(downfalls, x, z, w, w, downfallScale, downfallScale, 0.5f);
|
||||||
return downfalls;
|
// return downfalls;
|
||||||
}
|
//}
|
||||||
|
|||||||
@@ -31,13 +31,13 @@ public:
|
|||||||
virtual Biome* getBiome(const ChunkPos& chunk);
|
virtual Biome* getBiome(const ChunkPos& chunk);
|
||||||
virtual Biome* getBiome(int x, int z);
|
virtual Biome* getBiome(int x, int z);
|
||||||
|
|
||||||
virtual float getTemperature(int x, int z);
|
//virtual float getTemperature(int x, int z);
|
||||||
|
|
||||||
// Note: The arrays returned here are temporary in the meaning that their
|
// Note: The arrays returned here are temporary in the meaning that their
|
||||||
// contents might change in the future. If you need to SAVE the
|
// contents might change in the future. If you need to SAVE the
|
||||||
// values, do a shallow copy to an array of your own.
|
// values, do a shallow copy to an array of your own.
|
||||||
virtual float* getTemperatureBlock(float* temperatures, int x, int z, int w, int h);
|
virtual float* getTemperatureBlock(/*float* temperatures, */ int x, int z, int w, int h);
|
||||||
virtual float* getDownfallBlock(float* downfalls, int x, int z, int w, int h);
|
//virtual float* getDownfallBlock(/*float* downfalls, */int x, int z, int w, int h);
|
||||||
virtual Biome** getBiomeBlock(int x, int z, int w, int h);
|
virtual Biome** getBiomeBlock(int x, int z, int w, int h);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
#include "Biome.h"
|
#include "Biome.h"
|
||||||
#include "../levelgen/feature/TreeFeature.h"
|
#include "../levelgen/feature/TreeFeature.h"
|
||||||
#include "../levelgen/feature/BirchFeature.h"
|
#include "../levelgen/feature/BirchFeature.h"
|
||||||
#include "../levelgen/feature/BasicTree.h"
|
|
||||||
|
|
||||||
class ForestBiome: public Biome
|
class ForestBiome: public Biome
|
||||||
{
|
{
|
||||||
@@ -16,7 +15,7 @@ public:
|
|||||||
return new BirchFeature();
|
return new BirchFeature();
|
||||||
}
|
}
|
||||||
if (random->nextInt(3) == 0) {
|
if (random->nextInt(3) == 0) {
|
||||||
return new BasicTree(false);
|
//return new BasicTree();
|
||||||
}
|
}
|
||||||
return new TreeFeature(false);
|
return new TreeFeature(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,14 +6,13 @@
|
|||||||
#include "Biome.h"
|
#include "Biome.h"
|
||||||
#include "../../../util/Random.h"
|
#include "../../../util/Random.h"
|
||||||
#include "../levelgen/feature/TreeFeature.h"
|
#include "../levelgen/feature/TreeFeature.h"
|
||||||
#include "../levelgen/feature/BasicTree.h"
|
|
||||||
|
|
||||||
class RainforestBiome: public Biome
|
class RainforestBiome: public Biome
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Feature* getTreeFeature(Random* random) {
|
Feature* getTreeFeature(Random* random) {
|
||||||
if (random->nextInt(3) == 0) {
|
if (random->nextInt(3) == 0) {
|
||||||
return new BasicTree(false);
|
//return new BasicTree();
|
||||||
}
|
}
|
||||||
return new TreeFeature(false);
|
return new TreeFeature(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -262,14 +262,14 @@ void LevelChunk::recalcHeight(int x, int yStart, int z) {
|
|||||||
|
|
||||||
/*public*/
|
/*public*/
|
||||||
void LevelChunk::skyBrightnessChanged() {
|
void LevelChunk::skyBrightnessChanged() {
|
||||||
int x0 = xt;
|
// int x0 = xt;
|
||||||
int y0 = this->minHeight - 16;
|
// int y0 = this->minHeight - 16;
|
||||||
int z0 = zt;
|
// int z0 = zt;
|
||||||
int x1 = xt + 16;
|
// int x1 = xt + 16;
|
||||||
int y1 = Level::DEPTH - 1;
|
// int y1 = Level::DEPTH - 1;
|
||||||
int z1 = zt + 16;
|
// int z1 = zt + 16;
|
||||||
|
|
||||||
level->setTilesDirty(x0, y0, z0, x1, y1, z1);
|
//level->setTilesDirty(x0, y0, z0, x1, y1, z1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*public*/
|
/*public*/
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ Dimension::Dimension()
|
|||||||
ultraWarm(false),
|
ultraWarm(false),
|
||||||
hasCeiling(false),
|
hasCeiling(false),
|
||||||
biomeSource(NULL),
|
biomeSource(NULL),
|
||||||
id(0),
|
id(0)
|
||||||
fogColor(0x80daff)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,18 +93,6 @@ float* Dimension::getSunriseColor( float td, float a )
|
|||||||
|
|
||||||
Vec3 Dimension::getFogColor( float td, float a )
|
Vec3 Dimension::getFogColor( float td, float a )
|
||||||
{
|
{
|
||||||
if (FogType == 1)
|
|
||||||
{
|
|
||||||
fogColor = 0xc0d8ff; // 1 returns java beta styled fog color.
|
|
||||||
}
|
|
||||||
else if (FogType == 2)
|
|
||||||
{
|
|
||||||
fogColor = 0x406fe5; // 2 returns some type of unused fog color IDK what this one was used for possibly early pe??
|
|
||||||
}
|
|
||||||
else // otherwise as default we return the mcpe fog color
|
|
||||||
{
|
|
||||||
fogColor = 0x80daff;
|
|
||||||
}
|
|
||||||
float br = Mth::cos(td * Mth::PI * 2) * 2 + 0.5f;
|
float br = Mth::cos(td * Mth::PI * 2) * 2 + 0.5f;
|
||||||
if (br < 0.0f) br = 0.0f;
|
if (br < 0.0f) br = 0.0f;
|
||||||
if (br > 1.0f) br = 1.0f;
|
if (br > 1.0f) br = 1.0f;
|
||||||
@@ -117,8 +104,7 @@ Vec3 Dimension::getFogColor( float td, float a )
|
|||||||
g *= br * 0.94f + 0.06f;
|
g *= br * 0.94f + 0.06f;
|
||||||
b *= br * 0.91f + 0.09f;
|
b *= br * 0.91f + 0.09f;
|
||||||
return Vec3(r, g, b);
|
return Vec3(r, g, b);
|
||||||
|
//return Vec3(0.752941f, 0.847059f, 1);
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Dimension::mayRespawn()
|
bool Dimension::mayRespawn()
|
||||||
|
|||||||
@@ -49,11 +49,8 @@ public:
|
|||||||
bool hasCeiling;
|
bool hasCeiling;
|
||||||
float brightnessRamp[16];//Level::MAX_BRIGHTNESS + 1];
|
float brightnessRamp[16];//Level::MAX_BRIGHTNESS + 1];
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
// shredder added
|
|
||||||
int FogType; // lets us choose between what fog we want ig
|
|
||||||
protected:
|
protected:
|
||||||
long fogColor; //= 0x80daff;//0x406fe5;//0xc0d8ff;
|
static const long fogColor = 0x80daff;//0x406fe5;//0xc0d8ff;
|
||||||
float sunriseCol[4];
|
float sunriseCol[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
class NormalDayCycleDimension: public Dimension {
|
class NormalDayCycleDimension: public Dimension {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
float getTimeOfDay(long time, float a) {
|
float getTimeOfDay(long time, float a) {
|
||||||
int dayStep = (int) (time % Level::TICKS_PER_DAY);
|
int dayStep = (int) (time % Level::TICKS_PER_DAY);
|
||||||
float td = (dayStep + a) / Level::TICKS_PER_DAY - 0.25f;
|
float td = (dayStep + a) / Level::TICKS_PER_DAY - 0.25f;
|
||||||
@@ -21,18 +20,6 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
Vec3 getFogColor( float td, float a ) {
|
Vec3 getFogColor( float td, float a ) {
|
||||||
if (FogType == 1)
|
|
||||||
{
|
|
||||||
fogColor = 0xc0d8ff; // 1 returns java beta styled fog color.
|
|
||||||
}
|
|
||||||
else if (FogType == 2)
|
|
||||||
{
|
|
||||||
fogColor = 0x406fe5; // 2 returns some type of unused fog color IDK what this one was used for possibly early pe??
|
|
||||||
}
|
|
||||||
else // otherwise as default we return the mcpe fog color
|
|
||||||
{
|
|
||||||
fogColor = 0x80daff;
|
|
||||||
}
|
|
||||||
float br = cos(td * Mth::PI * 2) * 2 + 0.5f;
|
float br = cos(td * Mth::PI * 2) * 2 + 0.5f;
|
||||||
if (br < 0) br = 0;
|
if (br < 0) br = 0;
|
||||||
if (br > 1.f) br = 1.f;
|
if (br > 1.f) br = 1.f;
|
||||||
@@ -48,7 +35,7 @@ public:
|
|||||||
|
|
||||||
return Vec3(r, g, b);
|
return Vec3(r, g, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /*NET_MINECRAFT_WORLD_LEVEL_DIMENSION__NormalDayCycleDimension_H__*/
|
#endif /*NET_MINECRAFT_WORLD_LEVEL_DIMENSION__NormalDayCycleDimension_H__*/
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
#if 0
|
||||||
|
|
||||||
#include "CanyonFeature.h"
|
#include "CanyonFeature.h"
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@ void CanyonFeature::addTunnel( int xOffs, int zOffs, unsigned char* blocks, floa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CanyonFeature::addFeature(Level* level, int x, int z, int xOffs, int zOffs,unsigned char* blocks)
|
void CanyonFeature::addFeature( Level level, int x, int z, int xOffs, int zOffs, char* blocks )
|
||||||
{
|
{
|
||||||
if (random.nextInt(15) != 0) return;
|
if (random.nextInt(15) != 0) return;
|
||||||
|
|
||||||
@@ -151,7 +151,6 @@ void CanyonFeature::addFeature(Level* level, int x, int z, int xOffs, int zOffs,
|
|||||||
float thickness = (random.nextFloat() * 2 + random.nextFloat()) + 1;
|
float thickness = (random.nextFloat() * 2 + random.nextFloat()) + 1;
|
||||||
|
|
||||||
addTunnel(xOffs, zOffs, blocks, xCave, yCave, zCave, thickness, yRot, xRot, 0, 0, 5.0);
|
addTunnel(xOffs, zOffs, blocks, xCave, yCave, zCave, thickness, yRot, xRot, 0, 0, 5.0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* //private
|
/* //private
|
||||||
@@ -166,4 +165,4 @@ void CanyonFeature::addFeature(Level* level, int x, int z, int xOffs, int zOffs,
|
|||||||
for (int z = zOffs - r; z <= zOffs + r; z++) {
|
for (int z = zOffs - r; z <= zOffs + r; z++) {
|
||||||
random.setSeed((x * xScale + z * zScale) ^ level.seed);*/
|
random.setSeed((x * xScale + z * zScale) ^ level.seed);*/
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#ifndef NET_MINECRAFT_WORLD_LEVEL_LEVELGEN__CanyonFeature_H__
|
#ifndef NET_MINECRAFT_WORLD_LEVEL_LEVELGEN__CanyonFeature_H__
|
||||||
#define NET_MINECRAFT_WORLD_LEVEL_LEVELGEN__CanyonFeature_H__
|
#define NET_MINECRAFT_WORLD_LEVEL_LEVELGEN__CanyonFeature_H__
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
|
||||||
//package net.minecraft.world.level.levelgen;
|
//package net.minecraft.world.level.levelgen;
|
||||||
|
|
||||||
@@ -12,8 +12,8 @@ class CanyonFeature: public LargeFeature {
|
|||||||
/*protected*/
|
/*protected*/
|
||||||
void addTunnel(int xOffs, int zOffs, unsigned char* blocks, float xCave, float yCave, float zCave, float thickness, float yRot, float xRot, int step, int dist, float yScale);
|
void addTunnel(int xOffs, int zOffs, unsigned char* blocks, float xCave, float yCave, float zCave, float thickness, float yRot, float xRot, int step, int dist, float yScale);
|
||||||
/*protected*/
|
/*protected*/
|
||||||
void addFeature(Level* level, int x, int z, int xOffs, int zOffs,unsigned char* blocks);
|
void addFeature(Level level, int x, int z, int xOffs, int zOffs, char* blocks);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
#endif /*NET_MINECRAFT_WORLD_LEVEL_LEVELGEN__CanyonFeature_H__*/
|
#endif /*NET_MINECRAFT_WORLD_LEVEL_LEVELGEN__CanyonFeature_H__*/
|
||||||
|
|||||||
@@ -370,18 +370,6 @@ void RandomLevelSource::postProcess(ChunkSource* parent, int xt, int zt) {
|
|||||||
}
|
}
|
||||||
//printf("placing tree at %d, %d, %d\n", x, y, z);
|
//printf("placing tree at %d, %d, %d\n", x, y, z);
|
||||||
}
|
}
|
||||||
// for (int i = 0; i < forests; i++) {
|
|
||||||
// int x = xo + random.nextInt(16) + 8;
|
|
||||||
// int z = zo + random.nextInt(16) + 8;
|
|
||||||
//int y = level->getHeightmap(x, z);
|
|
||||||
// Feature* tree = biome->getBasicTreeFeature(&random);
|
|
||||||
//if (tree) {
|
|
||||||
// tree->init(1, 1, 1);
|
|
||||||
// tree->place(level, &random, x, y, z);
|
|
||||||
// delete tree;
|
|
||||||
//}
|
|
||||||
////printf("placing tree at %d, %d, %d\n", x, y, z);
|
|
||||||
// }
|
|
||||||
|
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
int x = xo + random.nextInt(16) + 8;
|
int x = xo + random.nextInt(16) + 8;
|
||||||
@@ -473,7 +461,7 @@ void RandomLevelSource::postProcess(ChunkSource* parent, int xt, int zt) {
|
|||||||
MobSpawner::postProcessSpawnMobs(level, biome, xo + 8, zo + 8, 16, 16, &random);
|
MobSpawner::postProcessSpawnMobs(level, biome, xo + 8, zo + 8, 16, 16, &random);
|
||||||
|
|
||||||
//LOGI("Reading temp: 1\n");
|
//LOGI("Reading temp: 1\n");
|
||||||
float* temperatures = level->getBiomeSource()->getTemperatureBlock(NULL, xo + 8, zo + 8, 16, 16);
|
float* temperatures = level->getBiomeSource()->getTemperatureBlock(/*NULL,*/ xo + 8, zo + 8, 16, 16);
|
||||||
for (int x = xo + 8; x < xo + 8 + 16; x++)
|
for (int x = xo + 8; x < xo + 8 + 16; x++)
|
||||||
for (int z = zo + 8; z < zo + 8 + 16; z++) {
|
for (int z = zo + 8; z < zo + 8 + 16; z++) {
|
||||||
int xp = x - (xo + 8);
|
int xp = x - (xo + 8);
|
||||||
|
|||||||
@@ -1,446 +0,0 @@
|
|||||||
#ifndef NET_MINECRAFT_WORLD_LEVEL_LEVELGEN_FEATURE__BasicTree_H__
|
|
||||||
#define NET_MINECRAFT_WORLD_LEVEL_LEVELGEN_FEATURE__BasicTree_H__
|
|
||||||
|
|
||||||
//package net.minecraft.world.level.levelgen.feature;
|
|
||||||
|
|
||||||
#include "Feature.h"
|
|
||||||
|
|
||||||
#include "../../../../util/Random.h"
|
|
||||||
#include "../../Level.h"
|
|
||||||
|
|
||||||
#include "../../tile/TreeTile.h"
|
|
||||||
|
|
||||||
class Level;
|
|
||||||
|
|
||||||
class BasicTree : public Feature
|
|
||||||
{
|
|
||||||
typedef Feature super;
|
|
||||||
private:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned char axisConversionArray[6];
|
|
||||||
Random *rnd;
|
|
||||||
Level *thisLevel;
|
|
||||||
int origin[3];
|
|
||||||
int height;
|
|
||||||
int trunkHeight;
|
|
||||||
double trunkHeightScale;
|
|
||||||
double branchDensity;
|
|
||||||
double branchSlope;
|
|
||||||
double widthScale;
|
|
||||||
double foliageDensity;
|
|
||||||
int trunkWidth;
|
|
||||||
int heightVariance;
|
|
||||||
int foliageHeight;
|
|
||||||
int **foliageCoords;
|
|
||||||
int foliageCoordsLength;
|
|
||||||
void prepare(){
|
|
||||||
trunkHeight = (int) (height * trunkHeightScale);
|
|
||||||
if (trunkHeight >= height) trunkHeight = height - 1;
|
|
||||||
int clustersPerY = (int) (1.382 + pow(foliageDensity * height / 13.0, 2));
|
|
||||||
if (clustersPerY < 1) clustersPerY = 1;
|
|
||||||
int **tempFoliageCoords = new int *[clustersPerY * height];
|
|
||||||
for( int i = 0; i < clustersPerY * height; i++ )
|
|
||||||
{
|
|
||||||
tempFoliageCoords[i] = new int[4];
|
|
||||||
}
|
|
||||||
int y = origin[1] + height - foliageHeight;
|
|
||||||
int clusterCount = 1;
|
|
||||||
int trunkTop = origin[1] + trunkHeight;
|
|
||||||
int relativeY = y - origin[1];
|
|
||||||
|
|
||||||
tempFoliageCoords[0][0] = origin[0];
|
|
||||||
tempFoliageCoords[0][1] = y;
|
|
||||||
tempFoliageCoords[0][2] = origin[2];
|
|
||||||
tempFoliageCoords[0][3] = trunkTop;
|
|
||||||
y--;
|
|
||||||
|
|
||||||
while (relativeY >= 0)
|
|
||||||
{
|
|
||||||
int num = 0;
|
|
||||||
|
|
||||||
float shapefac = treeShape(relativeY);
|
|
||||||
if (shapefac < 0)
|
|
||||||
{
|
|
||||||
y--;
|
|
||||||
relativeY--;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
double originOffset = 0.5;
|
|
||||||
while (num < clustersPerY)
|
|
||||||
{
|
|
||||||
double radius = widthScale * (shapefac * (rnd->nextFloat() + 0.328));
|
|
||||||
double angle = rnd->nextFloat() * 2.0 * 3.14159;
|
|
||||||
int x = Mth::floor(radius * sin(angle) + origin[0] + originOffset);
|
|
||||||
int z = Mth::floor(radius * cos(angle) + origin[2] + originOffset);
|
|
||||||
int checkStart[] = { x, y, z };
|
|
||||||
int checkEnd[] = { x, y + foliageHeight, z };
|
|
||||||
if (checkLine(checkStart, checkEnd) == -1) {
|
|
||||||
int checkBranchBase[] = { origin[0], origin[1], origin[2] };
|
|
||||||
double distance = sqrt(pow(abs(origin[0] - checkStart[0]), 2.0) + pow(abs(origin[2] - checkStart[2]), 2.0));
|
|
||||||
double branchHeight = distance * branchSlope;
|
|
||||||
if ((checkStart[1] - branchHeight) > trunkTop)
|
|
||||||
{
|
|
||||||
checkBranchBase[1] = trunkTop;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
checkBranchBase[1] = (int) (checkStart[1] - branchHeight);
|
|
||||||
}
|
|
||||||
if (checkLine(checkBranchBase, checkStart) == -1)
|
|
||||||
{
|
|
||||||
tempFoliageCoords[clusterCount][0] = x;
|
|
||||||
tempFoliageCoords[clusterCount][1] = y;
|
|
||||||
tempFoliageCoords[clusterCount][2] = z;
|
|
||||||
tempFoliageCoords[clusterCount][3] = checkBranchBase[1];
|
|
||||||
clusterCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
num++;
|
|
||||||
}
|
|
||||||
y--;
|
|
||||||
relativeY--;
|
|
||||||
}
|
|
||||||
|
|
||||||
foliageCoordsLength = clusterCount;
|
|
||||||
foliageCoords = tempFoliageCoords;
|
|
||||||
|
|
||||||
for( int i = clusterCount; i < clustersPerY * height; i++ )
|
|
||||||
{
|
|
||||||
delete [] tempFoliageCoords[i];
|
|
||||||
tempFoliageCoords[i] = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void crossection(int x, int y, int z, float radius, unsigned char direction, int material)
|
|
||||||
{
|
|
||||||
|
|
||||||
int rad = (int) (radius + 0.618);
|
|
||||||
unsigned char secidx1 = axisConversionArray[direction];
|
|
||||||
unsigned char secidx2 = axisConversionArray[direction + 3];
|
|
||||||
int center[] = { x, y, z };
|
|
||||||
int position[] = { 0, 0, 0 };
|
|
||||||
int offset1 = -rad;
|
|
||||||
int offset2 = -rad;
|
|
||||||
int thismat;
|
|
||||||
position[direction] = center[direction];
|
|
||||||
while (offset1 <= rad)
|
|
||||||
{
|
|
||||||
position[secidx1] = center[secidx1] + offset1;
|
|
||||||
offset2 = -rad;
|
|
||||||
while (offset2 <= rad)
|
|
||||||
{
|
|
||||||
double thisdistance = pow(abs(offset1) + 0.5, 2) + pow(abs(offset2) + 0.5, 2);
|
|
||||||
if (thisdistance > radius * radius)
|
|
||||||
{
|
|
||||||
offset2++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
position[secidx2] = center[secidx2] + offset2;
|
|
||||||
|
|
||||||
thismat = thisLevel->getTile(position[0], position[1], position[2]);
|
|
||||||
|
|
||||||
if (!((thismat == 0) || (thismat == Tile::leaves->id)))
|
|
||||||
{
|
|
||||||
offset2++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
placeBlock(thisLevel, position[0], position[1], position[2], material, 0);
|
|
||||||
|
|
||||||
offset2++;
|
|
||||||
}
|
|
||||||
offset1++;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
float treeShape(int y){
|
|
||||||
if (y < (((float) height) * 0.3)) return (float) -1.618;
|
|
||||||
float radius = ((float) height) / ((float) 2.0);
|
|
||||||
float adjacent = (((float) height) / ((float) 2.0)) - y;
|
|
||||||
float distance;
|
|
||||||
if (adjacent == 0) distance = radius;
|
|
||||||
else if (abs(adjacent) >= radius) distance = (float) 0.0;
|
|
||||||
else distance = (float) sqrt(pow(abs(radius), 2) - pow(abs(adjacent), 2));
|
|
||||||
distance *= (float) 0.5;
|
|
||||||
return distance;
|
|
||||||
}
|
|
||||||
float foliageShape(int y){
|
|
||||||
if ((y < 0) || (y >= foliageHeight)) return (float) -1;
|
|
||||||
else if ((y == 0) || (y == (foliageHeight - 1))) return (float) 2;
|
|
||||||
else return (float) 3;
|
|
||||||
}
|
|
||||||
void foliageCluster(int x, int y, int z){
|
|
||||||
|
|
||||||
int topy = y + foliageHeight;
|
|
||||||
int cury = topy - 1;
|
|
||||||
float radius;
|
|
||||||
while (cury >= y)
|
|
||||||
{
|
|
||||||
radius = foliageShape(cury - y);
|
|
||||||
crossection(x, cury, z, radius, (unsigned char) 1, Tile::leaves->id);
|
|
||||||
cury--;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
void limb(int *start, int *end, int material)
|
|
||||||
{
|
|
||||||
int delta[] = { 0, 0, 0 };
|
|
||||||
unsigned char idx = 0;
|
|
||||||
unsigned char primidx = 0;
|
|
||||||
while (idx < 3)
|
|
||||||
{
|
|
||||||
delta[idx] = end[idx] - start[idx];
|
|
||||||
if (abs(delta[idx]) > abs(delta[primidx]))
|
|
||||||
{
|
|
||||||
primidx = idx;
|
|
||||||
}
|
|
||||||
idx++;
|
|
||||||
}
|
|
||||||
if (delta[primidx] == 0) return;
|
|
||||||
unsigned char secidx1 = axisConversionArray[primidx];
|
|
||||||
unsigned char secidx2 = axisConversionArray[primidx + 3];
|
|
||||||
char primsign;
|
|
||||||
if (delta[primidx] > 0) primsign = 1;
|
|
||||||
else primsign = -1;
|
|
||||||
double secfac1 = ((double) delta[secidx1]) / ((double) delta[primidx]);
|
|
||||||
double secfac2 = ((double) delta[secidx2]) / ((double) delta[primidx]);
|
|
||||||
int coordinate[] = { 0, 0, 0 };
|
|
||||||
int primoffset = 0;
|
|
||||||
int endoffset = delta[primidx] + primsign;
|
|
||||||
while (primoffset != endoffset)
|
|
||||||
{
|
|
||||||
coordinate[primidx] = Mth::floor(start[primidx] + primoffset + 0.5);
|
|
||||||
coordinate[secidx1] = Mth::floor(start[secidx1] + (primoffset * secfac1) + 0.5);
|
|
||||||
coordinate[secidx2] = Mth::floor(start[secidx2] + (primoffset * secfac2) + 0.5);
|
|
||||||
|
|
||||||
int dir = 0;
|
|
||||||
int xdiff = abs(coordinate[0] - start[0]);
|
|
||||||
int zdiff = abs(coordinate[2] - start[2]);
|
|
||||||
int maxdiff = (std::max)(xdiff, zdiff);
|
|
||||||
|
|
||||||
if (maxdiff > 0)
|
|
||||||
{
|
|
||||||
if (xdiff == maxdiff)
|
|
||||||
{
|
|
||||||
dir = 0;
|
|
||||||
}
|
|
||||||
else if (zdiff == maxdiff)
|
|
||||||
{
|
|
||||||
dir = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
placeBlock(thisLevel, coordinate[0], coordinate[1], coordinate[2], material, dir);
|
|
||||||
primoffset += primsign;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void makeFoliage(){
|
|
||||||
int idx = 0;
|
|
||||||
int finish = foliageCoordsLength;
|
|
||||||
while (idx < finish)
|
|
||||||
{
|
|
||||||
int x = foliageCoords[idx][0];
|
|
||||||
int y = foliageCoords[idx][1];
|
|
||||||
int z = foliageCoords[idx][2];
|
|
||||||
foliageCluster(x, y, z);
|
|
||||||
idx++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool trimBranches(int localY){
|
|
||||||
if (localY < (height * 0.2)) return false;
|
|
||||||
else return true;
|
|
||||||
}
|
|
||||||
void makeTrunk(){
|
|
||||||
int x = origin[0];
|
|
||||||
int startY = origin[1];
|
|
||||||
int topY = origin[1] + trunkHeight;
|
|
||||||
int z = origin[2];
|
|
||||||
int startCoord[] = { x, startY, z };
|
|
||||||
int endCoord[] = { x, topY, z };
|
|
||||||
limb(startCoord, endCoord, Tile::treeTrunk->id);
|
|
||||||
if (trunkWidth == 2)
|
|
||||||
{
|
|
||||||
startCoord[0] += 1;
|
|
||||||
endCoord[0] += 1;
|
|
||||||
limb(startCoord, endCoord, Tile::treeTrunk->id);
|
|
||||||
startCoord[2] += 1;
|
|
||||||
endCoord[2] += 1;
|
|
||||||
limb(startCoord, endCoord, Tile::treeTrunk->id);
|
|
||||||
startCoord[0] += -1;
|
|
||||||
endCoord[0] += -1;
|
|
||||||
limb(startCoord, endCoord, Tile::treeTrunk->id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void makeBranches(){
|
|
||||||
int idx = 0;
|
|
||||||
int finish = foliageCoordsLength;
|
|
||||||
int baseCoord[] = { origin[0], origin[1], origin[2] };
|
|
||||||
while (idx < finish)
|
|
||||||
{
|
|
||||||
int *coordValues = foliageCoords[idx];
|
|
||||||
int endCoord[] = { coordValues[0], coordValues[1], coordValues[2] };
|
|
||||||
baseCoord[1] = coordValues[3];
|
|
||||||
int localY = baseCoord[1] - origin[1];
|
|
||||||
if (trimBranches(localY))
|
|
||||||
{
|
|
||||||
limb(baseCoord, endCoord, Tile::treeTrunk->id);
|
|
||||||
}
|
|
||||||
idx++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int checkLine(int *start, int *end){
|
|
||||||
|
|
||||||
int delta[] = { 0, 0, 0 };
|
|
||||||
unsigned char idx = 0;
|
|
||||||
unsigned char primidx = 0;
|
|
||||||
while (idx < 3)
|
|
||||||
{
|
|
||||||
delta[idx] = end[idx] - start[idx];
|
|
||||||
if (abs(delta[idx]) > abs(delta[primidx]))
|
|
||||||
{
|
|
||||||
primidx = idx;
|
|
||||||
}
|
|
||||||
idx++;
|
|
||||||
}
|
|
||||||
if (delta[primidx] == 0) return -1;
|
|
||||||
unsigned char secidx1 = axisConversionArray[primidx];
|
|
||||||
unsigned char secidx2 = axisConversionArray[primidx + 3];
|
|
||||||
char primsign;
|
|
||||||
if (delta[primidx] > 0) primsign = 1;
|
|
||||||
else primsign = -1;
|
|
||||||
double secfac1 = ((double) delta[secidx1]) / ((double) delta[primidx]);
|
|
||||||
double secfac2 = ((double) delta[secidx2]) / ((double) delta[primidx]);
|
|
||||||
int coordinate[] = { 0, 0, 0 };
|
|
||||||
int primoffset = 0;
|
|
||||||
int endoffset = delta[primidx] + primsign;
|
|
||||||
int thismat;
|
|
||||||
while (primoffset != endoffset)
|
|
||||||
{
|
|
||||||
coordinate[primidx] = start[primidx] + primoffset;
|
|
||||||
coordinate[secidx1] = Mth::floor(start[secidx1] + (primoffset * secfac1));
|
|
||||||
coordinate[secidx2] = Mth::floor(start[secidx2] + (primoffset * secfac2));
|
|
||||||
thismat = thisLevel->getTile(coordinate[0], coordinate[1], coordinate[2]);
|
|
||||||
if (!((thismat == 0) || (thismat == Tile::leaves->id)))
|
|
||||||
{
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
primoffset += primsign;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (primoffset == endoffset)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return abs(primoffset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool checkLocation(){
|
|
||||||
|
|
||||||
int startPosition[] = { origin[0], origin[1], origin[2] };
|
|
||||||
int endPosition[] = { origin[0], origin[1] + height - 1, origin[2] };
|
|
||||||
|
|
||||||
|
|
||||||
int baseMaterial = thisLevel->getTile(origin[0], origin[1] - 1, origin[2]);
|
|
||||||
if (!((baseMaterial == 2) || (baseMaterial == 3)))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
int allowedHeight = checkLine(startPosition, endPosition);
|
|
||||||
if (allowedHeight == -1)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (allowedHeight < 6)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
height = allowedHeight;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
BasicTree(bool doUpdate){
|
|
||||||
axisConversionArray[0] = 2;
|
|
||||||
axisConversionArray[1] = 0;
|
|
||||||
axisConversionArray[2] = 0;
|
|
||||||
axisConversionArray[3] = 1;
|
|
||||||
axisConversionArray[4] = 2;
|
|
||||||
axisConversionArray[5] = 1;
|
|
||||||
rnd = new Random();
|
|
||||||
origin[0] = 0;
|
|
||||||
origin[1] = 0;
|
|
||||||
origin[2] = 0;
|
|
||||||
height = 0;
|
|
||||||
trunkHeight = 0;
|
|
||||||
trunkHeightScale = 0.618;
|
|
||||||
branchDensity = 1.0;
|
|
||||||
branchSlope = 0.381;
|
|
||||||
widthScale = 1.0;
|
|
||||||
foliageDensity = 1.0;
|
|
||||||
trunkWidth = 1;
|
|
||||||
heightVariance = 12;
|
|
||||||
foliageHeight = 4;
|
|
||||||
foliageCoords = NULL;
|
|
||||||
foliageCoordsLength = 0;
|
|
||||||
}
|
|
||||||
virtual ~BasicTree(){
|
|
||||||
delete rnd;
|
|
||||||
|
|
||||||
for( int i = 0; i < foliageCoordsLength; i++ )
|
|
||||||
{
|
|
||||||
delete [] foliageCoords[i];
|
|
||||||
}
|
|
||||||
delete [] foliageCoords;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void init(double heightInit, double widthInit, double foliageDensityInit){
|
|
||||||
|
|
||||||
heightVariance = (int) (heightInit * 12);
|
|
||||||
if (heightInit > 0.5) foliageHeight = 5;
|
|
||||||
widthScale = widthInit;
|
|
||||||
foliageDensity = foliageDensityInit;
|
|
||||||
}
|
|
||||||
virtual bool place(Level *level, Random *random, int x, int y, int z){
|
|
||||||
|
|
||||||
thisLevel = level;
|
|
||||||
int seed = random->nextLong();
|
|
||||||
rnd->setSeed(seed);
|
|
||||||
origin[0] = x;
|
|
||||||
origin[1] = y;
|
|
||||||
origin[2] = z;
|
|
||||||
if (height == 0)
|
|
||||||
{
|
|
||||||
height = 5 + rnd->nextInt(heightVariance);
|
|
||||||
}
|
|
||||||
if (!(checkLocation()))
|
|
||||||
{
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
prepare();
|
|
||||||
|
|
||||||
makeFoliage();
|
|
||||||
|
|
||||||
makeTrunk();
|
|
||||||
|
|
||||||
makeBranches();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#endif /*NET_MINECRAFT_WORLD_LEVEL_LEVELGEN_FEATURE__BasicTree_H__*/
|
|
||||||
@@ -38,7 +38,7 @@ public:
|
|||||||
setFlammable(Tile::tnt->id, FLAME_MEDIUM, BURN_INSTANT);
|
setFlammable(Tile::tnt->id, FLAME_MEDIUM, BURN_INSTANT);
|
||||||
setFlammable(Tile::cloth->id, FLAME_EASY, BURN_EASY);
|
setFlammable(Tile::cloth->id, FLAME_EASY, BURN_EASY);
|
||||||
|
|
||||||
setTicking(true); //@fire
|
//setTicking(true); //@fire
|
||||||
}
|
}
|
||||||
|
|
||||||
AABB* getAABB(Level* level, int x, int y, int z) {
|
AABB* getAABB(Level* level, int x, int y, int z) {
|
||||||
@@ -70,9 +70,9 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void tick(Level* level, int x, int y, int z, Random* random) {
|
void tick(Level* level, int x, int y, int z, Random* random) {
|
||||||
|
return; //@fire
|
||||||
|
|
||||||
bool infiniBurn = level->getTile(x, y - 1, z) == Tile::netherrack->id;
|
bool infiniBurn = false;//level->getTile(x, y - 1, z) == Tile::hellRock->id;
|
||||||
|
|
||||||
int age = level->getData(x, y, z);
|
int age = level->getData(x, y, z);
|
||||||
if (age < 15) {
|
if (age < 15) {
|
||||||
@@ -148,6 +148,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void neighborChanged(Level* level, int x, int y, int z, int type) {
|
void neighborChanged(Level* level, int x, int y, int z, int type) {
|
||||||
|
return; //@fire
|
||||||
if (!level->isSolidBlockingTile(x, y - 1, z) && !isValidFireLocation(level, x, y, z)) {
|
if (!level->isSolidBlockingTile(x, y - 1, z) && !isValidFireLocation(level, x, y, z)) {
|
||||||
level->setTile(x, y, z, 0);
|
level->setTile(x, y, z, 0);
|
||||||
return;
|
return;
|
||||||
@@ -155,6 +156,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void onPlace(Level* level, int x, int y, int z) {
|
void onPlace(Level* level, int x, int y, int z) {
|
||||||
|
return; //@fire
|
||||||
if (!level->isSolidBlockingTile(x, y - 1, z) && !isValidFireLocation(level, x, y, z)) {
|
if (!level->isSolidBlockingTile(x, y - 1, z) && !isValidFireLocation(level, x, y, z)) {
|
||||||
level->setTile(x, y, z, 0);
|
level->setTile(x, y, z, 0);
|
||||||
return;
|
return;
|
||||||
@@ -167,6 +169,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ignite(Level* level, int x, int y, int z) {
|
void ignite(Level* level, int x, int y, int z) {
|
||||||
|
return; //@fire
|
||||||
|
|
||||||
bool lit = false;
|
bool lit = false;
|
||||||
if (!lit) lit = tryIgnite(level, x, y + 1, z);
|
if (!lit) lit = tryIgnite(level, x, y + 1, z);
|
||||||
@@ -181,10 +184,11 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void animateTick(Level* level, int x, int y, int z, Random* random) {
|
void animateTick(Level* level, int x, int y, int z, Random* random) {
|
||||||
|
return; //@fire
|
||||||
|
|
||||||
if (random->nextInt(24) == 0) {
|
//if (random.nextInt(24) == 0) {
|
||||||
level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "fire.fire", 1 + random->nextFloat(), random->nextFloat() * 0.7f + 0.3f);
|
// level->playSound(x + 0.5f, y + 0.5f, z + 0.5f, "fire.fire", 1 + random.nextFloat(), random.nextFloat() * 0.7f + 0.3f);
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (level->isSolidBlockingTile(x, y - 1, z) || Tile::fire->canBurn(level, x, y - 1, z)) {
|
if (level->isSolidBlockingTile(x, y - 1, z) || Tile::fire->canBurn(level, x, y - 1, z)) {
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
@@ -244,6 +248,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void checkBurn(Level* level, int x, int y, int z, int chance, Random* random) {
|
void checkBurn(Level* level, int x, int y, int z, int chance, Random* random) {
|
||||||
|
return; //@fire
|
||||||
|
|
||||||
int odds = burnOdds[level->getTile(x, y, z)];
|
int odds = burnOdds[level->getTile(x, y, z)];
|
||||||
if (random->nextInt(chance) < odds) {
|
if (random->nextInt(chance) < odds) {
|
||||||
@@ -260,6 +265,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool isValidFireLocation(Level* level, int x, int y, int z) {
|
bool isValidFireLocation(Level* level, int x, int y, int z) {
|
||||||
|
return false; //@fire
|
||||||
|
|
||||||
if (canBurn(level, x + 1, y, z)) return true;
|
if (canBurn(level, x + 1, y, z)) return true;
|
||||||
if (canBurn(level, x - 1, y, z)) return true;
|
if (canBurn(level, x - 1, y, z)) return true;
|
||||||
@@ -272,6 +278,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int getFireOdds(Level* level, int x, int y, int z) {
|
int getFireOdds(Level* level, int x, int y, int z) {
|
||||||
|
return 0; //@fire
|
||||||
|
|
||||||
int odds = 0;
|
int odds = 0;
|
||||||
if (!level->isEmptyTile(x, y, z)) return 0;
|
if (!level->isEmptyTile(x, y, z)) return 0;
|
||||||
@@ -287,6 +294,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool tryIgnite(Level* level, int x, int y, int z) {
|
bool tryIgnite(Level* level, int x, int y, int z) {
|
||||||
|
return false; //@fire
|
||||||
|
|
||||||
int t = level->getTile(x, y, z);
|
int t = level->getTile(x, y, z);
|
||||||
if (t == Tile::fire->id) return true;
|
if (t == Tile::fire->id) return true;
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
#include "GrassTile.h"
|
#include "GrassTile.h"
|
||||||
#include "../material/Material.h"
|
#include "../material/Material.h"
|
||||||
#include "../../entity/item/ItemEntity.h"
|
#include "../../entity/item/ItemEntity.h"
|
||||||
#include "../GrassColor.h"
|
|
||||||
#include "../Level.h"
|
|
||||||
#include "../LevelSource.h"
|
|
||||||
#include "../biome/BiomeSource.h"
|
|
||||||
#include "../../../client/Minecraft.h"
|
|
||||||
|
|
||||||
GrassTile::GrassTile(int id)
|
GrassTile::GrassTile(int id)
|
||||||
: super(id, Material::dirt)
|
: super(id, Material::dirt)
|
||||||
@@ -29,18 +24,11 @@ int GrassTile::getTexture( int face, int data ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int GrassTile::getColor( LevelSource* level, int x, int y, int z ) {
|
int GrassTile::getColor( LevelSource* level, int x, int y, int z ) {
|
||||||
|
//level.getBiomeSource().getBiomeBlock(x, z, 1, 1);
|
||||||
|
//float temp = level.getBiomeSource().temperatures[0];
|
||||||
|
//float rain = level.getBiomeSource().downfalls[0];
|
||||||
|
|
||||||
if(!GrassColor::useTint){
|
return 0x339933;//GrassColor.get(temp, rain);
|
||||||
return 0x339933;
|
|
||||||
}
|
|
||||||
|
|
||||||
level->getBiomeSource()->getBiomeBlock(x, z, 1, 1);
|
|
||||||
float temp = level->getBiomeSource()->temperatures[0];
|
|
||||||
float rain = level->getBiomeSource()->downfalls[0];
|
|
||||||
|
|
||||||
// return 0x339933;//GrassColor.get(temp, rain); // we need to hook this up with OPTION_FOLIAGE_TINT
|
|
||||||
|
|
||||||
return GrassColor::get(temp, rain);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GrassTile::tick( Level* level, int x, int y, int z, Random* random ) {
|
void GrassTile::tick( Level* level, int x, int y, int z, Random* random ) {
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ class GrassTile: public Tile
|
|||||||
{
|
{
|
||||||
typedef Tile super;
|
typedef Tile super;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
static const int MIN_BRIGHTNESS = 4;
|
static const int MIN_BRIGHTNESS = 4;
|
||||||
|
|
||||||
GrassTile(int id);
|
GrassTile(int id);
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
#include "../../item/Item.h"
|
#include "../../item/Item.h"
|
||||||
#include "../../item/ItemInstance.h"
|
#include "../../item/ItemInstance.h"
|
||||||
#include "../FoliageColor.h"
|
#include "../FoliageColor.h"
|
||||||
#include "../LevelSource.h"
|
|
||||||
#include "../biome/BiomeSource.h"
|
|
||||||
|
|
||||||
class Entity;
|
class Entity;
|
||||||
|
|
||||||
@@ -56,16 +54,8 @@ public:
|
|||||||
if (data == BIRCH_LEAF) {
|
if (data == BIRCH_LEAF) {
|
||||||
return FoliageColor::getBirchColor();
|
return FoliageColor::getBirchColor();
|
||||||
}
|
}
|
||||||
if (!FoliageColor::useTint){
|
|
||||||
return FoliageColor::getDefaultColor();
|
|
||||||
}
|
|
||||||
|
|
||||||
// return FoliageColor::getDefaultColor(); we need to hook this up with OPTION_FOLIAGE_TINT
|
return FoliageColor::getDefaultColor();
|
||||||
level->getBiomeSource()->getBiomeBlock(x, z, 1, 1);
|
|
||||||
float temperature = level->getBiomeSource()->temperatures[0];
|
|
||||||
float rainfall = level->getBiomeSource()->downfalls[0];
|
|
||||||
return FoliageColor::get(temperature, rainfall);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void onRemove(Level* level, int x, int y, int z) {
|
void onRemove(Level* level, int x, int y, int z) {
|
||||||
|
|||||||
@@ -6,23 +6,24 @@ NetherReactorPattern::NetherReactorPattern( ) {
|
|||||||
const int netherCoreId = Tile::netherReactor->id;
|
const int netherCoreId = Tile::netherReactor->id;
|
||||||
const unsigned int types[3][3][3] =
|
const unsigned int types[3][3][3] =
|
||||||
{
|
{
|
||||||
// Level 0
|
// Changing all of these values to be unsigned is needed to get the nether reactor pattern to compile. In the past having them be normal ints was fine but the c++ convention has changed
|
||||||
|
// Level 0
|
||||||
{
|
{
|
||||||
{goldId, stoneId, goldId},
|
{static_cast<unsigned int>(goldId), static_cast<unsigned int>(stoneId), static_cast<unsigned int>(goldId)},
|
||||||
{stoneId, stoneId, stoneId},
|
{static_cast<unsigned int>(stoneId), static_cast<unsigned int>(stoneId), static_cast<unsigned int>(stoneId)},
|
||||||
{goldId, stoneId, goldId}
|
{static_cast<unsigned int>(goldId), static_cast<unsigned int>(stoneId), static_cast<unsigned int>(goldId)}
|
||||||
},
|
},
|
||||||
// Level 1
|
// Level 1
|
||||||
{
|
{
|
||||||
{stoneId, 0, stoneId},
|
{static_cast<unsigned int>(stoneId), 0, static_cast<unsigned int>(stoneId)},
|
||||||
{0, netherCoreId, 0},
|
{0, static_cast<unsigned int>(netherCoreId), 0},
|
||||||
{stoneId, 0, stoneId}
|
{static_cast<unsigned int>(stoneId), 0, static_cast<unsigned int>(stoneId)}
|
||||||
},
|
},
|
||||||
// Level 2
|
// Level 2
|
||||||
{
|
{
|
||||||
{0, stoneId, 0},
|
{0, static_cast<unsigned int>(stoneId), 0},
|
||||||
{stoneId, stoneId, stoneId},
|
{static_cast<unsigned int>(stoneId), static_cast<unsigned int>(stoneId), static_cast<unsigned int>(stoneId)},
|
||||||
{0, stoneId, 0}
|
{0, static_cast<unsigned int>(stoneId), 0}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
for(int setLevel = 0; setLevel <= 2; ++setLevel) {
|
for(int setLevel = 0; setLevel <= 2; ++setLevel) {
|
||||||
|
|||||||
Reference in New Issue
Block a user