Skip to content

Commit d48fbe2

Browse files
committed
1.0.2; fix #16
Finished #11
1 parent 98df9f5 commit d48fbe2

File tree

4 files changed

+84
-3
lines changed

4 files changed

+84
-3
lines changed

src/main/java/com/github/peeftube/spiromodnext/SpiroMod.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.github.peeftube.spiromodnext;
22

3+
import com.github.peeftube.spiromodnext.core.init.InitializeIBRT;
34
import com.github.peeftube.spiromodnext.core.init.Registry;
45
import com.mojang.logging.LogUtils;
56
import net.minecraft.client.Minecraft;
7+
import net.minecraft.client.renderer.ItemBlockRenderTypes;
8+
import net.minecraft.client.renderer.RenderType;
69
import net.minecraft.core.registries.BuiltInRegistries;
710
import net.minecraft.core.registries.Registries;
811
import net.minecraft.network.chat.Component;
@@ -23,6 +26,7 @@
2326
import net.neoforged.fml.config.ModConfig;
2427
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
2528
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
29+
import net.neoforged.neoforge.client.ChunkRenderTypeSet;
2630
import net.neoforged.neoforge.common.NeoForge;
2731
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
2832
import net.neoforged.neoforge.event.server.ServerStartingEvent;
@@ -39,7 +43,7 @@ public class SpiroMod
3943
// Define mod id in a common place for everything to reference
4044
public static final String MOD_ID = "spiromodnext";
4145
// Directly reference a slf4j logger
42-
private static final Logger LOGGER = LogUtils.getLogger();
46+
public static final Logger LOGGER = LogUtils.getLogger();
4347

4448
// The constructor for the mod class is the first code that is run when your mod is loaded.
4549
// FML will recognize some parameter types like IEventBus or ModContainer and pass them in automatically.
@@ -107,6 +111,8 @@ public static void onClientSetup(FMLClientSetupEvent event)
107111
// Some client setup code
108112
LOGGER.info("HELLO FROM CLIENT SETUP");
109113
LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName());
114+
115+
InitializeIBRT.go();
110116
}
111117
}
112118
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.github.peeftube.spiromodnext.core.init;
2+
3+
import com.github.peeftube.spiromodnext.SpiroMod;
4+
import com.github.peeftube.spiromodnext.core.init.registry.data.OreCollection;
5+
import com.github.peeftube.spiromodnext.core.init.registry.data.OreMaterial;
6+
import com.github.peeftube.spiromodnext.util.ore.BaseStone;
7+
import com.github.peeftube.spiromodnext.util.ore.Coupling;
8+
import net.minecraft.client.renderer.ItemBlockRenderTypes;
9+
import net.minecraft.client.renderer.RenderType;
10+
import net.minecraft.resources.ResourceLocation;
11+
import net.minecraft.world.level.block.Block;
12+
import net.minecraft.world.level.block.Blocks;
13+
import net.neoforged.neoforge.client.ChunkRenderTypeSet;
14+
import net.neoforged.neoforge.client.model.generators.BlockModelBuilder;
15+
import net.neoforged.neoforge.client.model.generators.ConfiguredModel;
16+
17+
import java.util.Map;
18+
19+
public class InitializeIBRT
20+
{
21+
public static void go()
22+
{
23+
// Ore handling.
24+
oreSettings(Registry.COAL_ORES);
25+
oreSettings(Registry.IRON_ORES);
26+
oreSettings(Registry.COPPER_ORES);
27+
oreSettings(Registry.GOLD_ORES);
28+
oreSettings(Registry.LAPIS_ORES);
29+
oreSettings(Registry.REDSTONE_ORES);
30+
oreSettings(Registry.EMERALD_ORES);
31+
oreSettings(Registry.DIAMOND_ORES);
32+
oreSettings(Registry.QUARTZ_ORES);
33+
}
34+
35+
protected static void oreSettings(OreCollection set)
36+
{
37+
// Flags for whether we should ignore block-model creation.
38+
boolean ignoreStone = false; // For ignoring default stone, assumes true for deepslate as well
39+
boolean ignoreNether = false; // For ignoring default Netherrack ore
40+
// NOTE: these two may be used in an OR statement to determine if this is a vanilla block. If so,
41+
// code should ignore the raw ore blocks.
42+
// TODO: add handler for this!
43+
44+
// Prepare set data.
45+
OreMaterial material = set.getMat();
46+
Map<BaseStone, Coupling> bulkData = set.getBulkData();
47+
48+
if (material == OreMaterial.COAL || material == OreMaterial.IRON || material == OreMaterial.COPPER
49+
|| material == OreMaterial.GOLD || material == OreMaterial.LAPIS || material == OreMaterial.REDSTONE
50+
|| material == OreMaterial.EMERALD || material == OreMaterial.DIAMOND)
51+
{ ignoreStone = true; }
52+
53+
if (material == OreMaterial.GOLD || material == OreMaterial.QUARTZ)
54+
{ ignoreNether = true; }
55+
56+
for (BaseStone s : BaseStone.values())
57+
{
58+
if (((s == BaseStone.STONE || s == BaseStone.DEEPSLATE) && ignoreStone)
59+
|| ((s == BaseStone.NETHERRACK) && ignoreNether))
60+
{ continue; } // Do nothing, we're using a material which already uses this combination...
61+
62+
// Make this code easier to read, PLEASE..
63+
Block b = bulkData.get(s).block().get();
64+
65+
SpiroMod.LOGGER.info("RUNNING: " + s.get().toUpperCase() + material.get().toUpperCase());
66+
67+
// Change render type status.
68+
ItemBlockRenderTypes.setRenderLayer(b, ChunkRenderTypeSet.of(RenderType.solid(), RenderType.translucent()));
69+
}
70+
}
71+
}

src/main/java/com/github/peeftube/spiromodnext/core/init/registry/data/OreCollection.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ private static Coupling findPreset(BaseStone b, OreMaterial m)
7979

8080
private static Coupling createNew(BaseStone b, String m, int li)
8181
{
82-
Supplier<Block> block = Registry.regBlock(b.get() + m, () -> new Block(b.getProps().lightLevel(s -> li)));
82+
Supplier<Block> block = Registry.regBlock(b.get() + m, () -> new Block(b.getProps().noOcclusion()
83+
.lightLevel(s -> li)));
8384
Supplier<Item> item = Registry.regSimpleBlockItem((DeferredBlock<Block>) block);
8485

8586
return new Coupling(block, item);

src/main/java/com/github/peeftube/spiromodnext/datagen/modules/BlockstateDataProv.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@
66
import com.github.peeftube.spiromodnext.core.init.registry.data.OreMaterial;
77
import com.github.peeftube.spiromodnext.util.ore.BaseStone;
88
import com.github.peeftube.spiromodnext.util.ore.Coupling;
9+
import net.minecraft.client.renderer.ItemBlockRenderTypes;
10+
import net.minecraft.client.renderer.RenderType;
911
import net.minecraft.core.Direction;
1012
import net.minecraft.core.registries.BuiltInRegistries;
1113
import net.minecraft.data.PackOutput;
1214
import net.minecraft.resources.ResourceLocation;
1315
import net.minecraft.world.level.block.Block;
1416
import net.minecraft.world.level.block.Blocks;
17+
import net.neoforged.neoforge.client.ChunkRenderTypeSet;
1518
import net.neoforged.neoforge.client.model.generators.BlockModelBuilder;
1619
import net.neoforged.neoforge.client.model.generators.BlockStateProvider;
1720
import net.neoforged.neoforge.client.model.generators.ConfiguredModel;
@@ -108,7 +111,7 @@ private String name(Block block)
108111
// == Non-ownership block ends.
109112

110113
// Translucent rendering.
111-
private static final String renTranslucent = "translucent";
114+
private static final String renTranslucent = /* "cutout"; */ "translucent";
112115

113116
// Ore overlay location helper.
114117
protected ResourceLocation oreOverlayHelper(String material)

0 commit comments

Comments
 (0)