From 6008c8e4a5f38ab335891724bb22d454093388f7 Mon Sep 17 00:00:00 2001 From: DeadlyMC Date: Wed, 5 Jun 2019 15:52:17 +0530 Subject: [PATCH 1/3] added renewableSponges mixins --- src/main/java/carpet/CarpetSettings.java | 2 +- .../carpet/mixins/GuardianEntityMixin.java | 48 +++++++++++++++++++ src/main/resources/carpet.mixins.json | 1 + 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/main/java/carpet/mixins/GuardianEntityMixin.java diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 5e3357dd..c8d69441 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -113,7 +113,7 @@ public class CarpetSettings "Counters are global and shared between players, 16 channels available", "Items counted are destroyed, count up to one stack per tick per hopper") .isACommand().boolAccelerate().defaultFalse(), - rule("renewableSponges", "experimental feature", "Guardians turn into Elder Guardian when struck by lightning").wip(), + rule("renewableSponges", "experimental feature", "Guardians turn into Elder Guardian when struck by lightning"), rule("movableTileEntities", "experimental", "Pistons can push tile entities, like hoppers, chests etc.").boolAccelerate().wip(), rule("desertShrubs", "feature", "Saplings turn into dead shrubs in hot climates and no water access when it attempts to grow into a tree").wip(), rule("silverFishDropGravel", "experimental", "Silverfish drop a gravel item when breaking out of a block"), diff --git a/src/main/java/carpet/mixins/GuardianEntityMixin.java b/src/main/java/carpet/mixins/GuardianEntityMixin.java new file mode 100644 index 00000000..d2691aa9 --- /dev/null +++ b/src/main/java/carpet/mixins/GuardianEntityMixin.java @@ -0,0 +1,48 @@ +package carpet.mixins; + +import carpet.CarpetSettings; +import net.minecraft.entity.EntityData; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LightningEntity; +import net.minecraft.entity.SpawnType; +import net.minecraft.entity.mob.ElderGuardianEntity; +import net.minecraft.entity.mob.GuardianEntity; +import net.minecraft.entity.mob.HostileEntity; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(GuardianEntity.class) +public abstract class GuardianEntityMixin extends HostileEntity +{ + protected GuardianEntityMixin(EntityType entityType_1, World world_1) + { + super(entityType_1, world_1); + } + + @Override + public void onStruckByLightning(LightningEntity lightning) + { + if (!this.world.isClient && !this.removed && CarpetSettings.getBool("renewableSponges")) + { + ElderGuardianEntity elderGuardian = new ElderGuardianEntity(EntityType.ELDER_GUARDIAN ,this.world); + elderGuardian.setPositionAndAngles(this.x, this.y, this.z, this.yaw, this.pitch); + elderGuardian.initialize(this.world ,this.world.getLocalDifficulty(new BlockPos(elderGuardian)), SpawnType.EVENT, (EntityData)null, (CompoundTag)null); + elderGuardian.setAiDisabled(this.isAiDisabled()); + + if (this.hasCustomName()) + { + elderGuardian.setCustomName(this.getCustomName()); + elderGuardian.setCustomNameVisible(this.isCustomNameVisible()); + } + + this.world.spawnEntity(elderGuardian); + this.remove(); + } + else + { + super.onStruckByLightning(lightning); + } + } +} diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 19c5fb26..c3d73277 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -52,6 +52,7 @@ "ServerPlayerInteractionManager_scarpetEventsMixin", "EntityMixin", "DirectionMixin", + "GuardianEntityMixin", "ServerChunkManagerMixin", "SpawnHelperMixin", From 75f68c8bbebe7d0821dcf9cdb666d2cd8eb0fada Mon Sep 17 00:00:00 2001 From: DeadlyMC Date: Wed, 5 Jun 2019 15:59:17 +0530 Subject: [PATCH 2/3] changed spawn type --- src/main/java/carpet/mixins/GuardianEntityMixin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/carpet/mixins/GuardianEntityMixin.java b/src/main/java/carpet/mixins/GuardianEntityMixin.java index d2691aa9..52b0d232 100644 --- a/src/main/java/carpet/mixins/GuardianEntityMixin.java +++ b/src/main/java/carpet/mixins/GuardianEntityMixin.java @@ -28,7 +28,7 @@ public abstract class GuardianEntityMixin extends HostileEntity { ElderGuardianEntity elderGuardian = new ElderGuardianEntity(EntityType.ELDER_GUARDIAN ,this.world); elderGuardian.setPositionAndAngles(this.x, this.y, this.z, this.yaw, this.pitch); - elderGuardian.initialize(this.world ,this.world.getLocalDifficulty(new BlockPos(elderGuardian)), SpawnType.EVENT, (EntityData)null, (CompoundTag)null); + elderGuardian.initialize(this.world ,this.world.getLocalDifficulty(new BlockPos(elderGuardian)), SpawnType.CONVERSION, (EntityData)null, (CompoundTag)null); elderGuardian.setAiDisabled(this.isAiDisabled()); if (this.hasCustomName()) From db6e619849228a94a1992a064fc99af8e428d00e Mon Sep 17 00:00:00 2001 From: DeadlyMC Date: Thu, 6 Jun 2019 16:12:34 +0530 Subject: [PATCH 3/3] resolve merge conflicts --- src/main/java/carpet/CarpetSettings.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 23a4f74e..a77b337f 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -113,13 +113,8 @@ public class CarpetSettings "Counters are global and shared between players, 16 channels available", "Items counted are destroyed, count up to one stack per tick per hopper") .isACommand().boolAccelerate().defaultFalse(), -<<<<<<< HEAD rule("renewableSponges", "experimental feature", "Guardians turn into Elder Guardian when struck by lightning"), - rule("movableTileEntities", "experimental", "Pistons can push tile entities, like hoppers, chests etc.").boolAccelerate().wip(), -======= - rule("renewableSponges", "experimental feature", "Guardians turn into Elder Guardian when struck by lightning").wip(), rule("movableTileEntities", "experimental", "Pistons can push tile entities, like hoppers, chests etc.").boolAccelerate(), ->>>>>>> master rule("desertShrubs", "feature", "Saplings turn into dead shrubs in hot climates and no water access when it attempts to grow into a tree").wip(), rule("silverFishDropGravel", "experimental", "Silverfish drop a gravel item when breaking out of a block"), rule("summonNaturalLightning","creative", "summoning a lightning bolt has all the side effects of natural lightning"),