Skip to content

Commit 56361cb

Browse files
More work
1 parent 8fe77d4 commit 56361cb

17 files changed

+197
-239
lines changed

src/main/java/fl205/ironfurnaces/IronFurnaces.java

Lines changed: 104 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,26 @@
11
package fl205.ironfurnaces;
22

3-
import fl205.ironfurnaces.blocks.DiamondFurnace;
4-
import fl205.ironfurnaces.blocks.GoldFurnace;
5-
import fl205.ironfurnaces.blocks.IronFurnace;
6-
import fl205.ironfurnaces.blocks.SteelFurnace;
7-
import fl205.ironfurnaces.tileEntities.TileEntityDiamondFurnace;
8-
import fl205.ironfurnaces.tileEntities.TileEntityGoldFurnace;
9-
import fl205.ironfurnaces.tileEntities.TileEntityIronFurnace;
10-
import fl205.ironfurnaces.tileEntities.TileEntitySteelFurnace;
113
import net.fabricmc.api.ModInitializer;
124
import net.minecraft.client.render.block.model.BlockModelHorizontalRotation;
135
import net.minecraft.core.block.Block;
14-
import net.minecraft.core.block.material.Material;
6+
import net.minecraft.core.block.BlockLogic;
7+
import net.minecraft.core.block.BlockLogicSupplier;
8+
import net.minecraft.core.block.Blocks;
159
import net.minecraft.core.block.tag.BlockTags;
16-
import net.minecraft.core.item.Item;
10+
import net.minecraft.core.item.Items;
1711
import net.minecraft.core.sound.BlockSounds;
1812
import org.slf4j.Logger;
1913
import org.slf4j.LoggerFactory;
2014
import turniplabs.halplibe.helper.BlockBuilder;
21-
import turniplabs.halplibe.helper.EntityHelper;
2215
import turniplabs.halplibe.helper.RecipeBuilder;
2316
import turniplabs.halplibe.helper.recipeBuilders.RecipeBuilderShaped;
2417
import turniplabs.halplibe.util.GameStartEntrypoint;
2518
import turniplabs.halplibe.util.RecipeEntrypoint;
2619
import turniplabs.halplibe.util.TomlConfigHandler;
2720
import turniplabs.halplibe.util.toml.Toml;
2821

22+
import fl205.ironfurnaces.blocks.BlockLogicIronFurnace;
23+
2924

3025
public class IronFurnaces implements ModInitializer, GameStartEntrypoint, RecipeEntrypoint {
3126
public static final String MOD_ID = "ironfurnaces";
@@ -56,7 +51,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
5651
.addEntry("diamondFurnace", 150)
5752
.addEntry("steelFurnace", 250);
5853

59-
config = new TomlConfigHandler(null, MOD_ID, toml);
54+
config = new TomlConfigHandler(MOD_ID, toml);
6055
}
6156

6257

@@ -78,96 +73,95 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
7873
"ironfurnaces:block/ironfurnaceside",
7974
"ironfurnaces:block/ironfurnaceside",
8075
"ironfurnaces:block/ironfurnaceside"))
81-
.build(new IronFurnace("furnace.iron.idle", config.getInt("IDs.ironFurnaceIdleID"), Material.metal, false));
82-
83-
public static final Block furnaceIronActive = furnace
84-
.setLuminance(13)
85-
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
86-
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
87-
.withTextures(
88-
"ironfurnaces:block/ironfurnacetop",
89-
"ironfurnaces:block/ironfurnacebottom",
90-
"ironfurnaces:block/ironfurnaceactivefront",
91-
"ironfurnaces:block/ironfurnaceside",
92-
"ironfurnaces:block/ironfurnaceside",
93-
"ironfurnaces:block/ironfurnaceside"))
94-
.build(new IronFurnace("furnace.iron.active", furnaceIronIdle.id + 1, Material.metal, true));
95-
96-
97-
public static final Block furnaceGoldIdle = furnace
98-
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
99-
.withTextures(
100-
"ironfurnaces:block/goldfurnacetop",
101-
"ironfurnaces:block/goldfurnacebottom",
102-
"ironfurnaces:block/goldfurnaceidlefront",
103-
"ironfurnaces:block/goldfurnaceside",
104-
"ironfurnaces:block/goldfurnaceside",
105-
"ironfurnaces:block/goldfurnaceside"))
106-
.build(new GoldFurnace("furnace.gold.idle", config.getInt("IDs.goldFurnaceIdleID"), Material.metal, false));
107-
108-
public static final Block furnaceGoldActive = furnace
109-
.setLuminance(13)
110-
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
111-
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
112-
.withTextures(
113-
"ironfurnaces:block/goldfurnacetop",
114-
"ironfurnaces:block/goldfurnacebottom",
115-
"ironfurnaces:block/goldfurnaceactivefront",
116-
"ironfurnaces:block/goldfurnaceside",
117-
"ironfurnaces:block/goldfurnaceside",
118-
"ironfurnaces:block/goldfurnaceside"))
119-
.build(new GoldFurnace("furnace.gold.active", furnaceGoldIdle.id + 1, Material.metal, true));
120-
121-
public static final Block furnaceDiamondIdle = furnace
122-
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
123-
.withTextures(
124-
"ironfurnaces:block/diamondfurnacetop",
125-
"ironfurnaces:block/diamondfurnacebottom",
126-
"ironfurnaces:block/diamondfurnaceidlefront",
127-
"ironfurnaces:block/diamondfurnaceside",
128-
"ironfurnaces:block/diamondfurnaceside",
129-
"ironfurnaces:block/diamondfurnaceside"))
130-
.build(new DiamondFurnace("furnace.diamond.idle", config.getInt("IDs.diamondFurnaceIdleID"), Material.metal, false));
131-
132-
public static final Block furnaceDiamondActive = furnace
133-
.setLuminance(13)
134-
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
135-
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
136-
.withTextures(
137-
"ironfurnaces:block/diamondfurnacetop",
138-
"ironfurnaces:block/diamondfurnacebottom",
139-
"ironfurnaces:block/diamondfurnaceactivefront",
140-
"ironfurnaces:block/diamondfurnaceside",
141-
"ironfurnaces:block/diamondfurnaceside",
142-
"ironfurnaces:block/diamondfurnaceside"))
143-
.build(new DiamondFurnace("furnace.diamond.active", furnaceDiamondIdle.id + 1, Material.metal, true));
144-
145-
public static final Block furnaceSteelIdle = furnace
146-
.setResistance(2000.0F)
147-
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
148-
.withTextures(
149-
"ironfurnaces:block/steelfurnacetop",
150-
"ironfurnaces:block/steelfurnacebottom",
151-
"ironfurnaces:block/steelfurnaceidlefront",
152-
"ironfurnaces:block/steelfurnaceside",
153-
"ironfurnaces:block/steelfurnaceside",
154-
"ironfurnaces:block/steelfurnaceside"))
155-
.build(new SteelFurnace("furnace.steel.idle", config.getInt("IDs.steelFurnaceIdleID"), Material.metal, false));
156-
157-
public static final Block furnaceSteelActive = furnace
158-
.setResistance(2000.0F)
159-
.setLuminance(13)
160-
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
161-
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
162-
.withTextures(
163-
"ironfurnaces:block/steelfurnacetop",
164-
"ironfurnaces:block/steelfurnacebottom",
165-
"ironfurnaces:block/steelfurnaceactivefront",
166-
"ironfurnaces:block/steelfurnaceside",
167-
"ironfurnaces:block/steelfurnaceside",
168-
"ironfurnaces:block/steelfurnaceside"))
169-
.build(new SteelFurnace("furnace.steel.active", furnaceSteelIdle.id + 1, Material.metal, true));
170-
76+
.build("furnace.iron.idle", MOD_ID+"furnace_iron_idle", config.getInt("IDs.ironFurnaceIdleID"), BlockLogicIronFurnace::new);
77+
78+
public static final Block furnaceIronActive = furnace
79+
.setLuminance(13)
80+
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
81+
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
82+
.withTextures(
83+
"ironfurnaces:block/ironfurnacetop",
84+
"ironfurnaces:block/ironfurnacebottom",
85+
"ironfurnaces:block/ironfurnaceactivefront",
86+
"ironfurnaces:block/ironfurnaceside",
87+
"ironfurnaces:block/ironfurnaceside",
88+
"ironfurnaces:block/ironfurnaceside"))
89+
.build(new BlockLogicIronFurnace("furnace.iron.active", furnaceIronIdle.id + 1, Material.metal, true));
90+
91+
92+
public static final Block furnaceGoldIdle = furnace
93+
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
94+
.withTextures(
95+
"ironfurnaces:block/goldfurnacetop",
96+
"ironfurnaces:block/goldfurnacebottom",
97+
"ironfurnaces:block/goldfurnaceidlefront",
98+
"ironfurnaces:block/goldfurnaceside",
99+
"ironfurnaces:block/goldfurnaceside",
100+
"ironfurnaces:block/goldfurnaceside"))
101+
.build(new BlockLogicGoldFurnace("furnace.gold.idle", config.getInt("IDs.goldFurnaceIdleID"), Material.metal, false));
102+
103+
public static final Block furnaceGoldActive = furnace
104+
.setLuminance(13)
105+
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
106+
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
107+
.withTextures(
108+
"ironfurnaces:block/goldfurnacetop",
109+
"ironfurnaces:block/goldfurnacebottom",
110+
"ironfurnaces:block/goldfurnaceactivefront",
111+
"ironfurnaces:block/goldfurnaceside",
112+
"ironfurnaces:block/goldfurnaceside",
113+
"ironfurnaces:block/goldfurnaceside"))
114+
.build(new BlockLogicGoldFurnace("furnace.gold.active", furnaceGoldIdle.id + 1, Material.metal, true));
115+
116+
public static final Block furnaceDiamondIdle = furnace
117+
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
118+
.withTextures(
119+
"ironfurnaces:block/diamondfurnacetop",
120+
"ironfurnaces:block/diamondfurnacebottom",
121+
"ironfurnaces:block/diamondfurnaceidlefront",
122+
"ironfurnaces:block/diamondfurnaceside",
123+
"ironfurnaces:block/diamondfurnaceside",
124+
"ironfurnaces:block/diamondfurnaceside"))
125+
.build(new BlockLogicDiamondFurnace("furnace.diamond.idle", config.getInt("IDs.diamondFurnaceIdleID"), Material.metal, false));
126+
127+
public static final Block furnaceDiamondActive = furnace
128+
.setLuminance(13)
129+
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
130+
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
131+
.withTextures(
132+
"ironfurnaces:block/diamondfurnacetop",
133+
"ironfurnaces:block/diamondfurnacebottom",
134+
"ironfurnaces:block/diamondfurnaceactivefront",
135+
"ironfurnaces:block/diamondfurnaceside",
136+
"ironfurnaces:block/diamondfurnaceside",
137+
"ironfurnaces:block/diamondfurnaceside"))
138+
.build(new BlockLogicDiamondFurnace("furnace.diamond.active", furnaceDiamondIdle.id + 1, Material.metal, true));
139+
140+
public static final Block furnaceSteelIdle = furnace
141+
.setResistance(2000.0F)
142+
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
143+
.withTextures(
144+
"ironfurnaces:block/steelfurnacetop",
145+
"ironfurnaces:block/steelfurnacebottom",
146+
"ironfurnaces:block/steelfurnaceidlefront",
147+
"ironfurnaces:block/steelfurnaceside",
148+
"ironfurnaces:block/steelfurnaceside",
149+
"ironfurnaces:block/steelfurnaceside"))
150+
.build(new BlockLogicSteelFurnace("furnace.steel.idle", Material.metal, false));
151+
152+
public static final Block furnaceSteelActive = furnace
153+
.setResistance(2000.0F)
154+
.setLuminance(13)
155+
.setTags(BlockTags.NOT_IN_CREATIVE_MENU, BlockTags.MINEABLE_BY_PICKAXE)
156+
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
157+
.withTextures(
158+
"ironfurnaces:block/steelfurnacetop",
159+
"ironfurnaces:block/steelfurnacebottom",
160+
"ironfurnaces:block/steelfurnaceactivefront",
161+
"ironfurnaces:block/steelfurnaceside",
162+
"ironfurnaces:block/steelfurnaceside",
163+
"ironfurnaces:block/steelfurnaceside"))
164+
.build(new BlockLogicSteelFurnace("furnace.steel.active", Material.metal, true));
171165

172166
@Override
173167
public void onInitialize() {
@@ -177,10 +171,10 @@ public void onInitialize() {
177171
@Override
178172
public void beforeGameStart() {
179173
// Tile Entities
180-
EntityHelper.createTileEntity(TileEntityIronFurnace.class, "Iron Furnace");
181-
EntityHelper.createTileEntity(TileEntityGoldFurnace.class, "Gold Furnace");
182-
EntityHelper.createTileEntity(TileEntityDiamondFurnace.class, "Diamond Furnace");
183-
EntityHelper.createTileEntity(TileEntitySteelFurnace.class, "Steel Furnace");
174+
//EntityHelper.createTileEntity(TileEntityIronFurnace.class, "Iron Furnace");
175+
//EntityHelper.createTileEntity(TileEntityGoldFurnace.class, "Gold Furnace");
176+
//EntityHelper.createTileEntity(TileEntityDiamondFurnace.class, "Diamond Furnace");
177+
//EntityHelper.createTileEntity(TileEntitySteelFurnace.class, "Steel Furnace");
184178
}
185179

186180
@Override
@@ -193,13 +187,13 @@ public void onRecipesReady() {
193187
// Furnace Template
194188
RecipeBuilderShaped furnace = new RecipeBuilderShaped(MOD_ID, "AAA", "AFA", "AAA");
195189
// Iron Furnace
196-
furnace.addInput('A', Item.ingotIron).addInput('F', Block.furnaceStoneIdle).create("furnace_iron", furnaceIronIdle.getDefaultStack());
190+
furnace.addInput('A', Items.INGOT_IRON).addInput('F', Blocks.FURNACE_STONE_IDLE).create("furnace_iron", furnaceIronIdle.getDefaultStack());
197191
// Gold Furnace
198-
furnace.addInput('A', Item.ingotGold).addInput('F', furnaceIronIdle).create("furnace_gold", furnaceGoldIdle.getDefaultStack());
192+
//furnace.addInput('A', Items.INGOT_GOLD).addInput('F', furnaceIronIdle).create("furnace_gold", furnaceGoldIdle.getDefaultStack());
199193
// Diamond Furnace
200-
furnace.addInput('A', Item.diamond).addInput('F', furnaceGoldIdle).create("furnace_diamond", furnaceDiamondIdle.getDefaultStack());
194+
//furnace.addInput('A', Items.DIAMOND).addInput('F', furnaceGoldIdle).create("furnace_diamond", furnaceDiamondIdle.getDefaultStack());
201195
// Steel Furnace
202-
furnace.addInput('A', Item.ingotSteel).addInput('F', furnaceGoldIdle).create("furnace_steel", furnaceSteelIdle.getDefaultStack());
196+
//furnace.addInput('A', Items.INGOT_STEEL).addInput('F', furnaceGoldIdle).create("furnace_steel", furnaceSteelIdle.getDefaultStack());
203197

204198
}
205199

src/main/java/fl205/ironfurnaces/blocks/CustomFurnace.java renamed to src/main/java/fl205/ironfurnaces/blocks/BlockLogicCustomFurnace.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
import fl205.ironfurnaces.tileEntities.TileEntityCustomFurnace;
44
import net.minecraft.core.Global;
55
import net.minecraft.core.block.Block;
6-
import net.minecraft.core.block.BlockTileEntityRotatable;
6+
import net.minecraft.core.block.BlockLogicRotatable;
7+
import net.minecraft.core.block.Blocks;
78
import net.minecraft.core.block.entity.TileEntity;
89
import net.minecraft.core.block.material.Material;
9-
import net.minecraft.core.entity.EntityItem;
10-
import net.minecraft.core.entity.player.EntityPlayer;
10+
import net.minecraft.core.entity.player.Player;
1111
import net.minecraft.core.enums.EnumDropCause;
1212
import net.minecraft.core.item.ItemStack;
1313
import net.minecraft.core.util.helper.Side;
@@ -17,14 +17,14 @@
1717

1818
import static fl205.ironfurnaces.IronFurnaces.*;
1919

20-
public abstract class CustomFurnace extends BlockTileEntityRotatable {
20+
public abstract class BlockLogicCustomFurnace extends BlockLogicRotatable {
2121
protected final boolean isActive;
2222
protected Random furnaceRand = new Random();
2323
protected static boolean keepFurnaceInventory = false;
2424
protected final int activeId;
2525
protected final int idleID;
26-
public CustomFurnace(String key, int id, Material material, boolean flag, int activeID, int idleID) {
27-
super(key, id, material);
26+
public BlockLogicCustomFurnace(Block<?> block, boolean flag, int activeID, int idleID) {
27+
super(block, Material.metal);
2828
this.isActive = flag;
2929
this.activeId = activeID;
3030
this.idleID = idleID;
@@ -36,13 +36,13 @@ public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, i
3636
case EXPLOSION:
3737
case PROPER_TOOL:
3838
case SILK_TOUCH:
39-
return new ItemStack[]{new ItemStack(Block.blocksList[idleID])};
39+
return new ItemStack[]{new ItemStack(Blocks.getBlock(idleID))};
4040
default:
4141
return null;
4242
}
4343
}
4444

45-
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
45+
public void animationTick(World world, int x, int y, int z, Random rand) {
4646
if (this.isActive) {
4747
int l = world.getBlockMetadata(x, y, z);
4848
double poxX = (double)x + 0.5;
@@ -67,17 +67,17 @@ public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
6767
}
6868
}
6969

70-
public boolean onBlockRightClicked(World world, int x, int y, int z, EntityPlayer player, Side side, double xPlaced, double yPlaced) {
70+
public boolean onBlockRightClicked(World world, int x, int y, int z, Player player, Side side, double xPlaced, double yPlaced) {
7171
if (!world.isClientSide) {
72-
TileEntityCustomFurnace tileEntityCustomFurnace = (TileEntityCustomFurnace) world.getBlockTileEntity(x, y, z);
73-
player.displayGUIFurnace(tileEntityCustomFurnace);
72+
TileEntityCustomFurnace tileEntityCustomFurnace = (TileEntityCustomFurnace) world.getTileEntity(x, y, z);
73+
player.displayFurnaceScreen(tileEntityCustomFurnace);
7474
}
7575
return true;
7676
}
7777

7878
public static void updateFurnaceBlockState(boolean lit, World world, int x, int y, int z) {
7979
int meta = world.getBlockMetadata(x, y, z);
80-
TileEntity tileentity = world.getBlockTileEntity(x, y, z);
80+
TileEntity tileentity = world.getTileEntity(x, y, z);
8181
if (tileentity == null) {
8282
String msg = "CustomFurnace is missing Tile Entity at x: " + x + " y: " + y + " z: " + z + ", block will be removed!";
8383
if (Global.BUILD_CHANNEL.isUnstableBuild()) {
@@ -89,8 +89,8 @@ public static void updateFurnaceBlockState(boolean lit, World world, int x, int
8989
} else {
9090
keepFurnaceInventory = true;
9191
int alreadyLit;
92-
int currentId = tileentity.getBlockType().id;
93-
if (currentId == furnaceIronIdle.id || currentId == furnaceGoldIdle.id || currentId == furnaceDiamondIdle.id || currentId == furnaceSteelIdle.id) {
92+
int currentId = tileentity.getBlockId();
93+
if (currentId == furnaceIronIdle.id() || currentId == furnaceGoldIdle.id() || currentId == furnaceDiamondIdle.id() || currentId == furnaceSteelIdle.id()) {
9494
alreadyLit = 0;
9595
} else {
9696
alreadyLit = 1;
@@ -104,10 +104,10 @@ public static void updateFurnaceBlockState(boolean lit, World world, int x, int
104104
keepFurnaceInventory = false;
105105
world.setBlockMetadataWithNotify(x, y, z, meta);
106106
tileentity.validate();
107-
world.setBlockTileEntity(x, y, z, tileentity);
107+
world.setTileEntity(x, y, z, tileentity);
108108
}
109109
}
110-
110+
/*
111111
public void onBlockRemoved(World world, int x, int y, int z, int data) {
112112
if (!keepFurnaceInventory) {
113113
TileEntityCustomFurnace tileEntityCustomFurnace = (TileEntityCustomFurnace) world.getBlockTileEntity(x, y, z);
@@ -138,5 +138,5 @@ public void onBlockRemoved(World world, int x, int y, int z, int data) {
138138
}
139139
140140
super.onBlockRemoved(world, x, y, z, data);
141-
}
141+
}*/
142142
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package fl205.ironfurnaces.blocks;
2+
3+
import fl205.ironfurnaces.tileEntities.TileEntityDiamondFurnace;
4+
import net.minecraft.core.block.Block;
5+
import net.minecraft.core.block.material.Material;
6+
7+
import static fl205.ironfurnaces.IronFurnaces.config;
8+
9+
public class BlockLogicDiamondFurnace extends BlockLogicCustomFurnace {
10+
public BlockLogicDiamondFurnace(Block<?> block, boolean flag) {
11+
super(block, flag, config.getInt("IDs.diamondFurnaceIdleID") + 1, config.getInt("IDs.diamondFurnaceIdleID"));
12+
block.withEntity(TileEntityDiamondFurnace::new);
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package fl205.ironfurnaces.blocks;
2+
3+
import fl205.ironfurnaces.tileEntities.TileEntityGoldFurnace;
4+
import net.minecraft.core.block.Block;
5+
import net.minecraft.core.block.material.Material;
6+
7+
import static fl205.ironfurnaces.IronFurnaces.config;
8+
9+
public class BlockLogicGoldFurnace extends BlockLogicCustomFurnace {
10+
public BlockLogicGoldFurnace(Block<?> block, boolean flag) {
11+
super(block, flag, config.getInt("IDs.goldFurnaceIdleID") + 1, config.getInt("IDs.goldFurnaceIdleID"));
12+
block.withEntity(TileEntityGoldFurnace::new);
13+
}
14+
}

0 commit comments

Comments
 (0)