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.tags.Tag
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.level.block.Block
|
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.common.Tags
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
import net.minecraftforge.fml.common.Mod
|
import net.minecraftforge.fml.common.Mod
|
||||||
@ -56,6 +58,48 @@ object DataGen {
|
|||||||
blockStateProvider.block(block)
|
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
|
@SubscribeEvent
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
@ -71,6 +115,9 @@ object DataGen {
|
|||||||
event.generator.addProvider(blockStateProvider)
|
event.generator.addProvider(blockStateProvider)
|
||||||
event.generator.addProvider(blockStateProvider)
|
event.generator.addProvider(blockStateProvider)
|
||||||
event.generator.addProvider(recipeProvider)
|
event.generator.addProvider(recipeProvider)
|
||||||
|
event.generator.addProvider(MatterBankProvider(event))
|
||||||
|
event.generator.addProvider(BatteryBankProvider(event))
|
||||||
|
event.generator.addProvider(lootTableProvider)
|
||||||
|
|
||||||
decorativeCubeAll(*Blocks.CRATES)
|
decorativeCubeAll(*Blocks.CRATES)
|
||||||
decorativeCubeAll(Blocks.CARBON_FIBRE_BLOCK)
|
decorativeCubeAll(Blocks.CARBON_FIBRE_BLOCK)
|
||||||
@ -86,6 +133,13 @@ object DataGen {
|
|||||||
|
|
||||||
decorativeColumn(Blocks.TRITANIUM_STRIPED_BLOCK, "tritanium_striped_block", "tritanium_block")
|
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) {
|
with(blockModelProvider) {
|
||||||
lambda {
|
lambda {
|
||||||
copy("block/battery/battery1", "block/battery/battery0").also { it.offset(-4f, 0f, 0f) }
|
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.DEEPSLATE_TRITANIUM_ORE)
|
||||||
ore(Blocks.TRITANIUM_ORE)
|
ore(Blocks.TRITANIUM_ORE)
|
||||||
ore(Blocks.TRITANIUM_RAW_BLOCK)
|
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.CHEMICAL_GENERATOR)
|
||||||
block(Blocks.MATTER_SCANNER)
|
block(Blocks.MATTER_SCANNER)
|
||||||
block(Blocks.ITEM_MONITOR)
|
block(Blocks.ITEM_MONITOR)
|
||||||
@ -153,6 +200,11 @@ object DataGen {
|
|||||||
block(Items.ITEM_MONITOR)
|
block(Items.ITEM_MONITOR)
|
||||||
block(Items.TRITANIUM_BLOCK)
|
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)
|
blocks(*Items.CRATES)
|
||||||
|
|
||||||
components(*Items.DATAGEN_COMPONENTS)
|
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 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 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}"))
|
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.ChatFormatting;
|
||||||
import net.minecraft.client.gui.screens.MenuScreens;
|
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.client.renderer.blockentity.BlockEntityRenderers;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.TextComponent;
|
import net.minecraft.network.chat.TextComponent;
|
||||||
@ -554,6 +556,17 @@ public class Registry {
|
|||||||
|
|
||||||
// OverdriveThatMatters.LOGGER.info("Registered blocks");
|
// 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 {
|
public static class Items {
|
||||||
|
Loading…
Reference in New Issue
Block a user