Compare commits
26 Commits
8615e8ae9f
...
ios-suppor
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe73853a64 | ||
| 845d721b1e | |||
| d7a02bfc90 | |||
| 13fd830361 | |||
|
|
a96b942c17 | ||
|
|
c476153231 | ||
| 412a34562f | |||
| 98dd53e2f5 | |||
| 6f0c485a9f | |||
| 7cc33b011d | |||
| aeb8e45879 | |||
| d554767309 | |||
| aec534d948 | |||
| 8867878ccf | |||
| 44ece561e8 | |||
| 22b59bd2cc | |||
| 705c4154ee | |||
| 59898ca504 | |||
| b658132dac | |||
| ab5f177208 | |||
| 72b68389b2 | |||
|
|
59ba8bfb7c | ||
|
|
ef32fcfe08 | ||
|
|
2237515793 | ||
|
|
e272991159 | ||
|
|
055f00be49 |
@@ -166,6 +166,7 @@ file(GLOB SERVER_SOURCES
|
|||||||
"src/util/Mth.cpp"
|
"src/util/Mth.cpp"
|
||||||
"src/util/PerfTimer.cpp"
|
"src/util/PerfTimer.cpp"
|
||||||
"src/util/StringUtils.cpp"
|
"src/util/StringUtils.cpp"
|
||||||
|
"src/util/Color.cpp"
|
||||||
|
|
||||||
"src/world/Direction.cpp"
|
"src/world/Direction.cpp"
|
||||||
|
|
||||||
@@ -199,6 +200,9 @@ 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"
|
||||||
@@ -258,6 +262,8 @@ 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"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
BIN
data/images/misc/shadow.png
Normal file
BIN
data/images/misc/shadow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 868 B |
BIN
data/images/misc/vignette.png
Normal file
BIN
data/images/misc/vignette.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -146,6 +146,7 @@ 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 \
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ 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 \
|
||||||
|
|||||||
@@ -1173,6 +1173,12 @@
|
|||||||
F99D344C2F7370CF00DC153E /* 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 */; };
|
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 */; };
|
F99D344F2F7372A100DC153E /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F99D344D2F7372A100DC153E /* Launch Screen.storyboard */; };
|
||||||
|
F99F0FA92F84369F00F2B29A /* GrassColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99F0FA82F84369F00F2B29A /* GrassColor.cpp */; };
|
||||||
|
F99F0FAA2F84369F00F2B29A /* GrassColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99F0FA82F84369F00F2B29A /* GrassColor.cpp */; };
|
||||||
|
F99F0FAC2F8436CE00F2B29A /* FoliageColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99F0FAB2F8436CE00F2B29A /* FoliageColor.cpp */; };
|
||||||
|
F99F0FAD2F8436CE00F2B29A /* FoliageColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99F0FAB2F8436CE00F2B29A /* FoliageColor.cpp */; };
|
||||||
|
F99F0FAF2F8436EB00F2B29A /* Color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99F0FAE2F8436EB00F2B29A /* Color.cpp */; };
|
||||||
|
F99F0FB02F8436EB00F2B29A /* Color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F99F0FAE2F8436EB00F2B29A /* Color.cpp */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
@@ -2435,8 +2441,8 @@
|
|||||||
F99D341D2F736AA100DC153E /* HttpClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HttpClient.h; path = ../../src/platform/HttpClient.h; 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>"; };
|
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>"; };
|
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; };
|
F99D34222F736AD400DC153E /* TextOption.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = TextOption.cpp; path = ../../src/client/gui/components/TextOption.cpp; sourceTree = "<unknown>"; };
|
||||||
F99D34252F736AFB00DC153E /* OptionsFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OptionsFile.h; path = ../../src/client/OptionsFile.h; sourceTree = "<group>"; sourceTree = "<group>"; };
|
F99D34252F736AFB00DC153E /* OptionsFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OptionsFile.h; path = ../../src/client/OptionsFile.h; sourceTree = "<group>"; };
|
||||||
F99D34262F736AFB00DC153E /* OptionsFile.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OptionsFile.cpp; path = ../../src/client/OptionsFile.cpp; 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>"; };
|
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>"; };
|
F99D342A2F736B6F00DC153E /* OptionsItem.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = OptionsItem.cpp; path = ../../src/client/gui/components/OptionsItem.cpp; sourceTree = "<group>"; };
|
||||||
@@ -2457,6 +2463,9 @@
|
|||||||
F99D34492F7370CF00DC153E /* Slider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Slider.h; path = ../../src/client/gui/components/Slider.h; 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>"; };
|
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>"; };
|
F99D344D2F7372A100DC153E /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
|
||||||
|
F99F0FA82F84369F00F2B29A /* GrassColor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GrassColor.cpp; sourceTree = "<group>"; };
|
||||||
|
F99F0FAB2F8436CE00F2B29A /* FoliageColor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = FoliageColor.cpp; sourceTree = "<group>"; };
|
||||||
|
F99F0FAE2F8436EB00F2B29A /* Color.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Color.cpp; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -3761,6 +3770,7 @@
|
|||||||
D5B50E6914CFF66F005F7284 /* StringUtils.cpp */,
|
D5B50E6914CFF66F005F7284 /* StringUtils.cpp */,
|
||||||
D5B50E6A14CFF66F005F7284 /* StringUtils.h */,
|
D5B50E6A14CFF66F005F7284 /* StringUtils.h */,
|
||||||
D5B50E6B14CFF66F005F7284 /* WeighedRandom.h */,
|
D5B50E6B14CFF66F005F7284 /* WeighedRandom.h */,
|
||||||
|
F99F0FAE2F8436EB00F2B29A /* Color.cpp */,
|
||||||
);
|
);
|
||||||
path = util;
|
path = util;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -4025,6 +4035,8 @@
|
|||||||
D5B50F3714CFF66F005F7284 /* TickNextTickData.h */,
|
D5B50F3714CFF66F005F7284 /* TickNextTickData.h */,
|
||||||
D5B50F3814CFF66F005F7284 /* tile */,
|
D5B50F3814CFF66F005F7284 /* tile */,
|
||||||
D5B50F6814CFF66F005F7284 /* TilePos.h */,
|
D5B50F6814CFF66F005F7284 /* TilePos.h */,
|
||||||
|
F99F0FA82F84369F00F2B29A /* GrassColor.cpp */,
|
||||||
|
F99F0FAB2F8436CE00F2B29A /* FoliageColor.cpp */,
|
||||||
);
|
);
|
||||||
path = level;
|
path = level;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -5194,6 +5206,7 @@
|
|||||||
D5B5111014CFF670005F7284 /* Mth.cpp in Sources */,
|
D5B5111014CFF670005F7284 /* Mth.cpp in Sources */,
|
||||||
D5B5111214CFF670005F7284 /* PerfRenderer.cpp in Sources */,
|
D5B5111214CFF670005F7284 /* PerfRenderer.cpp in Sources */,
|
||||||
D5B5111414CFF670005F7284 /* PerfTimer.cpp in Sources */,
|
D5B5111414CFF670005F7284 /* PerfTimer.cpp in Sources */,
|
||||||
|
F99F0FA92F84369F00F2B29A /* GrassColor.cpp in Sources */,
|
||||||
D5B5111614CFF670005F7284 /* StringUtils.cpp in Sources */,
|
D5B5111614CFF670005F7284 /* StringUtils.cpp in Sources */,
|
||||||
D5B5111814CFF670005F7284 /* Direction.cpp in Sources */,
|
D5B5111814CFF670005F7284 /* Direction.cpp in Sources */,
|
||||||
D5B5111A14CFF670005F7284 /* Animal.cpp in Sources */,
|
D5B5111A14CFF670005F7284 /* Animal.cpp in Sources */,
|
||||||
@@ -5214,12 +5227,14 @@
|
|||||||
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 */,
|
||||||
|
F99F0FB02F8436EB00F2B29A /* Color.cpp in Sources */,
|
||||||
D5B5113E14CFF670005F7284 /* Arrow.cpp in Sources */,
|
D5B5113E14CFF670005F7284 /* Arrow.cpp in Sources */,
|
||||||
D5B5114014CFF670005F7284 /* Recipes.cpp in Sources */,
|
D5B5114014CFF670005F7284 /* Recipes.cpp in Sources */,
|
||||||
D5B5114214CFF670005F7284 /* ToolRecipes.cpp in Sources */,
|
D5B5114214CFF670005F7284 /* ToolRecipes.cpp in Sources */,
|
||||||
D5B5114414CFF670005F7284 /* WeaponRecipes.cpp in Sources */,
|
D5B5114414CFF670005F7284 /* WeaponRecipes.cpp in Sources */,
|
||||||
D5B5114614CFF670005F7284 /* HatchetItem.cpp in Sources */,
|
D5B5114614CFF670005F7284 /* HatchetItem.cpp in Sources */,
|
||||||
D5B5114814CFF670005F7284 /* Item.cpp in Sources */,
|
D5B5114814CFF670005F7284 /* Item.cpp in Sources */,
|
||||||
|
F99F0FAC2F8436CE00F2B29A /* FoliageColor.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 */,
|
F99D344B2F7370CF00DC153E /* Slider.cpp in Sources */,
|
||||||
@@ -5528,6 +5543,7 @@
|
|||||||
D5B5102F14CFF670005F7284 /* main.cpp in Sources */,
|
D5B5102F14CFF670005F7284 /* main.cpp in Sources */,
|
||||||
D5B5103514CFF670005F7284 /* Tag.cpp in Sources */,
|
D5B5103514CFF670005F7284 /* Tag.cpp in Sources */,
|
||||||
D5B5103714CFF670005F7284 /* ClientSideNetworkHandler.cpp in Sources */,
|
D5B5103714CFF670005F7284 /* ClientSideNetworkHandler.cpp in Sources */,
|
||||||
|
F99F0FAF2F8436EB00F2B29A /* Color.cpp in Sources */,
|
||||||
D5B5103914CFF670005F7284 /* NetEventCallback.cpp in Sources */,
|
D5B5103914CFF670005F7284 /* NetEventCallback.cpp in Sources */,
|
||||||
D5B5103B14CFF670005F7284 /* Packet.cpp in Sources */,
|
D5B5103B14CFF670005F7284 /* Packet.cpp in Sources */,
|
||||||
D5B5103D14CFF670005F7284 /* RakNetInstance.cpp in Sources */,
|
D5B5103D14CFF670005F7284 /* RakNetInstance.cpp in Sources */,
|
||||||
@@ -5548,6 +5564,7 @@
|
|||||||
D5B5111514CFF670005F7284 /* StringUtils.cpp in Sources */,
|
D5B5111514CFF670005F7284 /* StringUtils.cpp in Sources */,
|
||||||
D5B5111714CFF670005F7284 /* Direction.cpp in Sources */,
|
D5B5111714CFF670005F7284 /* Direction.cpp in Sources */,
|
||||||
D5B5111914CFF670005F7284 /* Animal.cpp in Sources */,
|
D5B5111914CFF670005F7284 /* Animal.cpp in Sources */,
|
||||||
|
F99F0FAD2F8436CE00F2B29A /* FoliageColor.cpp in Sources */,
|
||||||
D5B5111B14CFF670005F7284 /* Chicken.cpp in Sources */,
|
D5B5111B14CFF670005F7284 /* Chicken.cpp in Sources */,
|
||||||
D5B5111D14CFF670005F7284 /* Cow.cpp in Sources */,
|
D5B5111D14CFF670005F7284 /* Cow.cpp in Sources */,
|
||||||
D5B5111F14CFF670005F7284 /* Pig.cpp in Sources */,
|
D5B5111F14CFF670005F7284 /* Pig.cpp in Sources */,
|
||||||
@@ -5598,6 +5615,7 @@
|
|||||||
D5B5117714CFF670005F7284 /* ExternalFileLevelStorageSource.cpp in Sources */,
|
D5B5117714CFF670005F7284 /* ExternalFileLevelStorageSource.cpp in Sources */,
|
||||||
D5B5117914CFF670005F7284 /* RegionFile.cpp in Sources */,
|
D5B5117914CFF670005F7284 /* RegionFile.cpp in Sources */,
|
||||||
D5B5117B14CFF670005F7284 /* TickNextTickData.cpp in Sources */,
|
D5B5117B14CFF670005F7284 /* TickNextTickData.cpp in Sources */,
|
||||||
|
F99F0FAA2F84369F00F2B29A /* GrassColor.cpp in Sources */,
|
||||||
D5B5117D14CFF670005F7284 /* DoorTile.cpp in Sources */,
|
D5B5117D14CFF670005F7284 /* DoorTile.cpp in Sources */,
|
||||||
D5B5118114CFF670005F7284 /* StoneSlabTile.cpp in Sources */,
|
D5B5118114CFF670005F7284 /* StoneSlabTile.cpp in Sources */,
|
||||||
D5B5118314CFF670005F7284 /* Tile.cpp in Sources */,
|
D5B5118314CFF670005F7284 /* Tile.cpp in Sources */,
|
||||||
@@ -5853,7 +5871,7 @@
|
|||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
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";
|
||||||
@@ -5884,7 +5902,7 @@
|
|||||||
);
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -5978,7 +5996,7 @@
|
|||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
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";
|
||||||
@@ -6010,7 +6028,7 @@
|
|||||||
);
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"-DNS_BLOCK_ASSERTIONS=1",
|
"-DNS_BLOCK_ASSERTIONS=1",
|
||||||
@@ -6076,7 +6094,7 @@
|
|||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
RUN_CLANG_STATIC_ANALYZER = NO;
|
RUN_CLANG_STATIC_ANALYZER = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
@@ -6104,7 +6122,7 @@
|
|||||||
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
HEADER_SEARCH_PATHS = "$(SRCROOT)/../../src";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
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;
|
||||||
@@ -6137,7 +6155,7 @@
|
|||||||
);
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -6172,7 +6190,7 @@
|
|||||||
);
|
);
|
||||||
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
INFOPLIST_FILE = "minecraftpe/minecraftpe-Info.plist";
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.games";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14;
|
IPHONEOS_DEPLOYMENT_TARGET = 12;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mojang.mcpe-arm64";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
|||||||
@@ -1106,9 +1106,9 @@ void Minecraft::releaseMouse()
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Minecraft::useTouchscreen() {
|
bool Minecraft::useTouchscreen() {
|
||||||
#if TARGET_OS_IPHONE
|
#if defined(TARGET_OS_IPHONE)
|
||||||
return true;
|
return true;
|
||||||
#elif RPI
|
#elif defined(RPI)
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
return options.getBooleanValue(OPTIONS_USE_TOUCHSCREEN) && !_supportsNonTouchscreen;
|
return options.getBooleanValue(OPTIONS_USE_TOUCHSCREEN) && !_supportsNonTouchscreen;
|
||||||
@@ -1140,13 +1140,13 @@ void Minecraft::init()
|
|||||||
|
|
||||||
|
|
||||||
// my code
|
// my code
|
||||||
TextureId foliageId = (textures->loadTexture("environment/foliagecolor.png")); // loading the uh png for foliage color
|
TextureId foliageId = (textures->loadTexture("misc/foliagecolor.png")); // loading the uh png for foliage color
|
||||||
int* foliagePixels = textures->loadTexturePixels(foliageId, "environment/foliagecolor.png");
|
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
|
// now i can finally initialize foliage color, probably not the best way to handle this but i cant be arsed rn
|
||||||
FoliageColor::init(foliagePixels);
|
FoliageColor::init(foliagePixels);
|
||||||
|
|
||||||
TextureId grassId = (textures->loadTexture("environment/grasscolor.png")); // loading the uh png for foliage color
|
TextureId grassId = (textures->loadTexture("misc/foliagecolor.png")); // loading the uh png for foliage color
|
||||||
int* grassPixels = textures->loadTexturePixels(grassId, "environment/grasscolor.png");
|
int* grassPixels = textures->loadTexturePixels(grassId, "misc/foliagecolor.png");
|
||||||
GrassColor::init(grassPixels);
|
GrassColor::init(grassPixels);
|
||||||
|
|
||||||
bool tint = options.getBooleanValue(OPTIONS_FOLIAGE_TINT); // finally, toggleable foliage color
|
bool tint = options.getBooleanValue(OPTIONS_FOLIAGE_TINT); // finally, toggleable foliage color
|
||||||
@@ -1403,6 +1403,12 @@ 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;
|
||||||
|
|||||||
@@ -62,6 +62,10 @@ OptionBool serverVisible("servervisible", true);
|
|||||||
|
|
||||||
OptionBool foliageTint("foliagetint", false);
|
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);
|
||||||
@@ -166,6 +170,11 @@ void Options::initTable() {
|
|||||||
m_options[OPTIONS_RPI_CURSOR] = &rpiCursor;
|
m_options[OPTIONS_RPI_CURSOR] = &rpiCursor;
|
||||||
m_options[OPTIONS_FOLIAGE_TINT] = &foliageTint;
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,6 +85,8 @@ enum OptionId {
|
|||||||
|
|
||||||
OPTIONS_RPI_CURSOR,
|
OPTIONS_RPI_CURSOR,
|
||||||
OPTIONS_FOLIAGE_TINT,
|
OPTIONS_FOLIAGE_TINT,
|
||||||
|
OPTIONS_FOG_TYPE,
|
||||||
|
OPTIONS_JAVA_HUD,
|
||||||
// Should be last!
|
// Should be last!
|
||||||
OPTIONS_COUNT
|
OPTIONS_COUNT
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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),
|
||||||
@@ -103,6 +103,12 @@ 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);
|
||||||
@@ -344,6 +350,8 @@ 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;
|
||||||
@@ -354,7 +362,10 @@ 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();
|
||||||
@@ -1105,22 +1116,41 @@ 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");
|
minecraft->textures->loadAndBindTexture("font/default8.png");
|
||||||
t.endOverrideAndDraw();
|
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();
|
glPopMatrix2();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -229,7 +229,10 @@ void OptionsScreen::generateOptionScreens() {
|
|||||||
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_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) {
|
||||||
|
|||||||
@@ -34,7 +34,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,6 +49,7 @@ 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),
|
||||||
@@ -161,6 +162,8 @@ 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);
|
bool tint = mc->options.getBooleanValue(OPTIONS_FOLIAGE_TINT);
|
||||||
FoliageColor::setUseTint(tint);
|
FoliageColor::setUseTint(tint);
|
||||||
GrassColor::setUseTint(tint);
|
GrassColor::setUseTint(tint);
|
||||||
@@ -171,9 +174,9 @@ void LevelRenderer::allChanged()
|
|||||||
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;
|
||||||
/*
|
/*
|
||||||
@@ -312,6 +315,17 @@ 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;
|
||||||
@@ -580,11 +594,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();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1139,53 +1153,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");
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -113,6 +113,9 @@ 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;
|
||||||
|
|
||||||
|
|||||||
@@ -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));
|
assign( ER_HUMANOID_RENDERER, new HumanoidMobRenderer(new HumanoidModel(), 0.5));
|
||||||
assign( ER_PIG_RENDERER, new PigRenderer(new PigModel(), NULL/*new PigModel(0.5f)*/, 0));
|
assign( ER_PIG_RENDERER, new PigRenderer(new PigModel(0.5), NULL/*new PigModel(0.5f)*/, 0.7));
|
||||||
assign( ER_COW_RENDERER, new MobRenderer(new CowModel(), 0));
|
assign( ER_COW_RENDERER, new MobRenderer(new CowModel(), 0.7));
|
||||||
assign( ER_CHICKEN_RENDERER, new ChickenRenderer( new ChickenModel(), 0));
|
assign( ER_CHICKEN_RENDERER, new ChickenRenderer( new ChickenModel(), 0.3));
|
||||||
assign( ER_SHEEP_RENDERER, new SheepRenderer(new SheepModel(), new SheepFurModel(), 0));
|
assign( ER_SHEEP_RENDERER, new SheepRenderer(new SheepModel(), new SheepFurModel(), 0.7));
|
||||||
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));
|
assign( ER_PLAYER_RENDERER, new PlayerRenderer(new HumanoidModel(0, 0, 64, 64), 0.5));
|
||||||
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,11 +5,17 @@
|
|||||||
#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)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@@ -36,37 +42,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);
|
||||||
@@ -116,134 +122,139 @@ Font* EntityRenderer::getFont() {
|
|||||||
return entityRenderDispatcher->getFont();
|
return entityRenderDispatcher->getFont();
|
||||||
}
|
}
|
||||||
|
|
||||||
//void postRender(Entity entity, float x, float y, float z, float rot, float a) {
|
void EntityRenderer::postRender(Entity* entity, float x, float y, float z, float rot, float a) {
|
||||||
// if (entityRenderDispatcher.options.fancyGraphics && shadowRadius > 0) {
|
if (/*entityRenderDispatcher.options.fancyGraphics &&*/entityRenderDispatcher->minecraft->options.getBooleanValue(OPTIONS_FANCY_GRAPHICS) && 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) {
|
||||||
|
|
||||||
//void renderFlame(Entity e, float x, float y, float z, float a) {
|
int tex = ((Tile*)Tile::fire)->tex;
|
||||||
// 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.end();
|
t.draw();
|
||||||
// glPopMatrix2();
|
glPopMatrix2();
|
||||||
// glEnable2(GL_LIGHTING);
|
// glEnable2(GL_LIGHTING);
|
||||||
//}
|
}
|
||||||
|
|
||||||
//void renderShadow(Entity e, float x, float y, float z, float pow, float a) {
|
void EntityRenderer::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%/misc/shadow.png"));
|
//textures->bind(textures->loadTexture("%clamp%/environment/shadow.png"));
|
||||||
|
Textures* textures = entityRenderDispatcher->textures;
|
||||||
|
textures->bind(textures->loadTexture("/misc/shadow.png"));
|
||||||
|
|
||||||
// Level level = getLevel();
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||||
|
|
||||||
// glDepthMask(false);
|
Level* level = getLevel();
|
||||||
// float r = shadowRadius;
|
|
||||||
|
|
||||||
// float ex = e.xOld + (e.x - e.xOld) * a;
|
glDepthMask(false);
|
||||||
// float ey = e.yOld + (e.y - e.yOld) * a + e.getShadowHeightOffs();
|
float r = shadowRadius;
|
||||||
// float ez = e.zOld + (e.z - e.zOld) * a;
|
|
||||||
|
|
||||||
// int x0 = Mth.floor(ex - r);
|
float ex = e->xOld + (e->x - e->xOld) * a;
|
||||||
// int x1 = Mth.floor(ex + r);
|
float ey = e->yOld + (e->y - e->yOld) * a + e->getShadowHeightOffs();
|
||||||
// int y0 = Mth.floor(ey - r);
|
float ez = e->zOld + (e->z - e->zOld) * a;
|
||||||
// int y1 = Mth.floor(ey);
|
|
||||||
// int z0 = Mth.floor(ez - r);
|
|
||||||
// int z1 = Mth.floor(ez + r);
|
|
||||||
|
|
||||||
// float xo = x - ex;
|
int x0 = Mth::floor(ex - r);
|
||||||
// float yo = y - ey;
|
int x1 = Mth::floor(ex + r);
|
||||||
// float zo = z - ez;
|
int y0 = Mth::floor(ey - r);
|
||||||
|
int y1 = Mth::floor(ey);
|
||||||
|
int z0 = Mth::floor(ez - r);
|
||||||
|
int z1 = Mth::floor(ez + r);
|
||||||
|
|
||||||
// Tesselator tt = Tesselator.instance;
|
float xo = x - ex;
|
||||||
// tt.begin();
|
float yo = y - ey;
|
||||||
// for (int xt = x0; xt <= x1; xt++)
|
float zo = z - ez;
|
||||||
// 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();
|
|
||||||
|
|
||||||
// glColor4f2(1, 1, 1, 1);
|
Tesselator& tt = Tesselator::instance;
|
||||||
// glDisable2(GL_BLEND);
|
tt.begin();
|
||||||
// glDepthMask(true);
|
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.draw();
|
||||||
|
|
||||||
//Level* getLevel() {
|
glColor4f2(1, 1, 1, 1);
|
||||||
// return entityRenderDispatcher.level;
|
glDisable2(GL_BLEND);
|
||||||
//}
|
glDepthMask(true);
|
||||||
|
}
|
||||||
|
|
||||||
//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) {
|
Level* EntityRenderer::getLevel() {
|
||||||
// Tesselator t = Tesselator.instance;
|
return entityRenderDispatcher->level;
|
||||||
// if (!tt.isCubeShaped()) return;
|
}
|
||||||
|
|
||||||
// float a = ((pow - (y - (yt + yo)) / 2) * 0.5f) * getLevel().getBrightness(xt, yt, zt);
|
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) {
|
||||||
// if (a < 0) return;
|
Tesselator& t = Tesselator::instance;
|
||||||
// if (a > 1) a = 1;
|
if (!tt->isCubeShaped()) return;
|
||||||
// t.color(1, 1, 1, (float) a);
|
|
||||||
// // glColor4f2(1, 1, 1, (float) a);
|
|
||||||
|
|
||||||
// float x0 = xt + tt.xx0 + xo;
|
float a = ((pow - (y - (yt + yo)) / 2) * 0.5f) * getLevel()->getBrightness(xt, yt, zt);
|
||||||
// float x1 = xt + tt.xx1 + xo;
|
if (a < 0) return;
|
||||||
// float y0 = yt + tt.yy0 + yo + 1.0 / 64.0f;
|
if (a > 1) a = 1;
|
||||||
// float z0 = zt + tt.zz0 + zo;
|
// t.color(1, 1, 1, (float) a);
|
||||||
// float z1 = zt + tt.zz1 + zo;
|
glColor4f2(1, 1, 1, (float) a);
|
||||||
|
|
||||||
// float u0 = (float) ((x - (x0)) / 2 / r + 0.5f);
|
float x0 = xt + tt->xx0 + xo;
|
||||||
// float u1 = (float) ((x - (x1)) / 2 / r + 0.5f);
|
float x1 = xt + tt->xx1 + xo;
|
||||||
// float v0 = (float) ((z - (z0)) / 2 / r + 0.5f);
|
float y0 = yt + tt->yy0 + yo + 1.0 / 64.0f;
|
||||||
// float v1 = (float) ((z - (z1)) / 2 / r + 0.5f);
|
float z0 = zt + tt->zz0 + zo;
|
||||||
|
float z1 = zt + tt->zz1 + zo;
|
||||||
|
|
||||||
// t.vertexUV(x0, y0, z0, u0, v0);
|
float u0 = (float) ((x - (x0)) / 2 / r + 0.5f);
|
||||||
// t.vertexUV(x0, y0, z1, u0, v1);
|
float u1 = (float) ((x - (x1)) / 2 / r + 0.5f);
|
||||||
// t.vertexUV(x1, y0, z1, u1, v1);
|
float v0 = (float) ((z - (z0)) / 2 / r + 0.5f);
|
||||||
// t.vertexUV(x1, y0, z0, u1, v0);
|
float v1 = (float) ((z - (z1)) / 2 / r + 0.5f);
|
||||||
//}
|
|
||||||
|
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,6 +12,8 @@ class EntityRenderDispatcher;
|
|||||||
class Entity;
|
class Entity;
|
||||||
class AABB;
|
class AABB;
|
||||||
class Font;
|
class Font;
|
||||||
|
class Tile;
|
||||||
|
class Level;
|
||||||
|
|
||||||
class EntityRenderer
|
class EntityRenderer
|
||||||
{
|
{
|
||||||
@@ -24,6 +26,11 @@ 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,7 +226,42 @@ 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);
|
||||||
//void renderGuiItemDecorations(Font* font, Textures* textures, ItemInstance* item, int x, int y);
|
static 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
98
src/util/Color.cpp
Normal file
98
src/util/Color.cpp
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
#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;
|
||||||
|
}
|
||||||
15
src/util/Color.h
Normal file
15
src/util/Color.h
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#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,6 +245,7 @@ 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
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
#include "../../network/packet/ExplodePacket.h"
|
#include "../../network/packet/ExplodePacket.h"
|
||||||
|
|
||||||
Level::Level(LevelStorage* levelStorage, const std::string& levelName, const LevelSettings& settings, int generatorVersion, Dimension* fixedDimension /* = NULL */)
|
Level::Level(LevelStorage* levelStorage, const std::string& levelName, const LevelSettings& settings, int generatorVersion, Dimension* fixedDimension /* = NULL */)
|
||||||
: levelStorage(levelStorage),
|
: levelStorage(levelStorage),
|
||||||
isClientSide(false),
|
isClientSide(false),
|
||||||
isFindingSpawn(false),
|
isFindingSpawn(false),
|
||||||
noNeighborUpdate(false),
|
noNeighborUpdate(false),
|
||||||
@@ -1176,10 +1176,20 @@ Vec3 Level::getSkyColor(Entity* source, float a) {
|
|||||||
if (br < 0.0f) br = 0.0f;
|
if (br < 0.0f) br = 0.0f;
|
||||||
if (br > 0.75f) br = 0.75f; //@note; was 1.0f
|
if (br > 0.75f) br = 0.75f; //@note; was 1.0f
|
||||||
|
|
||||||
// int xx = Mth::floor(source->x);
|
int xx = Mth::floor(source->x);
|
||||||
// int zz = Mth::floor(source->z);
|
int zz = Mth::floor(source->z);
|
||||||
// float temp = 0.5;//(float) getBiomeSource().getTemperature(xx, zz);
|
// float temp = 0.5;//(float) getBiomeSource().getTemperature(xx, zz); // unused in normal pe too, just hardcoded temp values for some reason.
|
||||||
int skyColor = 0x3070ff;//getBiomeSource().getBiome(xx, zz).getSkyColor(temp);
|
float temp = (float) getBiomeSource()->getTemperature(xx, zz);
|
||||||
|
int skyColor;
|
||||||
|
if (dimension->FogType == 1){ // 1 is java styled fog which should use temperatures!
|
||||||
|
skyColor = getBiomeSource()->getBiome(xx, zz)->getSkyColor(temp);
|
||||||
|
}
|
||||||
|
else { // otherwise default to the normal pocket edition skycolor
|
||||||
|
|
||||||
|
skyColor = 0x3070ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
// int skyColor = 0x3070ff;//getBiomeSource().getBiome(xx, zz).getSkyColor(temp); // This is the vanilla way, add it as OPTION_SKY - shredder
|
||||||
|
|
||||||
float r = ((skyColor >> 16) & 0xff) / 255.0f;
|
float r = ((skyColor >> 16) & 0xff) / 255.0f;
|
||||||
float g = ((skyColor >> 8) & 0xff) / 255.0f;
|
float g = ((skyColor >> 8) & 0xff) / 255.0f;
|
||||||
@@ -1943,10 +1953,10 @@ const EntityList& Level::getAllEntities() {
|
|||||||
//
|
//
|
||||||
/*
|
/*
|
||||||
void Level::addEntities(const EntityList& list) {
|
void Level::addEntities(const EntityList& list) {
|
||||||
entities.insert(entities.end(), list.begin(), list.end());
|
entities.insert(entities.end(), list.begin(), list.end());
|
||||||
for (int j = 0; j < (int)list.size(); j++) {
|
for (int j = 0; j < (int)list.size(); j++) {
|
||||||
entityAdded(list[j]);
|
entityAdded(list[j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -2042,18 +2052,18 @@ void Level::setSpawnPos(Pos spawnPos) {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
void Level::ensureAdded(Entity* entity) {
|
void Level::ensureAdded(Entity* entity) {
|
||||||
int xc = Mth::floor(entity->x / 16);
|
int xc = Mth::floor(entity->x / 16);
|
||||||
int zc = Mth::floor(entity->z / 16);
|
int zc = Mth::floor(entity->z / 16);
|
||||||
int r = 2;
|
int r = 2;
|
||||||
for (int x = xc - r; x <= xc + r; x++) {
|
for (int x = xc - r; x <= xc + r; x++) {
|
||||||
for (int z = zc - r; z <= zc + r; z++) {
|
for (int z = zc - r; z <= zc + r; z++) {
|
||||||
this->getChunk(x, z);
|
this->getChunk(x, z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (std::find(entities.begin(), entities.end(), entity) == entities.end()) {
|
if (std::find(entities.begin(), entities.end(), entity) == entities.end()) {
|
||||||
entities.push_back(entity);
|
entities.push_back(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -2070,35 +2080,35 @@ void Level::broadcastEntityEvent(Entity* e, char eventId) {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
void Level::removeAllPendingEntityRemovals() {
|
void Level::removeAllPendingEntityRemovals() {
|
||||||
//Util::removeAll(entities, _entitiesToRemove);
|
//Util::removeAll(entities, _entitiesToRemove);
|
||||||
// //entities.removeAll(entitiesToRemove);
|
// //entities.removeAll(entitiesToRemove);
|
||||||
// for (int j = 0; j < (int)_entitiesToRemove.size(); j++) {
|
// for (int j = 0; j < (int)_entitiesToRemove.size(); j++) {
|
||||||
// Entity* e = _entitiesToRemove[j];
|
// Entity* e = _entitiesToRemove[j];
|
||||||
// int xc = e->xChunk;
|
// int xc = e->xChunk;
|
||||||
// int zc = e->zChunk;
|
// int zc = e->zChunk;
|
||||||
// if (e->inChunk && hasChunk(xc, zc)) {
|
// if (e->inChunk && hasChunk(xc, zc)) {
|
||||||
// getChunk(xc, zc)->removeEntity(e);
|
// getChunk(xc, zc)->removeEntity(e);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// for (unsigned int j = 0; j < _entitiesToRemove.size(); j++) {
|
// for (unsigned int j = 0; j < _entitiesToRemove.size(); j++) {
|
||||||
// entityRemoved(_entitiesToRemove[j]);
|
// entityRemoved(_entitiesToRemove[j]);
|
||||||
// }
|
// }
|
||||||
// _entitiesToRemove.clear();
|
// _entitiesToRemove.clear();
|
||||||
|
|
||||||
for (unsigned int i = 0; i < entities.size(); i++) {
|
for (unsigned int i = 0; i < entities.size(); i++) {
|
||||||
Entity* e = entities[i];
|
Entity* e = entities[i];
|
||||||
|
|
||||||
if (e->removed) {
|
if (e->removed) {
|
||||||
int xc = e->xChunk;
|
int xc = e->xChunk;
|
||||||
int zc = e->zChunk;
|
int zc = e->zChunk;
|
||||||
if (e->inChunk && hasChunk(xc, zc)) {
|
if (e->inChunk && hasChunk(xc, zc)) {
|
||||||
getChunk(xc, zc)->removeEntity(e);
|
getChunk(xc, zc)->removeEntity(e);
|
||||||
}
|
}
|
||||||
entities.erase( entities.begin() + (i--) );
|
entities.erase( entities.begin() + (i--) );
|
||||||
entityRemoved(e);
|
entityRemoved(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -2231,7 +2241,7 @@ bool Level::inRange( int x, int y, int z ) {
|
|||||||
// AdventureSettings
|
// AdventureSettings
|
||||||
//
|
//
|
||||||
AdventureSettings::AdventureSettings()
|
AdventureSettings::AdventureSettings()
|
||||||
: doTickTime(true),
|
: doTickTime(true),
|
||||||
noPvP(false),
|
noPvP(false),
|
||||||
noPvM(false),
|
noPvM(false),
|
||||||
noMvP(false),
|
noMvP(false),
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
#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;
|
||||||
@@ -208,11 +210,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;
|
// 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 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)
|
||||||
|
|||||||
@@ -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,7 +15,8 @@ Dimension::Dimension()
|
|||||||
ultraWarm(false),
|
ultraWarm(false),
|
||||||
hasCeiling(false),
|
hasCeiling(false),
|
||||||
biomeSource(NULL),
|
biomeSource(NULL),
|
||||||
id(0)
|
id(0),
|
||||||
|
fogColor(0x80daff)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,6 +94,18 @@ 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;
|
||||||
@@ -104,7 +117,8 @@ 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,8 +49,11 @@ 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:
|
||||||
static const long fogColor = 0x80daff;//0x406fe5;//0xc0d8ff;
|
long fogColor; //= 0x80daff;//0x406fe5;//0xc0d8ff;
|
||||||
float sunriseCol[4];
|
float sunriseCol[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
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;
|
||||||
@@ -20,6 +21,18 @@ 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;
|
||||||
|
|||||||
Reference in New Issue
Block a user