diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt index f5b0f39d3..04687c594 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt @@ -1,5 +1,6 @@ package ru.dbotthepony.mc.otm.datagen +import net.minecraft.client.renderer.block.model.BlockModel import net.minecraft.core.Direction import net.minecraft.data.recipes.ShapedRecipeBuilder import net.minecraft.data.recipes.ShapelessRecipeBuilder @@ -7,6 +8,7 @@ import net.minecraft.resources.ResourceLocation import net.minecraft.world.item.DyeColor import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.IronBarsBlock +import net.minecraft.world.level.block.state.properties.BlockStateProperties import net.minecraftforge.client.model.generators.ConfiguredModel import net.minecraftforge.client.model.generators.ModelFile import net.minecraftforge.eventbus.api.SubscribeEvent @@ -18,6 +20,7 @@ import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.block.matter.MatterBottlerBlock import ru.dbotthepony.mc.otm.block.matter.PatternStorageBlock import ru.dbotthepony.mc.otm.block.storage.DriveViewerBlock +import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.datagen.blocks.BatteryBankProvider import ru.dbotthepony.mc.otm.datagen.blocks.MatterBankProvider import ru.dbotthepony.mc.otm.datagen.blocks.MatteryBlockStateProvider @@ -33,6 +36,7 @@ import ru.dbotthepony.mc.otm.core.registryName import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider import ru.dbotthepony.mc.otm.datagen.loot.addLootModifiers import ru.dbotthepony.mc.otm.datagen.loot.addLootTables +import ru.dbotthepony.mc.otm.datagen.models.MatteryModelBuilder import ru.dbotthepony.mc.otm.datagen.recipes.addCraftingTableRecipes import ru.dbotthepony.mc.otm.datagen.tags.TagsProvider import ru.dbotthepony.mc.otm.datagen.tags.addTags @@ -249,8 +253,11 @@ object DataGen { decorativeCubeAll(MBlocks.DANGER_STRIPE_BLOCK) decorativeColumn(MBlocks.METAL_BEAM, "metal_beam_side", "metal_beam_top") + var labLampOn: MatteryModelBuilder? = null + var labLampOff: MatteryModelBuilder? = null + blockModelProvider.exec { - it.cube( + labLampOn = it.cube( MBlocks.LABORATORY_LAMP.registryName!!.path, ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), @@ -259,13 +266,31 @@ object DataGen { ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), ) + + labLampOff = it.cube( + MBlocks.LABORATORY_LAMP.registryName!!.path + "_unlit", + ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), + ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), + ResourceLocation(MOD_ID, "block/decorative/laboratory_lamp_front_off"), + ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), + ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), + ResourceLocation(MOD_ID, "block/decorative/metal_beam_top"), + ) } itemModelProvider.block(MItems.LABORATORY_LAMP) itemModelProvider.block(MItems.DANGER_STRIPE_BLOCK) itemModelProvider.block(MItems.METAL_BEAM) - blockStateProvider.block(MBlocks.LABORATORY_LAMP) + blockStateProvider.lambda { + it.getVariantBuilder(MBlocks.LABORATORY_LAMP).forAllStates { + return@forAllStates ConfiguredModel.builder() + .modelFile(if (it[BlockStateProperties.LIT]) labLampOn!! else labLampOff!!) + .rotationX(it[RotatableMatteryBlock.FACING_FULL].toXRotBlockstate()) + .rotationY(it[RotatableMatteryBlock.FACING_FULL].toYRotBlockstate()) + .build() + } + } blockModelProvider.exec { for (crate in MRegistry.CARGO_CRATES.blocks.values) {