diff --git a/patches/server/0007-Integrate-ridables.patch b/patches/server/0007-Integrate-ridables.patch index 73e1d4c2b..1362d57d8 100644 --- a/patches/server/0007-Integrate-ridables.patch +++ b/patches/server/0007-Integrate-ridables.patch @@ -1,9 +1,10 @@ -From 6dbb74b0dff7c969469327c00739a0f8c00b5da6 Mon Sep 17 00:00:00 2001 +From 91bed797863a9878e35581a4bae3099d44beac3f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables --- + .../java/net/minecraft/server/BiomeBase.java | 26 ++++++- .../net/minecraft/server/ControllerJump.java | 1 + .../server/ControllerLookDolphin.java | 4 +- .../java/net/minecraft/server/Entity.java | 13 ++++ @@ -15,6 +16,7 @@ Subject: [PATCH] Integrate ridables .../net/minecraft/server/EntityEnderman.java | 15 ++++ .../net/minecraft/server/EntityEndermite.java | 15 ++++ .../java/net/minecraft/server/EntityFish.java | 28 ++++++- + .../minecraft/server/EntityGiantZombie.java | 34 +++++++- .../net/minecraft/server/EntityGuardian.java | 36 ++++++++- .../net/minecraft/server/EntityHorse.java | 10 ++- .../minecraft/server/EntityHorseAbstract.java | 4 +- @@ -46,11 +48,55 @@ Subject: [PATCH] Integrate ridables .../purpur/controller/ControllerMoveWASD.java | 77 +++++++++++++++++++ .../controller/ControllerMoveWASDWater.java | 42 ++++++++++ .../craftbukkit/entity/CraftLivingEntity.java | 12 +++ - 42 files changed, 791 insertions(+), 40 deletions(-) + 44 files changed, 849 insertions(+), 42 deletions(-) create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java +diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java +index 3496d423..e59ee303 100644 +--- a/src/main/java/net/minecraft/server/BiomeBase.java ++++ b/src/main/java/net/minecraft/server/BiomeBase.java +@@ -196,6 +196,7 @@ public abstract class BiomeBase { + return this.aR != null; + } + ++ protected void addMobSpawn(EnumCreatureType creaturetype, BiomeBase.BiomeMeta biomemeta) { a(creaturetype, biomemeta); } // Purpur - OBFHELPER + protected void a(EnumCreatureType enumcreaturetype, BiomeBase.BiomeMeta biomebase_biomemeta) { + ((List) this.aZ.get(enumcreaturetype)).add(biomebase_biomemeta); + } +@@ -463,7 +464,30 @@ public abstract class BiomeBase { + a(166, "modified_wooded_badlands_plateau", new BiomeMesaPlateauMutated()); + a(167, "modified_badlands_plateau", new BiomeMesaPlateauClearMutated()); + Collections.addAll(BiomeBase.aG, new BiomeBase[] { Biomes.OCEAN, Biomes.PLAINS, Biomes.DESERT, Biomes.MOUNTAINS, Biomes.FOREST, Biomes.TAIGA, Biomes.SWAMP, Biomes.RIVER, Biomes.FROZEN_RIVER, Biomes.SNOWY_TUNDRA, Biomes.SNOWY_MOUNTAINS, Biomes.MUSHROOM_FIELDS, Biomes.MUSHROOM_FIELD_SHORE, Biomes.BEACH, Biomes.DESERT_HILLS, Biomes.WOODED_HILLS, Biomes.TAIGA_HILLS, Biomes.JUNGLE, Biomes.JUNGLE_HILLS, Biomes.JUNGLE_EDGE, Biomes.DEEP_OCEAN, Biomes.STONE_SHORE, Biomes.SNOWY_BEACH, Biomes.BIRCH_FOREST, Biomes.BIRCH_FOREST_HILLS, Biomes.DARK_FOREST, Biomes.SNOWY_TAIGA, Biomes.SNOWY_TAIGA_HILLS, Biomes.GIANT_TREE_TAIGA, Biomes.GIANT_TREE_TAIGA_HILLS, Biomes.WOODED_MOUNTAINS, Biomes.SAVANNA, Biomes.SAVANNA_PLATEAU, Biomes.BADLANDS, Biomes.WOODED_BADLANDS_PLATEAU, Biomes.BADLANDS_PLATEAU}); +- } ++ ++ // Purpur start - add natural mob spawns (maybe find a better place for this?) ++ BiomeBase.addSpawn("plains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1); ++ BiomeBase.addSpawn("sunflower_plains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1); ++ BiomeBase.addSpawn("desert", EnumCreatureType.MONSTER, EntityTypes.GIANT, 2, 1, 1); ++ BiomeBase.addSpawn("desert_hills", EnumCreatureType.MONSTER, EntityTypes.GIANT, 2, 1, 1); ++ BiomeBase.addSpawn("desert_lakes", EnumCreatureType.MONSTER, EntityTypes.GIANT, 2, 1, 1); ++ BiomeBase.addSpawn("mountains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1); ++ BiomeBase.addSpawn("gravelly_mountains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1); ++ BiomeBase.addSpawn("modified_gravelly_mountains", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 1); ++ BiomeBase.addSpawn("savanna", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2); ++ BiomeBase.addSpawn("savanna_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2); ++ BiomeBase.addSpawn("shattered_savanna", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2); ++ BiomeBase.addSpawn("shattered_savanna_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 5, 1, 2); ++ BiomeBase.addSpawn("badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 2); ++ BiomeBase.addSpawn("badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 2); ++ BiomeBase.addSpawn("eroded_badlands", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 1, 2); ++ BiomeBase.addSpawn("modified_badlands_plateau", EnumCreatureType.MONSTER, EntityTypes.GIANT, 10, 2, 1); ++ } ++ ++ private static void addSpawn(String biome, EnumCreatureType ct, EntityTypes et, int weight, int min_group, int max_group) { ++ IRegistry.BIOME.get(new MinecraftKey(biome)).addMobSpawn(ct, new BiomeBase.BiomeMeta(et, weight, min_group, max_group)); ++ } ++ // Purpur end + + private static void a(int i, String s, BiomeBase biomebase) { + IRegistry.BIOME.a(i, new MinecraftKey(s), biomebase); diff --git a/src/main/java/net/minecraft/server/ControllerJump.java b/src/main/java/net/minecraft/server/ControllerJump.java index 489beed2..041f0763 100644 --- a/src/main/java/net/minecraft/server/ControllerJump.java @@ -488,6 +534,63 @@ index 5da2d72a..ecfcbe31 100644 if (this.i.a(TagsFluid.WATER)) { this.i.motY += 0.005D; } +diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java +index dd827aea..f7a4e87c 100644 +--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java ++++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java +@@ -7,6 +7,11 @@ public class EntityGiantZombie extends EntityMonster { + public EntityGiantZombie(World world) { + super(EntityTypes.GIANT, world); + this.setSize(this.width * 6.0F, this.length * 6.0F); ++ // Purpur start ++ this.moveController = new net.pl3x.purpur.controller.ControllerMoveWASD(this); ++ this.lookController = new net.pl3x.purpur.controller.ControllerLookWASD(this); ++ this.canBeRiddenInWater = true; ++ // Purpur end + } + + public float getHeadHeight() { +@@ -20,12 +25,39 @@ public class EntityGiantZombie extends EntityMonster { + this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(50.0D); + } + ++ // Purpur start - initPathfinder ++ @Override ++ protected void n() { ++ this.goalSelector.a(0, new PathfinderGoalFloat(this)); ++ this.goalSelector.a(2, new PathfinderGoalMeleeAttack(this, 1.0D, false)); ++ this.goalSelector.a(7, new PathfinderGoalRandomStrollLand(this, 1.0D)); ++ this.goalSelector.a(8, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 16.0F)); ++ this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this)); ++ this.goalSelector.a(5, new PathfinderGoalMoveTowardsRestriction(this, 1.0D)); ++ this.targetSelector.a(1, new PathfinderGoalHurtByTarget(this, true, EntityHuman.class)); ++ this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); ++ this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillager.class, false)); ++ this.targetSelector.a(4, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, true)); ++ this.targetSelector.a(5, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, true)); ++ } ++ // Purpur ++ + public float a(BlockPosition blockposition, IWorldReader iworldreader) { +- return iworldreader.A(blockposition) - 0.5F; ++ return super.a(blockposition, iworldreader); // Purpur - fix light requirements for natural spawns + } + + @Nullable + protected MinecraftKey getDefaultLootTable() { + return LootTables.A; + } ++ ++ // Purpur start - processInteract ++ @Override ++ public boolean a(EntityHuman entityhuman, EnumHand enumhand) { ++ if (super.a(entityhuman, enumhand)) { ++ return true; // vanilla action handled ++ } ++ return tryRide(entityhuman, enumhand); ++ } ++ // Purpur end + } diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java index 072236ec..e04cb7c0 100644 --- a/src/main/java/net/minecraft/server/EntityGuardian.java