Industrial glass and pane, models and textures
This commit is contained in:
parent
1415c34206
commit
3313a3d011
@ -8,6 +8,8 @@ import net.minecraft.tags.ItemTags
|
||||
import net.minecraft.tags.Tag
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.IronBarsBlock
|
||||
import net.minecraftforge.client.model.generators.ModelFile
|
||||
import net.minecraftforge.common.Tags
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import net.minecraftforge.fml.common.Mod
|
||||
@ -56,6 +58,48 @@ object DataGen {
|
||||
blockStateProvider.block(block)
|
||||
}
|
||||
|
||||
private fun pane(block: Block, textureSide: ResourceLocation, textureRailing: ResourceLocation) {
|
||||
val name = block.registryName?.path ?: throw IllegalStateException("Invalid state of glass pane $block")
|
||||
|
||||
val post = name
|
||||
val side = "${name}_ne"
|
||||
val side_alt = "${name}_sw"
|
||||
val noside = "${name}_noside_ne"
|
||||
val noside_alt = "${name}_noside_sw"
|
||||
|
||||
var mdl_post: ModelFile? = null
|
||||
var mdl_side: ModelFile? = null
|
||||
var mdl_side_alt: ModelFile? = null
|
||||
var mdl_noside: ModelFile? = null
|
||||
var mdl_noside_alt: ModelFile? = null
|
||||
|
||||
with(blockModelProvider) {
|
||||
lambda {
|
||||
mdl_post = panePost(post, textureSide, textureRailing)
|
||||
mdl_side = paneSide(side, textureSide, textureRailing)
|
||||
mdl_side_alt = paneSideAlt(side_alt, textureSide, textureRailing)
|
||||
mdl_noside = paneNoSide(noside, textureSide)
|
||||
mdl_noside_alt = paneNoSideAlt(noside_alt, textureSide)
|
||||
}
|
||||
}
|
||||
|
||||
blockStateProvider.lambda {
|
||||
check(mdl_post != null) { "DataGen execution order is screwed lmaooooooo" }
|
||||
|
||||
with(it.getMultipartBuilder(block)) {
|
||||
part().modelFile(mdl_post!!).addModel()
|
||||
part().modelFile(mdl_side!!).addModel().condition(IronBarsBlock.NORTH, true)
|
||||
part().modelFile(mdl_side!!).rotationY(90).addModel().condition(IronBarsBlock.EAST, true)
|
||||
part().modelFile(mdl_side_alt!!).addModel().condition(IronBarsBlock.SOUTH, true)
|
||||
part().modelFile(mdl_side_alt!!).rotationY(90).addModel().condition(IronBarsBlock.WEST, true)
|
||||
part().modelFile(mdl_noside!!).addModel().condition(IronBarsBlock.NORTH, false)
|
||||
part().modelFile(mdl_noside!!).rotationY(270).addModel().condition(IronBarsBlock.WEST, false)
|
||||
part().modelFile(mdl_noside_alt!!).addModel().condition(IronBarsBlock.EAST, false)
|
||||
part().modelFile(mdl_noside_alt!!).rotationY(90).addModel().condition(IronBarsBlock.SOUTH, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@JvmStatic
|
||||
@Suppress("unused")
|
||||
@ -71,6 +115,9 @@ object DataGen {
|
||||
event.generator.addProvider(blockStateProvider)
|
||||
event.generator.addProvider(blockStateProvider)
|
||||
event.generator.addProvider(recipeProvider)
|
||||
event.generator.addProvider(MatterBankProvider(event))
|
||||
event.generator.addProvider(BatteryBankProvider(event))
|
||||
event.generator.addProvider(lootTableProvider)
|
||||
|
||||
decorativeCubeAll(*Blocks.CRATES)
|
||||
decorativeCubeAll(Blocks.CARBON_FIBRE_BLOCK)
|
||||
@ -86,6 +133,13 @@ object DataGen {
|
||||
|
||||
decorativeColumn(Blocks.TRITANIUM_STRIPED_BLOCK, "tritanium_striped_block", "tritanium_block")
|
||||
|
||||
for (glass in Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
val name = glass.block.registryName?.path ?: throw IllegalStateException("Invalid state of glass block ${glass.block}")
|
||||
val textureSide = ResourceLocation(MOD_ID, "block/decorative/$name")
|
||||
val textureRailing = textureSide
|
||||
pane(glass.pane, textureSide, textureRailing)
|
||||
}
|
||||
|
||||
with(blockModelProvider) {
|
||||
lambda {
|
||||
copy("block/battery/battery1", "block/battery/battery0").also { it.offset(-4f, 0f, 0f) }
|
||||
@ -120,14 +174,7 @@ object DataGen {
|
||||
ore(Blocks.DEEPSLATE_TRITANIUM_ORE)
|
||||
ore(Blocks.TRITANIUM_ORE)
|
||||
ore(Blocks.TRITANIUM_RAW_BLOCK)
|
||||
}
|
||||
|
||||
event.generator.addProvider(MatterBankProvider(event))
|
||||
event.generator.addProvider(BatteryBankProvider(event))
|
||||
|
||||
event.generator.addProvider(lootTableProvider)
|
||||
|
||||
with(blockStateProvider) {
|
||||
block(Blocks.CHEMICAL_GENERATOR)
|
||||
block(Blocks.MATTER_SCANNER)
|
||||
block(Blocks.ITEM_MONITOR)
|
||||
@ -153,6 +200,11 @@ object DataGen {
|
||||
block(Items.ITEM_MONITOR)
|
||||
block(Items.TRITANIUM_BLOCK)
|
||||
|
||||
for (glass in Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
block(glass.item)
|
||||
generated(glass.paneItem, ResourceLocation(MOD_ID, "block/decorative/${glass.item.registryName!!.path}"))
|
||||
}
|
||||
|
||||
blocks(*Items.CRATES)
|
||||
|
||||
components(*Items.DATAGEN_COMPONENTS)
|
||||
|
@ -40,6 +40,8 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event
|
||||
}
|
||||
|
||||
fun generated(vararg items: Item) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
|
||||
fun generatedBlock(vararg items: Item) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "block/${it.registryName!!.path}")) }
|
||||
fun generatedBlockDecorative(vararg items: Item) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "block/decorative/${it.registryName!!.path}")) }
|
||||
fun handheld(vararg items: Item) = items.forEach { handheld(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
|
||||
|
||||
fun generated(item: Item, prefix: String) = generated(item, ResourceLocation(DataGen.MOD_ID, "item/${prefix}${item.registryName!!.path}"))
|
||||
|
@ -2,6 +2,8 @@ package ru.dbotthepony.mc.otm;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.gui.screens.MenuScreens;
|
||||
import net.minecraft.client.renderer.ItemBlockRenderTypes;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
@ -554,6 +556,17 @@ public class Registry {
|
||||
|
||||
// OverdriveThatMatters.LOGGER.info("Registered blocks");
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void registerClient(final FMLClientSetupEvent event) {
|
||||
final var translucent = RenderType.translucent();
|
||||
|
||||
for (var glass : INDUSTRIAL_GLASS_LIST) {
|
||||
ItemBlockRenderTypes.setRenderLayer(glass.block, translucent);
|
||||
ItemBlockRenderTypes.setRenderLayer(glass.pane, translucent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class Items {
|
||||
|
Loading…
Reference in New Issue
Block a user