Skip to content

Commit

Permalink
Make witches spawned in swamp huts persistent like in newer versions
Browse files Browse the repository at this point in the history
Related: #115
  • Loading branch information
embeddedt committed Feb 24, 2024
1 parent f61aafd commit 18fec61
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/java/org/embeddedt/archaicfix/asm/Mixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public enum Mixin {
common_core_MixinEmbeddedChannel(Side.COMMON, Phase.EARLY, m -> ArchaicConfig.fixLoginRaceCondition, "core.MixinEmbeddedChannel"),
common_core_MixinNetHandlerPlayServer(Side.COMMON, Phase.EARLY, always(), "core.MixinNetHandlerPlayServer"),
common_core_MixinObjectIntIdentityMap(Side.COMMON, Phase.EARLY, m -> ArchaicConfig.optimizeObjectIntIdentityMap, "core.MixinObjectIntIdentityMap"),
common_core_MixinSwampHut(Side.COMMON, Phase.EARLY, m -> ArchaicConfig.fixEntityStructurePersistence, "core.MixinSwampHut"),
common_gt6_MixinAdvancedCraftingXToY(Side.COMMON, Phase.LATE, require(TargetedMod.GREGTECH6), "gt6.MixinAdvancedCraftingXToY"),
common_gt6_MixinGT6_Main(Side.COMMON, Phase.LATE, require(TargetedMod.GREGTECH6), "gt6.MixinGT6_Main"),
common_gt6_MixinCR(Side.COMMON, Phase.LATE, require(TargetedMod.GREGTECH6), "gt6.MixinCR"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,8 @@ public class ArchaicConfig {
@Config.Comment("Allow entities to be hit through grass, instead of breaking the grass plant")
@Config.DefaultBoolean(true)
public static boolean enableHitThroughGrassFix;

@Config.Comment("Fix vanilla issues with entities spawned as part of structures not being marked persistent (e.g. MC-108664)")
@Config.DefaultBoolean(true)
public static boolean fixEntityStructurePersistence;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.embeddedt.archaicfix.mixins.common.core;

import net.minecraft.entity.IEntityLivingData;
import net.minecraft.entity.monster.EntityWitch;
import net.minecraft.world.gen.structure.ComponentScatteredFeaturePieces;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;

@Mixin(ComponentScatteredFeaturePieces.SwampHut.class)
public class MixinSwampHut {
@Redirect(method = "addComponentParts", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/monster/EntityWitch;onSpawnWithEgg(Lnet/minecraft/entity/IEntityLivingData;)Lnet/minecraft/entity/IEntityLivingData;"))
private IEntityLivingData summonWitchWithPersistence(EntityWitch instance, IEntityLivingData iEntityLivingData) {
instance.func_110163_bv();
return instance.onSpawnWithEgg(iEntityLivingData);
}
}

0 comments on commit 18fec61

Please sign in to comment.