diff options
| author | 2024-01-11 13:05:51 +0100 | |
|---|---|---|
| committer | 2024-01-11 13:05:51 +0100 | |
| commit | 8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618 (patch) | |
| tree | 10cbf4c3ab0af9ead6c19c1b4096af084289c836 /src | |
| parent | Actually don't give bundles an EMC value (diff) | |
| download | mc-eris-alchemy-8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618.tar.gz mc-eris-alchemy-8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618.tar.xz mc-eris-alchemy-8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618.zip | |
Making SheetsMixin more extensible
Diffstat (limited to 'src')
6 files changed, 43 insertions, 35 deletions
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java b/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java index 592eb5e..893e60d 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java | |||
| @@ -8,6 +8,8 @@ import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu; | |||
| 8 | import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; | 8 | import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; |
| 9 | import lv.enes.mc.eris_alchemy.recipe.CovalenceRepair; | 9 | import lv.enes.mc.eris_alchemy.recipe.CovalenceRepair; |
| 10 | import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType; | 10 | import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType; |
| 11 | import net.minecraft.client.renderer.Sheets; | ||
| 12 | import net.minecraft.client.resources.model.Material; | ||
| 11 | import net.minecraft.core.registries.BuiltInRegistries; | 13 | import net.minecraft.core.registries.BuiltInRegistries; |
| 12 | import net.minecraft.resources.ResourceLocation; | 14 | import net.minecraft.resources.ResourceLocation; |
| 13 | import net.minecraft.world.flag.FeatureFlags; | 15 | import net.minecraft.world.flag.FeatureFlags; |
| @@ -123,6 +125,20 @@ public final class ErisAlchemyRegistry { | |||
| 123 | } | 125 | } |
| 124 | } | 126 | } |
| 125 | 127 | ||
| 128 | public static final class Materials { | ||
| 129 | private Materials() {} | ||
| 130 | |||
| 131 | public static final Material ALCHEMICAL_CHEST = new Material( | ||
| 132 | Sheets.CHEST_SHEET, | ||
| 133 | new ResourceLocation(ErisAlchemy.ID, "entity/chest/alchemical_chest") | ||
| 134 | ); | ||
| 135 | |||
| 136 | public static final Material ENERGY_CONDENSER = new Material( | ||
| 137 | Sheets.CHEST_SHEET, | ||
| 138 | new ResourceLocation(ErisAlchemy.ID, "entity/chest/energy_condenser") | ||
| 139 | ); | ||
| 140 | } | ||
| 141 | |||
| 126 | public static final class Menus { | 142 | public static final class Menus { |
| 127 | private Menus() {} | 143 | private Menus() {} |
| 128 | 144 | ||
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java index 38ed902..659e4b1 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java | |||
| @@ -1,7 +1,9 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.block.entity; | 1 | package lv.enes.mc.eris_alchemy.block.entity; |
| 2 | 2 | ||
| 3 | import jakarta.annotation.Nonnull; | 3 | import jakarta.annotation.Nonnull; |
| 4 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry; | 4 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.BlockEntities; |
| 5 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Blocks; | ||
| 6 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Materials; | ||
| 5 | import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu; | 7 | import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu; |
| 6 | import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; | 8 | import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; |
| 7 | import net.minecraft.core.BlockPos; | 9 | import net.minecraft.core.BlockPos; |
| @@ -18,7 +20,7 @@ public class AlchemicalChestEntity extends ChestLikeEntity { | |||
| 18 | private final NonNullList<ItemStack> items = NonNullList.withSize(WIDTH * HEIGHT, ItemStack.EMPTY); | 20 | private final NonNullList<ItemStack> items = NonNullList.withSize(WIDTH * HEIGHT, ItemStack.EMPTY); |
| 19 | 21 | ||
| 20 | public AlchemicalChestEntity(BlockPos pos, BlockState state) { | 22 | public AlchemicalChestEntity(BlockPos pos, BlockState state) { |
| 21 | super(ErisAlchemyRegistry.BlockEntities.ALCHEMICAL_CHEST, pos, state); | 23 | super(BlockEntities.ALCHEMICAL_CHEST, pos, state, Materials.ALCHEMICAL_CHEST); |
| 22 | } | 24 | } |
| 23 | 25 | ||
| 24 | @Nonnull | 26 | @Nonnull |
| @@ -27,13 +29,15 @@ public class AlchemicalChestEntity extends ChestLikeEntity { | |||
| 27 | return new AlchemicalChestMenu(syncId, playerInventory, this); | 29 | return new AlchemicalChestMenu(syncId, playerInventory, this); |
| 28 | } | 30 | } |
| 29 | 31 | ||
| 32 | @Nonnull | ||
| 30 | @Override | 33 | @Override |
| 31 | protected NonNullList<ItemStack> getItems() { | 34 | protected NonNullList<ItemStack> getItems() { |
| 32 | return items; | 35 | return items; |
| 33 | } | 36 | } |
| 34 | 37 | ||
| 38 | @Nonnull | ||
| 35 | @Override | 39 | @Override |
| 36 | protected Block getParent() { | 40 | protected Block getParent() { |
| 37 | return ErisAlchemyRegistry.Blocks.ALCHEMICAL_CHEST; | 41 | return Blocks.ALCHEMICAL_CHEST; |
| 38 | } | 42 | } |
| 39 | } | 43 | } |
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java index 362b054..8f40d26 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java | |||
| @@ -3,6 +3,7 @@ package lv.enes.mc.eris_alchemy.block.entity; | |||
| 3 | import jakarta.annotation.Nonnull; | 3 | import jakarta.annotation.Nonnull; |
| 4 | import jakarta.annotation.Nullable; | 4 | import jakarta.annotation.Nullable; |
| 5 | import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; | 5 | import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; |
| 6 | import net.minecraft.client.resources.model.Material; | ||
| 6 | import net.minecraft.core.BlockPos; | 7 | import net.minecraft.core.BlockPos; |
| 7 | import net.minecraft.core.NonNullList; | 8 | import net.minecraft.core.NonNullList; |
| 8 | import net.minecraft.nbt.CompoundTag; | 9 | import net.minecraft.nbt.CompoundTag; |
| @@ -21,6 +22,8 @@ import net.minecraft.world.level.block.state.BlockState; | |||
| 21 | public abstract class ChestLikeEntity extends BaseContainerBlockEntity implements LidBlockEntity { | 22 | public abstract class ChestLikeEntity extends BaseContainerBlockEntity implements LidBlockEntity { |
| 22 | protected static final int EVENT_INTERACTED = 1; | 23 | protected static final int EVENT_INTERACTED = 1; |
| 23 | 24 | ||
| 25 | public final Material material; | ||
| 26 | |||
| 24 | protected final ChestLidController lidController = new ChestLidController(); | 27 | protected final ChestLidController lidController = new ChestLidController(); |
| 25 | protected final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() { | 28 | protected final ContainerOpenersCounter openersCounter = new ContainerOpenersCounter() { |
| 26 | @Override | 29 | @Override |
| @@ -50,13 +53,18 @@ public abstract class ChestLikeEntity extends BaseContainerBlockEntity implement | |||
| 50 | public ChestLikeEntity( | 53 | public ChestLikeEntity( |
| 51 | BlockEntityType<? extends ChestLikeEntity> type, | 54 | BlockEntityType<? extends ChestLikeEntity> type, |
| 52 | BlockPos pos, | 55 | BlockPos pos, |
| 53 | BlockState state | 56 | BlockState state, |
| 57 | Material material | ||
| 54 | ) { | 58 | ) { |
| 55 | super(type, pos, state); | 59 | super(type, pos, state); |
| 60 | this.material = material; | ||
| 56 | } | 61 | } |
| 57 | 62 | ||
| 58 | protected abstract Block getParent(); | 63 | |
| 64 | @Nonnull | ||
| 59 | protected abstract NonNullList<ItemStack> getItems(); | 65 | protected abstract NonNullList<ItemStack> getItems(); |
| 66 | @Nonnull | ||
| 67 | protected abstract Block getParent(); | ||
| 60 | 68 | ||
| 61 | @Override | 69 | @Override |
| 62 | public void clearContent() { | 70 | public void clearContent() { |
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java index dfe07a4..0f39ccb 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java | |||
| @@ -2,7 +2,9 @@ package lv.enes.mc.eris_alchemy.block.entity; | |||
| 2 | 2 | ||
| 3 | import jakarta.annotation.Nonnull; | 3 | import jakarta.annotation.Nonnull; |
| 4 | import lv.enes.mc.eris_alchemy.EMC; | 4 | import lv.enes.mc.eris_alchemy.EMC; |
| 5 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry; | 5 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.BlockEntities; |
| 6 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Blocks; | ||
| 7 | import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Materials; | ||
| 6 | import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; | 8 | import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; |
| 7 | import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; | 9 | import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; |
| 8 | import lv.enes.mc.eris_alchemy.utils.ContainerOpenersCounterUtil; | 10 | import lv.enes.mc.eris_alchemy.utils.ContainerOpenersCounterUtil; |
| @@ -30,7 +32,7 @@ public class EnergyCondenserEntity extends ChestLikeEntity implements ExtendedSc | |||
| 30 | public final SyncedDouble storedEmc = new SyncedDouble(0); | 32 | public final SyncedDouble storedEmc = new SyncedDouble(0); |
| 31 | 33 | ||
| 32 | public EnergyCondenserEntity(BlockPos pos, BlockState state) { | 34 | public EnergyCondenserEntity(BlockPos pos, BlockState state) { |
| 33 | super(ErisAlchemyRegistry.BlockEntities.ENERGY_CONDENSER, pos, state); | 35 | super(BlockEntities.ENERGY_CONDENSER, pos, state, Materials.ENERGY_CONDENSER); |
| 34 | } | 36 | } |
| 35 | 37 | ||
| 36 | @Nonnull | 38 | @Nonnull |
| @@ -39,14 +41,16 @@ public class EnergyCondenserEntity extends ChestLikeEntity implements ExtendedSc | |||
| 39 | return new EnergyCondenserMenu(syncId, playerInventory, this); | 41 | return new EnergyCondenserMenu(syncId, playerInventory, this); |
| 40 | } | 42 | } |
| 41 | 43 | ||
| 44 | @Nonnull | ||
| 42 | @Override | 45 | @Override |
| 43 | protected NonNullList<ItemStack> getItems() { | 46 | protected NonNullList<ItemStack> getItems() { |
| 44 | return items; | 47 | return items; |
| 45 | } | 48 | } |
| 46 | 49 | ||
| 50 | @Nonnull | ||
| 47 | @Override | 51 | @Override |
| 48 | protected Block getParent() { | 52 | protected Block getParent() { |
| 49 | return ErisAlchemyRegistry.Blocks.ENERGY_CONDENSER; | 53 | return Blocks.ENERGY_CONDENSER; |
| 50 | } | 54 | } |
| 51 | 55 | ||
| 52 | public double getStoredEmc() { | 56 | public double getStoredEmc() { |
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java b/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java deleted file mode 100644 index 686d83f..0000000 --- a/src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java +++ /dev/null | |||
| @@ -1,20 +0,0 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.client; | ||
| 2 | |||
| 3 | import lv.enes.mc.eris_alchemy.ErisAlchemy; | ||
| 4 | import net.minecraft.client.renderer.Sheets; | ||
| 5 | import net.minecraft.client.resources.model.Material; | ||
| 6 | import net.minecraft.resources.ResourceLocation; | ||
| 7 | |||
| 8 | public final class ErisAlchemyMaterials { | ||
| 9 | public static final Material ALCHEMICAL_CHEST = new Material( | ||
| 10 | Sheets.CHEST_SHEET, | ||
| 11 | new ResourceLocation(ErisAlchemy.ID, "entity/chest/alchemical_chest") | ||
| 12 | ); | ||
| 13 | |||
| 14 | public static final Material ENERGY_CONDENSER = new Material( | ||
| 15 | Sheets.CHEST_SHEET, | ||
| 16 | new ResourceLocation(ErisAlchemy.ID, "entity/chest/energy_condenser") | ||
| 17 | ); | ||
| 18 | |||
| 19 | private ErisAlchemyMaterials() {} | ||
| 20 | } | ||
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java b/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java index 145a68c..bc9e7b8 100644 --- a/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java +++ b/src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java | |||
| @@ -1,8 +1,6 @@ | |||
| 1 | package lv.enes.mc.eris_alchemy.mixin.client; | 1 | package lv.enes.mc.eris_alchemy.mixin.client; |
| 2 | 2 | ||
| 3 | import lv.enes.mc.eris_alchemy.block.entity.EnergyCondenserEntity; | 3 | import lv.enes.mc.eris_alchemy.block.entity.ChestLikeEntity; |
| 4 | import lv.enes.mc.eris_alchemy.client.ErisAlchemyMaterials; | ||
| 5 | import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestEntity; | ||
| 6 | import net.minecraft.client.renderer.Sheets; | 4 | import net.minecraft.client.renderer.Sheets; |
| 7 | import net.minecraft.client.resources.model.Material; | 5 | import net.minecraft.client.resources.model.Material; |
| 8 | import net.minecraft.world.level.block.entity.BlockEntity; | 6 | import net.minecraft.world.level.block.entity.BlockEntity; |
| @@ -25,10 +23,8 @@ public abstract class SheetsMixin { | |||
| 25 | boolean christmas, | 23 | boolean christmas, |
| 26 | CallbackInfoReturnable<Material> cir | 24 | CallbackInfoReturnable<Material> cir |
| 27 | ) { | 25 | ) { |
| 28 | if (entity instanceof AlchemicalChestEntity) { | 26 | if (entity instanceof ChestLikeEntity chestlike) { |
| 29 | cir.setReturnValue(ErisAlchemyMaterials.ALCHEMICAL_CHEST); | 27 | cir.setReturnValue(chestlike.material); |
| 30 | } else if (entity instanceof EnergyCondenserEntity) { | ||
| 31 | cir.setReturnValue(ErisAlchemyMaterials.ENERGY_CONDENSER); | ||
| 32 | } | 28 | } |
| 33 | } | 29 | } |
| 34 | } | 30 | } |