summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2024-01-11 13:05:51 +0100
committerGravatar Uko Kokņevičs2024-01-11 13:05:51 +0100
commit8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618 (patch)
tree10cbf4c3ab0af9ead6c19c1b4096af084289c836 /src
parentActually don't give bundles an EMC value (diff)
downloadmc-eris-alchemy-8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618.tar.gz
mc-eris-alchemy-8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618.tar.xz
mc-eris-alchemy-8491f46b8ee9ef2eff8eb9bfe1871e0e20a41618.zip
Making SheetsMixin more extensible
Diffstat (limited to 'src')
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/ErisAlchemyRegistry.java16
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/block/entity/AlchemicalChestEntity.java10
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/block/entity/ChestLikeEntity.java12
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/block/entity/EnergyCondenserEntity.java10
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/client/ErisAlchemyMaterials.java20
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/mixin/client/SheetsMixin.java10
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;
8import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; 8import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu;
9import lv.enes.mc.eris_alchemy.recipe.CovalenceRepair; 9import lv.enes.mc.eris_alchemy.recipe.CovalenceRepair;
10import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType; 10import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType;
11import net.minecraft.client.renderer.Sheets;
12import net.minecraft.client.resources.model.Material;
11import net.minecraft.core.registries.BuiltInRegistries; 13import net.minecraft.core.registries.BuiltInRegistries;
12import net.minecraft.resources.ResourceLocation; 14import net.minecraft.resources.ResourceLocation;
13import net.minecraft.world.flag.FeatureFlags; 15import 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 @@
1package lv.enes.mc.eris_alchemy.block.entity; 1package lv.enes.mc.eris_alchemy.block.entity;
2 2
3import jakarta.annotation.Nonnull; 3import jakarta.annotation.Nonnull;
4import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry; 4import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.BlockEntities;
5import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Blocks;
6import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Materials;
5import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu; 7import lv.enes.mc.eris_alchemy.menu.AlchemicalChestMenu;
6import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; 8import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu;
7import net.minecraft.core.BlockPos; 9import 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;
3import jakarta.annotation.Nonnull; 3import jakarta.annotation.Nonnull;
4import jakarta.annotation.Nullable; 4import jakarta.annotation.Nullable;
5import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; 5import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu;
6import net.minecraft.client.resources.model.Material;
6import net.minecraft.core.BlockPos; 7import net.minecraft.core.BlockPos;
7import net.minecraft.core.NonNullList; 8import net.minecraft.core.NonNullList;
8import net.minecraft.nbt.CompoundTag; 9import net.minecraft.nbt.CompoundTag;
@@ -21,6 +22,8 @@ import net.minecraft.world.level.block.state.BlockState;
21public abstract class ChestLikeEntity extends BaseContainerBlockEntity implements LidBlockEntity { 22public 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
3import jakarta.annotation.Nonnull; 3import jakarta.annotation.Nonnull;
4import lv.enes.mc.eris_alchemy.EMC; 4import lv.enes.mc.eris_alchemy.EMC;
5import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry; 5import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.BlockEntities;
6import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Blocks;
7import lv.enes.mc.eris_alchemy.ErisAlchemyRegistry.Materials;
6import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu; 8import lv.enes.mc.eris_alchemy.menu.ChestLikeMenu;
7import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu; 9import lv.enes.mc.eris_alchemy.menu.EnergyCondenserMenu;
8import lv.enes.mc.eris_alchemy.utils.ContainerOpenersCounterUtil; 10import 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 @@
1package lv.enes.mc.eris_alchemy.client;
2
3import lv.enes.mc.eris_alchemy.ErisAlchemy;
4import net.minecraft.client.renderer.Sheets;
5import net.minecraft.client.resources.model.Material;
6import net.minecraft.resources.ResourceLocation;
7
8public 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 @@
1package lv.enes.mc.eris_alchemy.mixin.client; 1package lv.enes.mc.eris_alchemy.mixin.client;
2 2
3import lv.enes.mc.eris_alchemy.block.entity.EnergyCondenserEntity; 3import lv.enes.mc.eris_alchemy.block.entity.ChestLikeEntity;
4import lv.enes.mc.eris_alchemy.client.ErisAlchemyMaterials;
5import lv.enes.mc.eris_alchemy.block.entity.AlchemicalChestEntity;
6import net.minecraft.client.renderer.Sheets; 4import net.minecraft.client.renderer.Sheets;
7import net.minecraft.client.resources.model.Material; 5import net.minecraft.client.resources.model.Material;
8import net.minecraft.world.level.block.entity.BlockEntity; 6import 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}