Skip to content

Commit 75fa8ea

Browse files
authored
Cleanup Mod class and Proxies, Move Recipes to Java (#6)
* rework main class * rework recipes
1 parent bf155db commit 75fa8ea

21 files changed

+219
-360
lines changed
Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
11
package dan.morefurnaces;
22

33
import dan.morefurnaces.blocks.BlockMoreFurnaces;
4-
import dan.morefurnaces.items.ItemMoreFurnaces;
54
import dan.morefurnaces.items.ItemUpgrade;
65
import dan.morefurnaces.proxy.CommonProxy;
76
import dan.morefurnaces.proxy.GuiProxy;
8-
import net.minecraft.block.Block;
9-
import net.minecraft.item.Item;
10-
import net.minecraftforge.client.event.ModelRegistryEvent;
117
import net.minecraftforge.common.MinecraftForge;
12-
import net.minecraftforge.event.RegistryEvent;
138
import net.minecraftforge.fml.common.Mod;
149
import net.minecraftforge.fml.common.SidedProxy;
1510
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
1611
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
17-
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
1812
import net.minecraftforge.fml.common.network.NetworkRegistry;
19-
import net.minecraftforge.fml.common.registry.GameRegistry;
2013

2114
@Mod( modid = MoreFurnaces.MODID,
2215
name = MoreFurnaces.NAME,
@@ -29,11 +22,12 @@ public class MoreFurnaces {
2922
public static final String NAME = "GRADLE:MODNAME";
3023
public static final String VERSION = "GRADLE:VERSION";
3124

32-
public static BlockMoreFurnaces blockFurnaces;
33-
private static ItemMoreFurnaces itemBlock;
34-
public static ItemUpgrade upgrade;
25+
public static BlockMoreFurnaces BLOCK_FURNACE;
26+
public static ItemUpgrade ITEM_UPGRADE;
3527

36-
@SidedProxy(clientSide = "dan.morefurnaces.proxy.ClientProxy", serverSide = "dan.morefurnaces.proxy.CommonProxy")
28+
@SidedProxy(
29+
clientSide = "dan.morefurnaces.proxy.ClientProxy",
30+
serverSide = "dan.morefurnaces.proxy.CommonProxy")
3731
public static CommonProxy proxy;
3832

3933
@Mod.Instance(MODID)
@@ -47,33 +41,12 @@ public MoreFurnaces() {
4741
public void preInit(FMLPreInitializationEvent event) {
4842
MFLog.init(event.getModLog());
4943
Config.init(event.getSuggestedConfigurationFile());
50-
51-
blockFurnaces = new BlockMoreFurnaces();
52-
itemBlock = (ItemMoreFurnaces) new ItemMoreFurnaces(blockFurnaces).setRegistryName(blockFurnaces.getRegistryName());
53-
upgrade = new ItemUpgrade();
54-
}
55-
56-
@SubscribeEvent
57-
public void registerBlocks(RegistryEvent.Register<Block> event) {
58-
event.getRegistry().register(blockFurnaces);
59-
}
60-
61-
@SubscribeEvent
62-
public void registerItems(RegistryEvent.Register<Item> event) {
63-
event.getRegistry().registerAll(upgrade, itemBlock);
64-
}
65-
66-
@SubscribeEvent
67-
public void registerModels(ModelRegistryEvent event) {
68-
proxy.registerRenderInformation();
44+
proxy.preInit();
6945
}
7046

7147
@Mod.EventHandler
7248
public void init(FMLInitializationEvent event) {
73-
for (FurnaceType typ : FurnaceType.values()) {
74-
GameRegistry.registerTileEntity(typ.clazz, "CubeX2 " + typ.friendlyName);
75-
}
76-
49+
proxy.init();
7750
NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiProxy());
7851
}
7952
}

src/main/java/dan/morefurnaces/items/ItemUpgrade.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public EnumActionResult onItemUse(EntityPlayer playerIn, World world, BlockPos p
5151
Upgrades upgrade = Upgrades.values()[stack.getMetadata()];
5252

5353
IBlockState state = world.getBlockState(pos);
54-
if (state.getBlock() == MoreFurnaces.blockFurnaces) {
54+
if (state.getBlock() instanceof BlockMoreFurnaces) {
5555
if (useOnModFurnace(playerIn, world, pos, stack, upgrade)) return EnumActionResult.SUCCESS;
5656
} else if (state.getBlock() == Blocks.FURNACE || state.getBlock() == Blocks.LIT_FURNACE) {
5757
if (upgrade.isVanillaUpgrade()) {
@@ -126,7 +126,7 @@ private boolean upgradeVanillaFurnace(World world, BlockPos pos, TileEntityFurna
126126

127127
copyInventory(furnace, fromSlotIds, newFurnace);
128128

129-
world.setBlockState(pos, MoreFurnaces.blockFurnaces.getDefaultState().withProperty(BlockMoreFurnaces.VARIANT, to));
129+
world.setBlockState(pos, MoreFurnaces.BLOCK_FURNACE.getDefaultState().withProperty(BlockMoreFurnaces.VARIANT, to));
130130
world.setTileEntity(pos, newFurnace);
131131

132132
newFurnace.copyStateFrom(furnace, facing);
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
package dan.morefurnaces.proxy;
22

3-
43
import dan.morefurnaces.MoreFurnaces;
54
import dan.morefurnaces.items.Upgrades;
65
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
76
import net.minecraft.item.Item;
7+
import net.minecraftforge.client.event.ModelRegistryEvent;
88
import net.minecraftforge.client.model.ModelLoader;
9+
import net.minecraftforge.fml.common.Mod;
10+
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
11+
import net.minecraftforge.fml.relauncher.Side;
12+
import net.minecraftforge.fml.relauncher.SideOnly;
913

14+
@SideOnly(Side.CLIENT)
15+
@Mod.EventBusSubscriber(Side.CLIENT)
1016
public class ClientProxy extends CommonProxy {
1117

12-
@Override
13-
public void registerRenderInformation() {
14-
Item item = Item.getItemFromBlock(MoreFurnaces.blockFurnaces);
18+
@SubscribeEvent
19+
public static void registerModels(ModelRegistryEvent event) {
20+
Item item = Item.getItemFromBlock(MoreFurnaces.BLOCK_FURNACE);
1521

1622
String[] suffixes = {"iron", "gold", "diamond", "obsidian", "netherrack", "copper", "silver"};
1723
for (int i = 0; i < suffixes.length; i++) {
@@ -20,7 +26,7 @@ public void registerRenderInformation() {
2026

2127
for (Upgrades upgrade : Upgrades.values()) {
2228
ModelResourceLocation l = new ModelResourceLocation("morefurnaces:upgrade_" + upgrade.getUnlocalizedName(), "inventory");
23-
ModelLoader.setCustomModelResourceLocation(MoreFurnaces.upgrade, upgrade.ordinal(), l);
29+
ModelLoader.setCustomModelResourceLocation(MoreFurnaces.ITEM_UPGRADE, upgrade.ordinal(), l);
2430
}
2531
}
2632
}
Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,65 @@
11
package dan.morefurnaces.proxy;
22

3+
import dan.morefurnaces.FurnaceType;
4+
import dan.morefurnaces.MoreFurnaces;
5+
import dan.morefurnaces.blocks.BlockMoreFurnaces;
6+
import dan.morefurnaces.items.ItemMoreFurnaces;
7+
import dan.morefurnaces.items.ItemUpgrade;
8+
import dan.morefurnaces.recipes.Recipes;
9+
import net.minecraft.block.Block;
10+
import net.minecraft.item.Item;
11+
import net.minecraft.item.ItemBlock;
12+
import net.minecraft.item.crafting.IRecipe;
13+
import net.minecraftforge.event.RegistryEvent;
14+
import net.minecraftforge.fml.common.Mod;
15+
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
16+
import net.minecraftforge.fml.common.registry.GameRegistry;
17+
import net.minecraftforge.registries.IForgeRegistry;
18+
19+
import java.util.function.Function;
20+
21+
@Mod.EventBusSubscriber(modid = MoreFurnaces.MODID)
322
public class CommonProxy {
423

5-
public void registerRenderInformation() {
24+
public void preInit() {
25+
MoreFurnaces.BLOCK_FURNACE = new BlockMoreFurnaces();
26+
MoreFurnaces.ITEM_UPGRADE = new ItemUpgrade();
27+
}
28+
29+
public void init() {
30+
for (FurnaceType type : FurnaceType.values()) {
31+
GameRegistry.registerTileEntity(type.clazz, "CubeX2 " + type.friendlyName);
32+
}
33+
}
34+
35+
@SubscribeEvent
36+
public static void registerBlocks(RegistryEvent.Register<Block> event) {
37+
IForgeRegistry<Block> registry = event.getRegistry();
38+
39+
registry.register(MoreFurnaces.BLOCK_FURNACE);
40+
}
41+
42+
@SubscribeEvent
43+
public static void registerItems(RegistryEvent.Register<Item> event) {
44+
IForgeRegistry<Item> registry = event.getRegistry();
45+
46+
// Items
47+
registry.register(MoreFurnaces.ITEM_UPGRADE);
48+
49+
// ItemBlocks
50+
registry.register(createItemBlock(MoreFurnaces.BLOCK_FURNACE, ItemMoreFurnaces::new));
51+
}
52+
53+
@SubscribeEvent
54+
public static void registerRecipes(RegistryEvent.Register<IRecipe> event) {
55+
Recipes.registerFurnaceRecipes();
56+
Recipes.registerUpgradeRecipes();
57+
}
58+
59+
private static <T extends Block> ItemBlock createItemBlock(T block, Function<T, ItemBlock> producer) {
60+
ItemBlock itemBlock = producer.apply(block);
61+
//noinspection ConstantConditions
62+
itemBlock.setRegistryName(block.getRegistryName());
63+
return itemBlock;
664
}
765
}
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
package dan.morefurnaces.recipes;
2+
3+
import dan.morefurnaces.FurnaceType;
4+
import dan.morefurnaces.MFLog;
5+
import dan.morefurnaces.MoreFurnaces;
6+
import dan.morefurnaces.items.Upgrades;
7+
import net.minecraft.init.Blocks;
8+
import net.minecraft.init.Items;
9+
import net.minecraft.item.ItemStack;
10+
import net.minecraft.item.crafting.IRecipe;
11+
import net.minecraftforge.fml.common.registry.ForgeRegistries;
12+
import net.minecraftforge.oredict.ShapedOreRecipe;
13+
14+
import static dan.morefurnaces.FurnaceType.*;
15+
import static dan.morefurnaces.items.Upgrades.*;
16+
17+
public class Recipes {
18+
19+
public static void registerFurnaceRecipes() {
20+
21+
// Netherrack Furnace
22+
addShapedRecipe("netherrack_furnace", getFurnace(NETHERRACK),
23+
"NNN", "NFN", "NNN",
24+
'N', Blocks.NETHERRACK,
25+
'F', Blocks.FURNACE);
26+
27+
// Copper Furnace
28+
addShapedRecipe("copper_furnace", getFurnace(COPPER),
29+
"CCC", "CFC", "CCC",
30+
'C', "ingotCopper",
31+
'F', Blocks.FURNACE);
32+
33+
// Iron Furnace
34+
addShapedRecipe("iron_furnace", getFurnace(IRON),
35+
"III", "IFI", "III",
36+
'I', "ingotIron",
37+
'F', Blocks.FURNACE);
38+
39+
// Silver Furnace
40+
addShapedRecipe("silver_furnace", getFurnace(SILVER),
41+
"SSS", "SFS", "SSS",
42+
'S', "ingotSilver",
43+
'F', getFurnace(IRON));
44+
45+
// Gold Furnace
46+
addShapedRecipe("gold_furnace", getFurnace(GOLD),
47+
"GGG", "GFG", "GGG",
48+
'G', "ingotGold",
49+
'F', getFurnace(IRON));
50+
51+
// Diamond Furnace
52+
addShapedRecipe("diamond_furnace", getFurnace(DIAMOND),
53+
"DDD", "DFD", "DDD",
54+
'D', Items.DIAMOND,
55+
'F', getFurnace(GOLD));
56+
57+
// Obsidian Furnace
58+
addShapedRecipe("obsidian_furnace", getFurnace(OBSIDIAN),
59+
"OOO", "OFO", "OOO",
60+
'O', Blocks.OBSIDIAN,
61+
'F', getFurnace(DIAMOND));
62+
}
63+
64+
public static void registerUpgradeRecipes() {
65+
66+
// Stone to Netherrack Upgrade
67+
addShapedRecipe("stone_to_netherrack", getUpgrade(STONE_TO_NETHERRACK),
68+
"NNN", "NSN", "NNN",
69+
'N', Blocks.NETHERRACK,
70+
'S', Blocks.STONE);
71+
72+
// Stone to Iron Upgrade
73+
addShapedRecipe("stone_to_iron", getUpgrade(STONE_TO_IRON),
74+
"III", "ISI", "III",
75+
'I', "ingotIron",
76+
'S', Blocks.STONE);
77+
78+
// Stone to Copper Upgrade
79+
addShapedRecipe("stone_to_copper", getUpgrade(STONE_TO_COPPER),
80+
"CCC", "CSC", "CCC",
81+
'C', "ingotCopper",
82+
'S', Blocks.STONE);
83+
84+
// Iron to Silver Upgrade
85+
addShapedRecipe("iron_to_silver", getUpgrade(IRON_TO_SILVER),
86+
"SSS", "SIS", "SSS",
87+
'S', "ingotSilver",
88+
'I', "nuggetIron");
89+
90+
// Copper to Silver Upgrade
91+
addShapedRecipe("copper_to_silver", getUpgrade(COPPER_TO_SILVER),
92+
"SSS", "SCS", "SSS",
93+
'S', "ingotSilver",
94+
'C', "nuggetCopper");
95+
96+
// Iron to Gold Upgrade
97+
addShapedRecipe("iron_to_gold", getUpgrade(IRON_TO_GOLD),
98+
"GGG", "GIG", "GGG",
99+
'G', "ingotGold",
100+
'I', "nuggetIron");
101+
102+
// Iron to Obsidian Upgrade
103+
addShapedRecipe("iron_to_obsidian", getUpgrade(IRON_TO_OBSIDIAN),
104+
"OOO", "OIO", "OOO",
105+
'O', Blocks.OBSIDIAN,
106+
'I', "nuggetIron");
107+
108+
// Gold to Diamond Upgrade
109+
addShapedRecipe("gold_to_diamond", getUpgrade(GOLD_TO_DIAMOND),
110+
"DDD", "DGD", "DDD",
111+
'D', Items.DIAMOND,
112+
'G', "nuggetGold");
113+
}
114+
115+
private static void addShapedRecipe(String regName, ItemStack result, Object... recipe) {
116+
if (result.isEmpty()) {
117+
MFLog.logger.error("Result cannot be an empty ItemStack. Recipe: {}", regName);
118+
MFLog.logger.error("Stacktrace:", new IllegalArgumentException());
119+
return;
120+
}
121+
122+
IRecipe shapedOreRecipe = new ShapedOreRecipe(null, result.copy(), recipe)
123+
.setMirrored(false)
124+
.setRegistryName(regName);
125+
ForgeRegistries.RECIPES.register(shapedOreRecipe);
126+
}
127+
128+
private static ItemStack getUpgrade(Upgrades type) {
129+
return new ItemStack(MoreFurnaces.ITEM_UPGRADE, 1, type.ordinal());
130+
}
131+
132+
private static ItemStack getFurnace(FurnaceType type) {
133+
return new ItemStack(MoreFurnaces.BLOCK_FURNACE, 1, type.ordinal());
134+
}
135+
}

src/main/java/dan/morefurnaces/tileentity/TileEntityIronFurnace.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public void copyStateFrom(TileEntityIronFurnace furnace) {
7575
currentItemBurnTime = furnace.currentItemBurnTime;
7676
facing = furnace.facing;
7777
isActive = furnace.isActive;
78-
world.addBlockEvent(pos, MoreFurnaces.blockFurnaces, 2, (byte) (isActive ? 1 : 0));
78+
world.addBlockEvent(pos, MoreFurnaces.BLOCK_FURNACE, 2, (byte) (isActive ? 1 : 0));
7979
}
8080

8181
public void copyStateFrom(TileEntityFurnace furnace, byte facing) {
@@ -84,7 +84,7 @@ public void copyStateFrom(TileEntityFurnace furnace, byte facing) {
8484
currentItemBurnTime = furnace.getField(1);
8585
setFacing(facing);
8686
isActive = furnace.isBurning();
87-
world.addBlockEvent(pos, MoreFurnaces.blockFurnaces, 2, (byte) (isActive ? 1 : 0));
87+
world.addBlockEvent(pos, MoreFurnaces.BLOCK_FURNACE, 2, (byte) (isActive ? 1 : 0));
8888
}
8989

9090
public int getSpeed() {
@@ -101,7 +101,7 @@ public byte getFacing() {
101101

102102
public void setFacing(byte value) {
103103
facing = value;
104-
world.addBlockEvent(pos, MoreFurnaces.blockFurnaces, 1, facing & 0xFF);
104+
world.addBlockEvent(pos, MoreFurnaces.BLOCK_FURNACE, 1, facing & 0xFF);
105105
}
106106

107107
public boolean isActive() {
@@ -186,8 +186,8 @@ public boolean isBurning() {
186186
@Override
187187
public void update() {
188188
if (++ticksSinceSync % 20 * 4 == 0) {
189-
world.addBlockEvent(pos, MoreFurnaces.blockFurnaces, 1, facing & 0xFF);
190-
world.addBlockEvent(pos, MoreFurnaces.blockFurnaces, 2, (byte) (isActive ? 1 : 0));
189+
world.addBlockEvent(pos, MoreFurnaces.BLOCK_FURNACE, 1, facing & 0xFF);
190+
world.addBlockEvent(pos, MoreFurnaces.BLOCK_FURNACE, 2, (byte) (isActive ? 1 : 0));
191191
}
192192

193193
boolean wasBurning = this.isBurning();

src/main/resources/assets/morefurnaces/recipes/copper_furnace.json

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)