|
1 | 1 | package com.mcmoddev.nethermetals.init; |
2 | 2 |
|
| 3 | +import java.util.Arrays; |
| 4 | +import java.util.List; |
| 5 | + |
3 | 6 | import com.mcmoddev.lib.block.*; |
4 | 7 | import com.mcmoddev.lib.data.Names; |
5 | 8 | import com.mcmoddev.lib.data.SharedStrings; |
|
17 | 20 | * |
18 | 21 | */ |
19 | 22 | public class NetherBlocks extends com.mcmoddev.lib.init.Blocks { |
20 | | - |
21 | | - private static boolean initDone = false; |
22 | | - |
23 | 23 | /** |
24 | 24 | * |
25 | 25 | */ |
26 | 26 | public static void init() { |
27 | | - if (initDone) { |
28 | | - return; |
29 | | - } |
30 | | - |
31 | 27 | Materials.init(); |
32 | 28 | ItemGroups.init(); |
33 | 29 |
|
34 | | - createVanillaNetherOreWrapper("coal"); |
35 | | - createVanillaNetherOreWrapper("diamond"); |
36 | | - createVanillaNetherOreWrapper("emerald"); |
37 | | - createVanillaNetherOreWrapper("gold"); |
38 | | - createVanillaNetherOreWrapper("iron"); |
39 | | - createVanillaNetherOreWrapper("lapis"); |
40 | | - createVanillaNetherOreWrapper("redstone"); |
41 | | - |
42 | | - if (Loader.isModLoaded("basemetals")) { |
43 | | - createNetherOreWrapper("antimony"); |
44 | | - createNetherOreWrapper("bismuth"); |
45 | | - createNetherOreWrapper("copper"); |
46 | | - createNetherOreWrapper("lead"); |
47 | | - createNetherOreWrapper("mercury"); |
48 | | - createNetherOreWrapper("nickel"); |
49 | | - createNetherOreWrapper("platinum"); |
50 | | - createNetherOreWrapper("silver"); |
51 | | - createNetherOreWrapper("tin"); |
52 | | - createNetherOreWrapper("zinc"); |
53 | | - } |
54 | | - |
55 | | - if (Loader.isModLoaded("modernmetals")) { |
56 | | - createNetherOreWrapper("aluminum"); |
57 | | - createNetherOreWrapper("cadmium"); |
58 | | - createNetherOreWrapper("chromium"); |
59 | | - createNetherOreWrapper("iridium"); |
60 | | - createNetherOreWrapper("magnesium"); |
61 | | - createNetherOreWrapper("manganese"); |
62 | | - createNetherOreWrapper("osmium"); |
63 | | - createNetherOreWrapper("plutonium"); |
64 | | - createNetherOreWrapper("rutile"); |
65 | | - createNetherOreWrapper("tantalum"); |
66 | | - createNetherOreWrapper("titanium"); |
67 | | - createNetherOreWrapper("tungsten"); |
68 | | - createNetherOreWrapper("uranium"); |
69 | | - createNetherOreWrapper("zirconium"); |
70 | | - } |
71 | | - |
72 | | - initDone = true; |
| 30 | + List<String> knownMaterials = Arrays.asList("coal", "diamond", "emerald", "gold", "iron", "lapis", |
| 31 | + "redstone", "antimony", "bismuth", "copper", "lead", "mercury", "nickel", "platinum", |
| 32 | + "silver", "tin", "zinc", "aluminum", "cadmium", "chromium", "iridium", "magnesium", |
| 33 | + "manganese", "osmium", "plutonium", "rutile", "tantalum", "titanium", "tungsten", |
| 34 | + "uranium", "zirconium"); |
| 35 | + Materials.getAllMaterials().stream() |
| 36 | + .map(mat -> mat.getName()) |
| 37 | + .filter(knownMaterials::contains) |
| 38 | + .forEach(NetherBlocks::createNetherOreWrapper); |
73 | 39 | } |
74 | 40 |
|
75 | 41 | private static void createVanillaNetherOreWrapper(String materialName) { |
76 | 42 | final MMDMaterial material = Materials.getMaterialByName(materialName); |
77 | | - material.addNewBlock(Names.NETHERORE, addBlock(new BlockMMDNetherOre(material), Names.NETHERORE.toString(), material, ItemGroups.getTab(SharedStrings.TAB_BLOCKS))); |
78 | | - final Block b = material.getBlock(Names.NETHERORE); |
79 | | - final String oredict = getOredictFromName(Names.NETHERORE); |
80 | | - if ((oredict != null) && (b != null)) { |
81 | | - Oredicts.registerOre(oredict + material.getCapitalizedName(), b); |
82 | | - } |
| 43 | + material.addNewBlock(Names.NETHERORE, addBlock(new BlockMMDNetherOre(material), Names.NETHERORE.toString(), material, ItemGroups.getTab(SharedStrings.TAB_BLOCKS))); |
| 44 | + final Block b = material.getBlock(Names.NETHERORE); |
| 45 | + final String oredict = getOredictFromName(Names.NETHERORE); |
| 46 | + if ((oredict != null) && (b != null)) { |
| 47 | + Oredicts.registerOre(oredict + material.getCapitalizedName(), b); |
| 48 | + } |
83 | 49 | } |
84 | 50 |
|
85 | | - private static void createNetherOreWrapper(String materialName ) { |
86 | | - if (Materials.hasMaterial(materialName)) { |
87 | | - create(Names.NETHERORE, materialName); |
88 | | - } |
89 | | - } |
| 51 | + private static void createBasicNetherOreWrapper(String materialName ) { |
| 52 | + create(Names.NETHERORE, materialName); |
| 53 | + } |
| 54 | + |
| 55 | + private static void createNetherOreWrapper(String materialName) { |
| 56 | + List<String> vanillaMats = Arrays.asList("coal", "diamond", "emerald", "gold", "iron", "lapis", "redstone"); |
| 57 | + if (vanillaMats.contains(materialName)) |
| 58 | + createVanillaNetherOreWrapper(materialName); |
| 59 | + else |
| 60 | + createBasicNetherOreWrapper(materialName); |
| 61 | + } |
90 | 62 | } |
0 commit comments