diff options
| author | Khafra <maitken033380023@gmail.com> | 2024-11-25 22:49:43 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-25 22:49:43 -0500 |
| commit | 8d986df7fc39dac8a39426e80b277cc731c8dcc0 (patch) | |
| tree | ba176948251f3aaa21c4ca57e470f4f32f7267bb /src | |
| parent | b64ad459921d1710ac9eb8022ccc3cad36745523 (diff) | |
| download | Skyblocker-8d986df7fc39dac8a39426e80b277cc731c8dcc0.tar.gz Skyblocker-8d986df7fc39dac8a39426e80b277cc731c8dcc0.tar.bz2 Skyblocker-8d986df7fc39dac8a39426e80b277cc731c8dcc0.zip | |
add old mushroom hitbox (#1051)
* add old mushroom hitbox
* fixup
Diffstat (limited to 'src')
5 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java index 58abfa90..7b26793a 100644 --- a/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java +++ b/src/main/java/de/hysky/skyblocker/config/categories/GeneralCategory.java @@ -380,6 +380,13 @@ public class GeneralCategory { newValue -> config.general.hitbox.oldLeverHitbox = newValue) .controller(ConfigUtils::createBooleanController) .build()) + .option(Option.<Boolean>createBuilder() + .name(Text.translatable("skyblocker.config.general.hitbox.oldMushroomHitbox")) + .binding(defaults.general.hitbox.oldMushroomHitbox, + () -> config.general.hitbox.oldMushroomHitbox, + newValue -> config.general.hitbox.oldMushroomHitbox = newValue) + .controller(ConfigUtils::createBooleanController) + .build()) .build()) .build(); diff --git a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java index ccf181eb..1c845287 100644 --- a/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java +++ b/src/main/java/de/hysky/skyblocker/config/configs/GeneralConfig.java @@ -249,6 +249,9 @@ public class GeneralConfig { @SerialEntry public boolean oldLeverHitbox = false; + + @SerialEntry + public boolean oldMushroomHitbox = false; } } diff --git a/src/main/java/de/hysky/skyblocker/mixins/MushroomPlantBlockMixin.java b/src/main/java/de/hysky/skyblocker/mixins/MushroomPlantBlockMixin.java new file mode 100644 index 00000000..7e0f5b39 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixins/MushroomPlantBlockMixin.java @@ -0,0 +1,34 @@ +package de.hysky.skyblocker.mixins; + +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.Utils; +import net.minecraft.block.*; +import net.minecraft.util.shape.VoxelShape; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(MushroomPlantBlock.class) +public abstract class MushroomPlantBlockMixin extends Block { + @Shadow + protected static VoxelShape SHAPE; + + @Unique + private static final VoxelShape OLD_SHAPE = Block.createCuboidShape(4.8, 0.0, 4.8, 11.2, 6.4, 11.2); + + public MushroomPlantBlockMixin(Settings settings) { + super(settings); + } + + @ModifyReturnValue(method = "getOutlineShape", at = @At("RETURN")) + private VoxelShape skyblocker$getOldMushroomOutline(VoxelShape original) { + return Utils.isOnSkyblock() && SkyblockerConfigManager.get().general.hitbox.oldMushroomHitbox ? OLD_SHAPE : original; + } + + @Override + public VoxelShape getCullingShape(BlockState state) { + return SHAPE; + } +} diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json index a75dced1..a76ec97a 100644 --- a/src/main/resources/assets/skyblocker/lang/en_us.json +++ b/src/main/resources/assets/skyblocker/lang/en_us.json @@ -252,6 +252,7 @@ "skyblocker.config.general.hitbox": "Hitboxes", "skyblocker.config.general.hitbox.oldFarmlandHitbox": "Enable 1.8 farmland hitbox", "skyblocker.config.general.hitbox.oldLeverHitbox": "Enable 1.8 lever hitbox", + "skyblocker.config.general.hitbox.oldMushroomHitbox": "Enable 1.8 mushroom hitbox", "skyblocker.config.general.itemInfoDisplay": "Item Info Display", "skyblocker.config.general.itemInfoDisplay.attributeShardInfo": "Attribute Shard Info", diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index b011be6d..8c5f7738 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -28,6 +28,7 @@ "LeverBlockMixin", "MinecraftClientMixin", "MouseMixin", + "MushroomPlantBlockMixin", "PingMeasurerMixin", "PlayerInventoryMixin", "PlayerListHudMixin", |
