Skip to content

Commit 3f759a1

Browse files
Most functionality updated
1 parent ccca559 commit 3f759a1

10 files changed

+53
-43
lines changed

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

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
package fl205.ironfurnaces;
22

3+
import fl205.ironfurnaces.blocks.BlockLogicDiamondFurnace;
4+
import fl205.ironfurnaces.blocks.BlockLogicGoldFurnace;
5+
import fl205.ironfurnaces.blocks.BlockLogicSteelFurnace;
6+
import fl205.ironfurnaces.tileEntities.TileEntityDiamondFurnace;
7+
import fl205.ironfurnaces.tileEntities.TileEntityGoldFurnace;
8+
import fl205.ironfurnaces.tileEntities.TileEntityIronFurnace;
9+
import fl205.ironfurnaces.tileEntities.TileEntitySteelFurnace;
310
import net.fabricmc.api.ModInitializer;
411
import net.minecraft.client.render.block.model.BlockModelHorizontalRotation;
512
import net.minecraft.core.block.Block;
6-
import net.minecraft.core.block.BlockLogic;
7-
import net.minecraft.core.block.BlockLogicSupplier;
813
import net.minecraft.core.block.Blocks;
9-
import net.minecraft.core.block.material.Material;
1014
import net.minecraft.core.block.tag.BlockTags;
1115
import net.minecraft.core.item.Items;
1216
import net.minecraft.core.sound.BlockSounds;
1317
import org.slf4j.Logger;
1418
import org.slf4j.LoggerFactory;
1519
import turniplabs.halplibe.helper.BlockBuilder;
20+
import turniplabs.halplibe.helper.EntityHelper;
1621
import turniplabs.halplibe.helper.RecipeBuilder;
1722
import turniplabs.halplibe.helper.recipeBuilders.RecipeBuilderShaped;
1823
import turniplabs.halplibe.util.GameStartEntrypoint;
@@ -74,7 +79,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
7479
"ironfurnaces:block/ironfurnaceside",
7580
"ironfurnaces:block/ironfurnaceside",
7681
"ironfurnaces:block/ironfurnaceside"))
77-
.build("furnace.iron.idle", "furnace_iron_idle", config.getInt("IDs.ironFurnaceIdleID"), b -> new BlockLogic(b, Material.metal));
82+
.build("furnace.iron.idle", "furnace_iron_idle", config.getInt("IDs.ironFurnaceIdleID"), b -> new BlockLogicIronFurnace(b, false));
7883

7984
public static final Block<?> furnaceIronActive = furnace
8085
.setLuminance(13)
@@ -87,7 +92,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
8792
"ironfurnaces:block/ironfurnaceside",
8893
"ironfurnaces:block/ironfurnaceside",
8994
"ironfurnaces:block/ironfurnaceside"))
90-
.build("furnace.iron.active", "furnace_iron_active", furnaceIronIdle.id() + 1, b -> new BlockLogic(b, Material.metal));
95+
.build("furnace.iron.active", "furnace_iron_active", furnaceIronIdle.id() + 1, b -> new BlockLogicIronFurnace(b, true));
9196

9297

9398
public static final Block<?> furnaceGoldIdle = furnace
@@ -99,7 +104,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
99104
"ironfurnaces:block/goldfurnaceside",
100105
"ironfurnaces:block/goldfurnaceside",
101106
"ironfurnaces:block/goldfurnaceside"))
102-
.build("furnace.gold.idle", "furnace_golf_idle", config.getInt("IDs.goldFurnaceIdleID"), b -> new BlockLogic(b, Material.metal));
107+
.build("furnace.gold.idle", "furnace_golf_idle", config.getInt("IDs.goldFurnaceIdleID"), b -> new BlockLogicGoldFurnace(b, false));
103108

104109
public static final Block<?> furnaceGoldActive = furnace
105110
.setLuminance(13)
@@ -112,7 +117,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
112117
"ironfurnaces:block/goldfurnaceside",
113118
"ironfurnaces:block/goldfurnaceside",
114119
"ironfurnaces:block/goldfurnaceside"))
115-
.build("furnace.gold.active", "furnace.gold.active", furnaceGoldIdle.id() + 1, b -> new BlockLogic(b, Material.metal));
120+
.build("furnace.gold.active", "furnace.gold.active", furnaceGoldIdle.id() + 1, b -> new BlockLogicGoldFurnace(b, true));
116121

117122
public static final Block<?> furnaceDiamondIdle = furnace
118123
.setBlockModel(block -> new BlockModelHorizontalRotation<>(block)
@@ -123,7 +128,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
123128
"ironfurnaces:block/diamondfurnaceside",
124129
"ironfurnaces:block/diamondfurnaceside",
125130
"ironfurnaces:block/diamondfurnaceside"))
126-
.build("furnace.diamond.idle", "furnace_diamond_idle", config.getInt("IDs.diamondFurnaceIdleID"), b -> new BlockLogic(b, Material.metal));
131+
.build("furnace.diamond.idle", "furnace_diamond_idle", config.getInt("IDs.diamondFurnaceIdleID"), b -> new BlockLogicDiamondFurnace(b, false));
127132

128133
public static final Block<?> furnaceDiamondActive = furnace
129134
.setLuminance(13)
@@ -136,7 +141,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
136141
"ironfurnaces:block/diamondfurnaceside",
137142
"ironfurnaces:block/diamondfurnaceside",
138143
"ironfurnaces:block/diamondfurnaceside"))
139-
.build("furnace.diamond.active", "furnace_diamond_active", furnaceDiamondIdle.id() + 1, b -> new BlockLogic(b, Material.metal));
144+
.build("furnace.diamond.active", "furnace_diamond_active", furnaceDiamondIdle.id() + 1, b -> new BlockLogicDiamondFurnace(b, true));
140145

141146
public static final Block<?> furnaceSteelIdle = furnace
142147
.setResistance(2000.0F)
@@ -148,7 +153,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
148153
"ironfurnaces:block/steelfurnaceside",
149154
"ironfurnaces:block/steelfurnaceside",
150155
"ironfurnaces:block/steelfurnaceside"))
151-
.build("furnace.steel.idle", "furnace_steel_idle", config.getInt("IDs.steelFurnaceIdleID"), b -> new BlockLogic(b, Material.metal));
156+
.build("furnace.steel.idle", "furnace_steel_idle", config.getInt("IDs.steelFurnaceIdleID"), b -> new BlockLogicSteelFurnace(b, false));
152157

153158
public static final Block<?> furnaceSteelActive = furnace
154159
.setResistance(2000.0F)
@@ -162,7 +167,7 @@ public class IronFurnaces implements ModInitializer, GameStartEntrypoint, Recipe
162167
"ironfurnaces:block/steelfurnaceside",
163168
"ironfurnaces:block/steelfurnaceside",
164169
"ironfurnaces:block/steelfurnaceside"))
165-
.build("furnace.steel.active", "furnace_steel_active", furnaceSteelIdle.id() + 1,b -> new BlockLogic(b, Material.metal));
170+
.build("furnace.steel.active", "furnace_steel_active", furnaceSteelIdle.id() + 1,b -> new BlockLogicSteelFurnace(b, true));
166171

167172
@Override
168173
public void onInitialize() {
@@ -172,10 +177,10 @@ public void onInitialize() {
172177
@Override
173178
public void beforeGameStart() {
174179
// Tile Entities
175-
//EntityHelper.createTileEntity(TileEntityIronFurnace.class, "Iron Furnace");
176-
//EntityHelper.createTileEntity(TileEntityGoldFurnace.class, "Gold Furnace");
177-
//EntityHelper.createTileEntity(TileEntityDiamondFurnace.class, "Diamond Furnace");
178-
//EntityHelper.createTileEntity(TileEntitySteelFurnace.class, "Steel Furnace");
180+
EntityHelper.createBlockEntity(TileEntityIronFurnace.class, "Iron Furnace");
181+
EntityHelper.createBlockEntity(TileEntityGoldFurnace.class, "Gold Furnace");
182+
EntityHelper.createBlockEntity(TileEntityDiamondFurnace.class, "Diamond Furnace");
183+
EntityHelper.createBlockEntity(TileEntitySteelFurnace.class, "Steel Furnace");
179184
}
180185

181186
@Override
@@ -190,11 +195,11 @@ public void onRecipesReady() {
190195
// Iron Furnace
191196
furnace.addInput('A', Items.INGOT_IRON).addInput('F', Blocks.FURNACE_STONE_IDLE).create("furnace_iron", furnaceIronIdle.getDefaultStack());
192197
// Gold Furnace
193-
//furnace.addInput('A', Items.INGOT_GOLD).addInput('F', furnaceIronIdle).create("furnace_gold", furnaceGoldIdle.getDefaultStack());
198+
furnace.addInput('A', Items.INGOT_GOLD).addInput('F', furnaceIronIdle).create("furnace_gold", furnaceGoldIdle.getDefaultStack());
194199
// Diamond Furnace
195-
//furnace.addInput('A', Items.DIAMOND).addInput('F', furnaceGoldIdle).create("furnace_diamond", furnaceDiamondIdle.getDefaultStack());
200+
furnace.addInput('A', Items.DIAMOND).addInput('F', furnaceGoldIdle).create("furnace_diamond", furnaceDiamondIdle.getDefaultStack());
196201
// Steel Furnace
197-
//furnace.addInput('A', Items.INGOT_STEEL).addInput('F', furnaceGoldIdle).create("furnace_steel", furnaceSteelIdle.getDefaultStack());
202+
furnace.addInput('A', Items.INGOT_STEEL).addInput('F', furnaceGoldIdle).create("furnace_steel", furnaceSteelIdle.getDefaultStack());
198203

199204
}
200205

src/main/java/fl205/ironfurnaces/blocks/BlockLogicCustomFurnace.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,21 @@
1212
import net.minecraft.core.item.ItemStack;
1313
import net.minecraft.core.util.helper.Side;
1414
import net.minecraft.core.world.World;
15+
import org.jetbrains.annotations.NotNull;
1516

1617
import java.util.Random;
1718

1819
import static fl205.ironfurnaces.IronFurnaces.*;
1920

2021
public abstract class BlockLogicCustomFurnace extends BlockLogicRotatable {
2122
protected final boolean isActive;
22-
protected Random furnaceRand = new Random();
23+
//protected Random furnaceRand = new Random();
2324
protected static boolean keepFurnaceInventory = false;
2425
protected final int activeId;
2526
protected final int idleID;
26-
public BlockLogicCustomFurnace(Block<?> block, boolean flag, int activeID, int idleID) {
27+
public BlockLogicCustomFurnace(Block<?> block, boolean isActive, int activeID, int idleID) {
2728
super(block, Material.metal);
28-
this.isActive = flag;
29+
this.isActive = isActive;
2930
this.activeId = activeID;
3031
this.idleID = idleID;
3132
}
@@ -36,6 +37,7 @@ public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int x, i
3637
case EXPLOSION:
3738
case PROPER_TOOL:
3839
case SILK_TOUCH:
40+
case PISTON_CRUSH:
3941
return new ItemStack[]{new ItemStack(Blocks.getBlock(idleID))};
4042
default:
4143
return null;
@@ -75,7 +77,7 @@ public boolean onBlockRightClicked(World world, int x, int y, int z, Player play
7577
return true;
7678
}
7779

78-
public static void updateFurnaceBlockState(boolean lit, World world, int x, int y, int z) {
80+
public static void updateFurnaceBlockState(boolean lit, @NotNull World world, int x, int y, int z, int idleID) {
7981
int meta = world.getBlockMetadata(x, y, z);
8082
TileEntity tileentity = world.getTileEntity(x, y, z);
8183
if (tileentity == null) {
@@ -84,13 +86,13 @@ public static void updateFurnaceBlockState(boolean lit, World world, int x, int
8486
throw new RuntimeException(msg);
8587
} else {
8688
world.setBlockWithNotify(x, y, z, 0);
87-
System.out.println(msg);
89+
LOGGER.warn(msg);
8890
}
8991
} else {
9092
keepFurnaceInventory = true;
9193
int alreadyLit;
9294
int currentId = tileentity.getBlockId();
93-
if (currentId == furnaceIronIdle.id() || currentId == furnaceGoldIdle.id() || currentId == furnaceDiamondIdle.id() || currentId == furnaceSteelIdle.id()) {
95+
if (tileentity.getBlockId() == idleID) {
9496
alreadyLit = 0;
9597
} else {
9698
alreadyLit = 1;

src/main/java/fl205/ironfurnaces/blocks/BlockLogicDiamondFurnace.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import fl205.ironfurnaces.tileEntities.TileEntityDiamondFurnace;
44
import net.minecraft.core.block.Block;
5-
import net.minecraft.core.block.material.Material;
65

76
import static fl205.ironfurnaces.IronFurnaces.config;
87

98
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"));
9+
public BlockLogicDiamondFurnace(Block<?> block, boolean isActive) {
10+
super(block, isActive, config.getInt("IDs.diamondFurnaceIdleID") + 1, config.getInt("IDs.diamondFurnaceIdleID"));
1211
block.withEntity(TileEntityDiamondFurnace::new);
1312
}
1413
}

src/main/java/fl205/ironfurnaces/blocks/BlockLogicGoldFurnace.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import fl205.ironfurnaces.tileEntities.TileEntityGoldFurnace;
44
import net.minecraft.core.block.Block;
5-
import net.minecraft.core.block.material.Material;
65

76
import static fl205.ironfurnaces.IronFurnaces.config;
87

98
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"));
9+
public BlockLogicGoldFurnace(Block<?> block, boolean isActive) {
10+
super(block, isActive, config.getInt("IDs.goldFurnaceIdleID") + 1, config.getInt("IDs.goldFurnaceIdleID"));
1211
block.withEntity(TileEntityGoldFurnace::new);
1312
}
1413
}

src/main/java/fl205/ironfurnaces/blocks/BlockLogicIronFurnace.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import fl205.ironfurnaces.tileEntities.TileEntityIronFurnace;
44
import net.minecraft.core.block.Block;
5-
import net.minecraft.core.block.material.Material;
65

76
import static fl205.ironfurnaces.IronFurnaces.config;
87

98
public class BlockLogicIronFurnace extends BlockLogicCustomFurnace {
10-
public BlockLogicIronFurnace(Block<?> block, boolean flag) {
11-
super(block, flag, config.getInt("IDs.ironFurnaceIdleID") + 1, config.getInt("IDs.ironFurnaceIdleID"));
9+
public BlockLogicIronFurnace(Block<?> block, boolean isActive) {
10+
super(block, isActive, config.getInt("IDs.ironFurnaceIdleID") + 1, config.getInt("IDs.ironFurnaceIdleID"));
1211
block.withEntity(TileEntityIronFurnace::new);
1312
}
1413
}

src/main/java/fl205/ironfurnaces/blocks/BlockLogicSteelFurnace.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import fl205.ironfurnaces.tileEntities.TileEntitySteelFurnace;
44
import net.minecraft.core.block.Block;
5-
import net.minecraft.core.block.material.Material;
65

76
import static fl205.ironfurnaces.IronFurnaces.config;
87

98
public class BlockLogicSteelFurnace extends BlockLogicCustomFurnace {
10-
public BlockLogicSteelFurnace(Block<?> block, boolean flag) {
11-
super(block, flag, config.getInt("IDs.steelFurnaceIdleID") + 1, config.getInt("IDs.steelFurnaceIdleID"));
9+
public BlockLogicSteelFurnace(Block<?> block, boolean isActive) {
10+
super(block, isActive, config.getInt("IDs.steelFurnaceIdleID") + 1, config.getInt("IDs.steelFurnaceIdleID"));
1211
block.withEntity(TileEntitySteelFurnace::new);
1312
}
1413
}

src/main/java/fl205/ironfurnaces/tileEntities/TileEntityCustomFurnace.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public abstract class TileEntityCustomFurnace extends TileEntityFurnace {
1616

1717
protected final int speedModifier;
1818
protected final int fuelYieldModifier;
19-
protected final Block furnaceIdle;
20-
public TileEntityCustomFurnace(int speedModifier, int fuelYieldModifier, Block furnaceIdle){
19+
protected final Block<?> furnaceIdle;
20+
public TileEntityCustomFurnace(int speedModifier, int fuelYieldModifier, Block<?> furnaceIdle){
2121
this.speedModifier = speedModifier;
2222
this.fuelYieldModifier = fuelYieldModifier;
2323
this.furnaceIdle = furnaceIdle;
@@ -39,7 +39,7 @@ public void tick() {
3939
this.furnaceItemStacks[1] = null;
4040
}
4141

42-
BlockLogicCustomFurnace.updateFurnaceBlockState(true, this.worldObj, this.x, this.y, this.z);
42+
this.updateFurnace(true);
4343
furnaceUpdated = true;
4444
}
4545

@@ -73,7 +73,7 @@ public void tick() {
7373

7474
if (isBurnTimeHigherThan0 != this.currentBurnTime > 0) {
7575
furnaceUpdated = true;
76-
BlockLogicCustomFurnace.updateFurnaceBlockState(this.currentBurnTime > 0, this.worldObj, this.x, this.y, this.z);
76+
this.updateFurnace(false);
7777
}
7878
}
7979

@@ -109,6 +109,15 @@ private boolean canSmelt() {
109109
}
110110
}
111111

112+
protected void updateFurnace(boolean forceLit) {
113+
if (this.worldObj != null) {
114+
BlockLogicCustomFurnace.updateFurnaceBlockState(forceLit | this.currentBurnTime > 0, this.worldObj, this.x, this.y, this.z, furnaceIdle.id());
115+
} else if (this.carriedBlock != null) {
116+
this.carriedBlock.blockId = forceLit | this.currentBurnTime > 0 ? furnaceIdle.id() + 1 : furnaceIdle.id();
117+
}
118+
119+
}
120+
112121
private int getBurnTimeFromItem(ItemStack itemStack) {
113122
return itemStack == null ? 0 : ((fuelYieldModifier * (LookupFuelFurnace.instance.getFuelYield(itemStack.getItem().id)))/speedModifier);
114123
}

src/main/java/fl205/ironfurnaces/tileEntities/TileEntityGoldFurnace.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package fl205.ironfurnaces.tileEntities;
22

33
import fl205.ironfurnaces.IronFurnaces;
4-
import fl205.ironfurnaces.blocks.BlockLogicCustomFurnace;
54

65
import static fl205.ironfurnaces.IronFurnaces.config;
6+
77
public class TileEntityGoldFurnace extends TileEntityCustomFurnace {
88
public TileEntityGoldFurnace(){
99
super(config.getInt("Speed.goldFurnace"), config.getInt("Fuel Yield.goldFurnace"), IronFurnaces.furnaceGoldIdle);

src/main/java/fl205/ironfurnaces/tileEntities/TileEntityIronFurnace.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package fl205.ironfurnaces.tileEntities;
22

33
import fl205.ironfurnaces.IronFurnaces;
4-
import fl205.ironfurnaces.blocks.BlockLogicCustomFurnace;
54

65
import static fl205.ironfurnaces.IronFurnaces.config;
76

src/main/java/fl205/ironfurnaces/tileEntities/TileEntitySteelFurnace.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package fl205.ironfurnaces.tileEntities;
22

33
import fl205.ironfurnaces.IronFurnaces;
4-
import fl205.ironfurnaces.blocks.BlockLogicCustomFurnace;
54

65
import static fl205.ironfurnaces.IronFurnaces.config;
76

0 commit comments

Comments
 (0)