Refactor decorative blocks class
This commit is contained in:
parent
a23ce200f5
commit
b617bf0c25
@ -4,6 +4,7 @@ import net.minecraft.core.Direction
|
|||||||
import net.minecraft.data.recipes.ShapedRecipeBuilder
|
import net.minecraft.data.recipes.ShapedRecipeBuilder
|
||||||
import net.minecraft.data.recipes.ShapelessRecipeBuilder
|
import net.minecraft.data.recipes.ShapelessRecipeBuilder
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
|
import net.minecraft.world.item.DyeColor
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.block.IronBarsBlock
|
import net.minecraft.world.level.block.IronBarsBlock
|
||||||
import net.minecraftforge.client.model.generators.ConfiguredModel
|
import net.minecraftforge.client.model.generators.ConfiguredModel
|
||||||
@ -119,21 +120,21 @@ object DataGen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun decoratives(list: ColoredDecorativeBlock) {
|
private fun decoratives(list: ColoredDecorativeBlock) {
|
||||||
for (block in list.coloredBlocks) {
|
for (block in list.blocks.values) {
|
||||||
decorativeCubeAll(block)
|
decorativeCubeAll(block)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (item in list.coloredItems) {
|
for (item in list.items.values) {
|
||||||
itemModelProvider.block(item)
|
itemModelProvider.block(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun decoratives(list: DecorativeBlock) {
|
private fun decoratives(list: DecorativeBlock) {
|
||||||
for (block in list.blocks) {
|
for (block in list.blocks.values) {
|
||||||
decorativeCubeAll(block)
|
decorativeCubeAll(block)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (item in list.items) {
|
for (item in list.items.values) {
|
||||||
itemModelProvider.block(item)
|
itemModelProvider.block(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,7 +174,7 @@ object DataGen {
|
|||||||
decoratives(MRegistry.VENT)
|
decoratives(MRegistry.VENT)
|
||||||
decoratives(MRegistry.VENT_ALTERNATIVE)
|
decoratives(MRegistry.VENT_ALTERNATIVE)
|
||||||
|
|
||||||
for (glass in MRegistry.INDUSTRIAL_GLASS.blocks) {
|
for (glass in MRegistry.INDUSTRIAL_GLASS.allBlocks.values) {
|
||||||
decorativeCubeAll(glass)
|
decorativeCubeAll(glass)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,7 +187,7 @@ object DataGen {
|
|||||||
blockModelProvider.resourceCubeAll(MBlocks.DEEPSLATE_TRITANIUM_ORE)
|
blockModelProvider.resourceCubeAll(MBlocks.DEEPSLATE_TRITANIUM_ORE)
|
||||||
|
|
||||||
blockModelProvider.lambda {
|
blockModelProvider.lambda {
|
||||||
for (crate in MRegistry.CARGO_CRATES.coloredBlocks) {
|
for (crate in MRegistry.CARGO_CRATES.blocks.values) {
|
||||||
it.withExistingParent("${crate.registryName!!.path}_closed", ResourceLocation(OverdriveThatMatters.MOD_ID, "${MNames.CARGO_CRATE}_closed"))
|
it.withExistingParent("${crate.registryName!!.path}_closed", ResourceLocation(OverdriveThatMatters.MOD_ID, "${MNames.CARGO_CRATE}_closed"))
|
||||||
.texture("texture", "block/cargo_crates/${crate.registryName!!.path}")
|
.texture("texture", "block/cargo_crates/${crate.registryName!!.path}")
|
||||||
.texture("particle", "block/cargo_crates/${crate.registryName!!.path}")
|
.texture("particle", "block/cargo_crates/${crate.registryName!!.path}")
|
||||||
@ -199,8 +200,8 @@ object DataGen {
|
|||||||
|
|
||||||
decorativeColumn(MBlocks.TRITANIUM_STRIPED_BLOCK, "tritanium_striped_block", "tritanium_block")
|
decorativeColumn(MBlocks.TRITANIUM_STRIPED_BLOCK, "tritanium_striped_block", "tritanium_block")
|
||||||
|
|
||||||
for ((i, glass) in MRegistry.INDUSTRIAL_GLASS_PANE.blocks.withIndex()) {
|
for ((color, glass) in MRegistry.INDUSTRIAL_GLASS_PANE.blocks) {
|
||||||
val name = MRegistry.INDUSTRIAL_GLASS.blocks[i].registryName!!.path
|
val name = MRegistry.INDUSTRIAL_GLASS.blocks[color]!!.registryName!!.path
|
||||||
val textureSide = ResourceLocation(MOD_ID, "block/decorative/$name")
|
val textureSide = ResourceLocation(MOD_ID, "block/decorative/$name")
|
||||||
val textureRailing = ResourceLocation(MOD_ID, "block/decorative/industrial_glass_frame")
|
val textureRailing = ResourceLocation(MOD_ID, "block/decorative/industrial_glass_frame")
|
||||||
pane(glass, textureSide, textureRailing)
|
pane(glass, textureSide, textureRailing)
|
||||||
@ -288,7 +289,7 @@ object DataGen {
|
|||||||
block(MBlocks.MATTER_RECYCLER)
|
block(MBlocks.MATTER_RECYCLER)
|
||||||
|
|
||||||
lambda {
|
lambda {
|
||||||
for (crate in MRegistry.CARGO_CRATES.coloredBlocks) {
|
for (crate in MRegistry.CARGO_CRATES.allBlocks.values) {
|
||||||
getVariantBuilder(crate).forAllStates {
|
getVariantBuilder(crate).forAllStates {
|
||||||
return@forAllStates arrayOf(
|
return@forAllStates arrayOf(
|
||||||
ConfiguredModel.builder()
|
ConfiguredModel.builder()
|
||||||
@ -379,17 +380,17 @@ object DataGen {
|
|||||||
block(MItems.TRITANIUM_RAW_BLOCK)
|
block(MItems.TRITANIUM_RAW_BLOCK)
|
||||||
block(MItems.ITEM_MONITOR)
|
block(MItems.ITEM_MONITOR)
|
||||||
|
|
||||||
MRegistry.VENT.items.forEach(this::block)
|
MRegistry.VENT.items.values.forEach(this::block)
|
||||||
MRegistry.VENT_ALTERNATIVE.items.forEach(this::block)
|
MRegistry.VENT_ALTERNATIVE.items.values.forEach(this::block)
|
||||||
MRegistry.TRITANIUM_BLOCK.items.forEach(this::block)
|
MRegistry.TRITANIUM_BLOCK.items.values.forEach(this::block)
|
||||||
MRegistry.INDUSTRIAL_GLASS.items.forEach(this::block)
|
MRegistry.INDUSTRIAL_GLASS.items.values.forEach(this::block)
|
||||||
|
|
||||||
for (block in MRegistry.TRITANIUM_STRIPED_BLOCK.items) {
|
for (block in MRegistry.TRITANIUM_STRIPED_BLOCK.flatItems) {
|
||||||
block(block)
|
block(block)
|
||||||
}
|
}
|
||||||
|
|
||||||
for ((i, glass) in MRegistry.INDUSTRIAL_GLASS_PANE.items.withIndex()) {
|
for ((color, glass) in MRegistry.INDUSTRIAL_GLASS_PANE.allItems) {
|
||||||
generated(glass, ResourceLocation(MOD_ID, "block/decorative/${MRegistry.INDUSTRIAL_GLASS.items[i].registryName!!.path}"))
|
generated(glass, ResourceLocation(MOD_ID, "block/decorative/${MRegistry.INDUSTRIAL_GLASS.allItems[color]!!.registryName!!.path}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
blocks(MItems.CRATE_LIST)
|
blocks(MItems.CRATE_LIST)
|
||||||
@ -435,7 +436,7 @@ object DataGen {
|
|||||||
|
|
||||||
generated(MItems.MATTER_DUST)
|
generated(MItems.MATTER_DUST)
|
||||||
|
|
||||||
for (item in MRegistry.CARGO_CRATES.items) {
|
for (item in MRegistry.CARGO_CRATES.allItems.values) {
|
||||||
block(item, "${item.registryName!!.path}_closed")
|
block(item, "${item.registryName!!.path}_closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -573,53 +574,34 @@ object DataGen {
|
|||||||
.unlockedBy("has_tritanium_glass", has(MRegistry.INDUSTRIAL_GLASS.item))
|
.unlockedBy("has_tritanium_glass", has(MRegistry.INDUSTRIAL_GLASS.item))
|
||||||
.save(consumer)
|
.save(consumer)
|
||||||
|
|
||||||
val mapping = arrayOf(
|
val mappingUpgradeVanilla = mapOf(
|
||||||
Tags.Items.DYES_WHITE,
|
DyeColor.WHITE to net.minecraft.world.item.Items.WHITE_STAINED_GLASS,
|
||||||
Tags.Items.DYES_ORANGE,
|
DyeColor.ORANGE to net.minecraft.world.item.Items.ORANGE_STAINED_GLASS,
|
||||||
Tags.Items.DYES_MAGENTA,
|
DyeColor.MAGENTA to net.minecraft.world.item.Items.MAGENTA_STAINED_GLASS,
|
||||||
Tags.Items.DYES_LIGHT_BLUE,
|
DyeColor.LIGHT_BLUE to net.minecraft.world.item.Items.LIGHT_BLUE_STAINED_GLASS,
|
||||||
Tags.Items.DYES_YELLOW,
|
DyeColor.YELLOW to net.minecraft.world.item.Items.YELLOW_STAINED_GLASS,
|
||||||
Tags.Items.DYES_LIME,
|
DyeColor.LIME to net.minecraft.world.item.Items.LIME_STAINED_GLASS,
|
||||||
Tags.Items.DYES_PINK,
|
DyeColor.PINK to net.minecraft.world.item.Items.PINK_STAINED_GLASS,
|
||||||
Tags.Items.DYES_GRAY,
|
DyeColor.GRAY to net.minecraft.world.item.Items.GRAY_STAINED_GLASS,
|
||||||
Tags.Items.DYES_LIGHT_GRAY,
|
DyeColor.LIGHT_GRAY to net.minecraft.world.item.Items.LIGHT_GRAY_STAINED_GLASS,
|
||||||
Tags.Items.DYES_CYAN,
|
DyeColor.CYAN to net.minecraft.world.item.Items.CYAN_STAINED_GLASS,
|
||||||
Tags.Items.DYES_PURPLE,
|
DyeColor.PURPLE to net.minecraft.world.item.Items.PURPLE_STAINED_GLASS,
|
||||||
Tags.Items.DYES_BLUE,
|
DyeColor.BLUE to net.minecraft.world.item.Items.BLUE_STAINED_GLASS,
|
||||||
Tags.Items.DYES_BROWN,
|
DyeColor.BROWN to net.minecraft.world.item.Items.BROWN_STAINED_GLASS,
|
||||||
Tags.Items.DYES_GREEN,
|
DyeColor.GREEN to net.minecraft.world.item.Items.GREEN_STAINED_GLASS,
|
||||||
Tags.Items.DYES_RED,
|
DyeColor.RED to net.minecraft.world.item.Items.RED_STAINED_GLASS,
|
||||||
Tags.Items.DYES_BLACK,
|
DyeColor.BLACK to net.minecraft.world.item.Items.BLACK_STAINED_GLASS,
|
||||||
)
|
)
|
||||||
|
|
||||||
val mappingUpgradeVanilla = arrayOf(
|
for (color in DyeColor.values()) {
|
||||||
net.minecraft.world.item.Items.WHITE_STAINED_GLASS,
|
val item = MRegistry.INDUSTRIAL_GLASS.items[color]!!
|
||||||
net.minecraft.world.item.Items.ORANGE_STAINED_GLASS,
|
val paneItem = MRegistry.INDUSTRIAL_GLASS_PANE.items[color]!!
|
||||||
net.minecraft.world.item.Items.MAGENTA_STAINED_GLASS,
|
val mappedVanilla = mappingUpgradeVanilla[color]!!
|
||||||
net.minecraft.world.item.Items.LIGHT_BLUE_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.YELLOW_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.LIME_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.PINK_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.GRAY_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.LIGHT_GRAY_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.CYAN_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.PURPLE_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.BLUE_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.BROWN_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.GREEN_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.RED_STAINED_GLASS,
|
|
||||||
net.minecraft.world.item.Items.BLACK_STAINED_GLASS,
|
|
||||||
)
|
|
||||||
|
|
||||||
for ((i, tag) in mapping.withIndex()) {
|
|
||||||
val item = MRegistry.INDUSTRIAL_GLASS.coloredItems[i]
|
|
||||||
val paneItem = MRegistry.INDUSTRIAL_GLASS_PANE.coloredItems[i]
|
|
||||||
val mappedVanilla = mappingUpgradeVanilla[i]
|
|
||||||
|
|
||||||
// обычная покраска
|
// обычная покраска
|
||||||
ShapelessRecipeBuilder(item, 8)
|
ShapelessRecipeBuilder(item, 8)
|
||||||
.requires(MRegistry.INDUSTRIAL_GLASS.item, 8)
|
.requires(MRegistry.INDUSTRIAL_GLASS.item, 8)
|
||||||
.requires(tag)
|
.requires(color.tag)
|
||||||
.unlockedBy("has_tritanium_glass", has(MRegistry.INDUSTRIAL_GLASS.item))
|
.unlockedBy("has_tritanium_glass", has(MRegistry.INDUSTRIAL_GLASS.item))
|
||||||
.save(consumer)
|
.save(consumer)
|
||||||
|
|
||||||
@ -633,7 +615,7 @@ object DataGen {
|
|||||||
|
|
||||||
ShapelessRecipeBuilder(paneItem, 8)
|
ShapelessRecipeBuilder(paneItem, 8)
|
||||||
.requires(MRegistry.INDUSTRIAL_GLASS_PANE.item, 8)
|
.requires(MRegistry.INDUSTRIAL_GLASS_PANE.item, 8)
|
||||||
.requires(tag)
|
.requires(color.tag)
|
||||||
.unlockedBy("has_tritanium_glass_pane", has(MRegistry.INDUSTRIAL_GLASS_PANE.item))
|
.unlockedBy("has_tritanium_glass_pane", has(MRegistry.INDUSTRIAL_GLASS_PANE.item))
|
||||||
.save(consumer)
|
.save(consumer)
|
||||||
|
|
||||||
|
@ -213,22 +213,9 @@ class MatteryLanguageProvider(private val gen: DataGenerator) {
|
|||||||
.build()
|
.build()
|
||||||
|
|
||||||
fun add(list: ColoredDecorativeBlock, toFormat: String) {
|
fun add(list: ColoredDecorativeBlock, toFormat: String) {
|
||||||
slave.add(list.whiteBlock, toFormat.format(white))
|
for ((color, target) in dyeClassPairs) {
|
||||||
slave.add(list.orangeBlock, toFormat.format(orange))
|
slave.add(list.blocks[color]!!, toFormat.format(target))
|
||||||
slave.add(list.magentaBlock, toFormat.format(magenta))
|
}
|
||||||
slave.add(list.lightBlueBlock, toFormat.format(lightBlue))
|
|
||||||
slave.add(list.yellowBlock, toFormat.format(yellow))
|
|
||||||
slave.add(list.limeBlock, toFormat.format(lime))
|
|
||||||
slave.add(list.pinkBlock, toFormat.format(pink))
|
|
||||||
slave.add(list.grayBlock, toFormat.format(gray))
|
|
||||||
slave.add(list.lightGrayBlock, toFormat.format(lightGray))
|
|
||||||
slave.add(list.cyanBlock, toFormat.format(cyan))
|
|
||||||
slave.add(list.purpleBlock, toFormat.format(purple))
|
|
||||||
slave.add(list.blueBlock, toFormat.format(blue))
|
|
||||||
slave.add(list.brownBlock, toFormat.format(brown))
|
|
||||||
slave.add(list.greenBlock, toFormat.format(green))
|
|
||||||
slave.add(list.redBlock, toFormat.format(red))
|
|
||||||
slave.add(list.blackBlock, toFormat.format(black))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(
|
fun add(
|
||||||
|
@ -101,7 +101,7 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
|||||||
blocks.forEach(this::dropsSelf)
|
blocks.forEach(this::dropsSelf)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dropsSelf(blocks: List<Block>) {
|
fun dropsSelf(blocks: Collection<Block>) {
|
||||||
blocks.forEach(this::dropsSelf)
|
blocks.forEach(this::dropsSelf)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,16 +1,11 @@
|
|||||||
package ru.dbotthepony.mc.otm.datagen.loot
|
package ru.dbotthepony.mc.otm.datagen.loot
|
||||||
|
|
||||||
import ru.dbotthepony.mc.otm.block.MatteryBlock
|
|
||||||
import ru.dbotthepony.mc.otm.block.entity.ChemicalGeneratorBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.ChemicalGeneratorBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.INVENTORY_KEY
|
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.ENERGY_KEY
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.ENERGY_KEY
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.BATTERY_KEY
|
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.MATTER_STORAGE_KEY
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.MATTER_STORAGE_KEY
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.REDSTONE_SETTING_KEY
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.REDSTONE_SETTING_KEY
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.REDSTONE_SIGNAL_KEY
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity.Companion.REDSTONE_SIGNAL_KEY
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity
|
|
||||||
import ru.dbotthepony.mc.otm.block.entity.matter.MatterBottlerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.matter.MatterBottlerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.storage.AbstractStorageImportExport.Companion.FILTER_KEY
|
import ru.dbotthepony.mc.otm.block.entity.storage.AbstractStorageImportExport.Companion.FILTER_KEY
|
||||||
import ru.dbotthepony.mc.otm.block.entity.storage.StoragePowerSupplierBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.storage.StoragePowerSupplierBlockEntity
|
||||||
@ -20,15 +15,15 @@ import ru.dbotthepony.mc.otm.registry.MRegistry
|
|||||||
fun addLootTables(lootTables: LootTables) {
|
fun addLootTables(lootTables: LootTables) {
|
||||||
lootTables.dropsSelf(MBlocks.CRATE_LIST)
|
lootTables.dropsSelf(MBlocks.CRATE_LIST)
|
||||||
|
|
||||||
lootTables.dropsSelf(MRegistry.CARGO_CRATES.blocks)
|
lootTables.dropsSelf(MRegistry.CARGO_CRATES.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS.blocks)
|
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS_PANE.blocks)
|
lootTables.dropsSelf(MRegistry.INDUSTRIAL_GLASS_PANE.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.TRITANIUM_BLOCK.blocks)
|
lootTables.dropsSelf(MRegistry.TRITANIUM_BLOCK.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.VENT.blocks)
|
lootTables.dropsSelf(MRegistry.VENT.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.VENT_ALTERNATIVE.blocks)
|
lootTables.dropsSelf(MRegistry.VENT_ALTERNATIVE.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.FLOOR_TILES.coloredBlocks)
|
lootTables.dropsSelf(MRegistry.FLOOR_TILES.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.UNREFINED_FLOOR_TILES.coloredBlocks)
|
lootTables.dropsSelf(MRegistry.UNREFINED_FLOOR_TILES.blocks.values)
|
||||||
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_BLOCK.blocks)
|
lootTables.dropsSelf(MRegistry.TRITANIUM_STRIPED_BLOCK.flatBlocks)
|
||||||
|
|
||||||
lootTables.dropsSelf(MBlocks.CARBON_FIBRE_BLOCK)
|
lootTables.dropsSelf(MBlocks.CARBON_FIBRE_BLOCK)
|
||||||
lootTables.dropsSelf(MBlocks.TRITANIUM_RAW_BLOCK)
|
lootTables.dropsSelf(MBlocks.TRITANIUM_RAW_BLOCK)
|
||||||
|
@ -67,7 +67,7 @@ class BlockMatteryModelProvider(event: GatherDataEvent) : MatteryModelProvider(e
|
|||||||
super.registerModels()
|
super.registerModels()
|
||||||
|
|
||||||
for ((path, texture) in cubeAll) {
|
for ((path, texture) in cubeAll) {
|
||||||
cubeAll(path, texture)
|
val s = cubeAll(path, texture)
|
||||||
}
|
}
|
||||||
|
|
||||||
for ((path, end, side) in cubeColumn) {
|
for ((path, end, side) in cubeColumn) {
|
||||||
|
@ -5,10 +5,8 @@ import net.minecraft.data.recipes.ShapedRecipeBuilder
|
|||||||
import net.minecraft.data.recipes.ShapelessRecipeBuilder
|
import net.minecraft.data.recipes.ShapelessRecipeBuilder
|
||||||
import net.minecraft.data.recipes.SimpleCookingRecipeBuilder
|
import net.minecraft.data.recipes.SimpleCookingRecipeBuilder
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.item.DyeColor
|
|
||||||
import net.minecraft.world.item.Items
|
import net.minecraft.world.item.Items
|
||||||
import net.minecraft.world.item.crafting.Ingredient
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
import net.minecraft.world.level.block.Blocks
|
|
||||||
import net.minecraftforge.common.Tags
|
import net.minecraftforge.common.Tags
|
||||||
import net.minecraftforge.common.Tags.Items.COBBLESTONE
|
import net.minecraftforge.common.Tags.Items.COBBLESTONE
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
@ -20,7 +18,7 @@ import ru.dbotthepony.mc.otm.core.registryName
|
|||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
|
|
||||||
fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
||||||
for ((dye, crate) in MRegistry.CARGO_CRATES.mappedColoredBlocks) {
|
for ((dye, crate) in MRegistry.CARGO_CRATES.blocks) {
|
||||||
ShapedRecipeBuilder(crate, 1)
|
ShapedRecipeBuilder(crate, 1)
|
||||||
.define('P', MItemTags.PLATE_TRITANIUM)
|
.define('P', MItemTags.PLATE_TRITANIUM)
|
||||||
.define('C', Tags.Items.CHESTS)
|
.define('C', Tags.Items.CHESTS)
|
||||||
@ -77,7 +75,7 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
|||||||
.unlockedBy(MItemTags.PLATE_TRITANIUM)
|
.unlockedBy(MItemTags.PLATE_TRITANIUM)
|
||||||
.build(consumer)
|
.build(consumer)
|
||||||
|
|
||||||
for ((color, item) in MRegistry.TRITANIUM_BLOCK.mappedColoredItems) {
|
for ((color, item) in MRegistry.TRITANIUM_BLOCK.items) {
|
||||||
MatteryRecipe(item, 8)
|
MatteryRecipe(item, 8)
|
||||||
.row(MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item)
|
.row(MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item, MRegistry.TRITANIUM_BLOCK.item)
|
||||||
.row(MRegistry.TRITANIUM_BLOCK.item, color.tag, MRegistry.TRITANIUM_BLOCK.item)
|
.row(MRegistry.TRITANIUM_BLOCK.item, color.tag, MRegistry.TRITANIUM_BLOCK.item)
|
||||||
@ -90,7 +88,7 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
|||||||
for ((item, colors) in MRegistry.TRITANIUM_STRIPED_BLOCK.itemsWithColor) {
|
for ((item, colors) in MRegistry.TRITANIUM_STRIPED_BLOCK.itemsWithColor) {
|
||||||
val (base, stripe) = colors
|
val (base, stripe) = colors
|
||||||
|
|
||||||
val original = MRegistry.TRITANIUM_BLOCK.mappedColoredItems[base]!!
|
val original = MRegistry.TRITANIUM_BLOCK.items[base]!!
|
||||||
|
|
||||||
MatteryRecipe(item, 8)
|
MatteryRecipe(item, 8)
|
||||||
.row(original, original, original)
|
.row(original, original, original)
|
||||||
@ -107,7 +105,7 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
|||||||
.unlockedBy(MItemTags.PLATE_TRITANIUM)
|
.unlockedBy(MItemTags.PLATE_TRITANIUM)
|
||||||
.build(consumer)
|
.build(consumer)
|
||||||
|
|
||||||
for ((color, item) in MRegistry.VENT.mappedColoredItems) {
|
for ((color, item) in MRegistry.VENT.items) {
|
||||||
MatteryRecipe(item, 8)
|
MatteryRecipe(item, 8)
|
||||||
.row(MRegistry.VENT.item, MRegistry.VENT.item, MRegistry.VENT.item)
|
.row(MRegistry.VENT.item, MRegistry.VENT.item, MRegistry.VENT.item)
|
||||||
.row(MRegistry.VENT.item, color.tag, MRegistry.VENT.item)
|
.row(MRegistry.VENT.item, color.tag, MRegistry.VENT.item)
|
||||||
@ -117,8 +115,8 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
|||||||
.build(consumer)
|
.build(consumer)
|
||||||
}
|
}
|
||||||
|
|
||||||
for ((color, item) in MRegistry.VENT_ALTERNATIVE.mappedColoredItemsAll) {
|
for ((color, item) in MRegistry.VENT_ALTERNATIVE.allItems) {
|
||||||
val other = MRegistry.VENT.mappedColoredItemsAll[color]!!
|
val other = MRegistry.VENT.allItems[color]!!
|
||||||
ShapelessRecipeBuilder(item, 1).requires(other).unlockedBy(item).save(consumer)
|
ShapelessRecipeBuilder(item, 1).requires(other).unlockedBy(item).save(consumer)
|
||||||
ShapelessRecipeBuilder(other, 1).requires(item).unlockedBy(other).save(consumer, ResourceLocation(OverdriveThatMatters.MOD_ID, "${other.registryName!!.path}_from_alt"))
|
ShapelessRecipeBuilder(other, 1).requires(item).unlockedBy(other).save(consumer, ResourceLocation(OverdriveThatMatters.MOD_ID, "${other.registryName!!.path}_from_alt"))
|
||||||
}
|
}
|
||||||
@ -265,7 +263,7 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
|||||||
.build(consumer)
|
.build(consumer)
|
||||||
|
|
||||||
// Напольная плитка
|
// Напольная плитка
|
||||||
for ((color, unrefinedItem) in MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems) {
|
for ((color, unrefinedItem) in MRegistry.UNREFINED_FLOOR_TILES.items) {
|
||||||
MatteryRecipe(unrefinedItem, 24)
|
MatteryRecipe(unrefinedItem, 24)
|
||||||
.row(Items.CLAY, Items.SAND, Items.CLAY)
|
.row(Items.CLAY, Items.SAND, Items.CLAY)
|
||||||
.row(Items.SAND, color.tag, Items.SAND)
|
.row(Items.SAND, color.tag, Items.SAND)
|
||||||
@ -274,13 +272,13 @@ fun addCraftingTableRecipes(consumer: Consumer<FinishedRecipe>) {
|
|||||||
.build(consumer)
|
.build(consumer)
|
||||||
}
|
}
|
||||||
|
|
||||||
for ((color, refinedItem) in MRegistry.FLOOR_TILES.mappedColoredItems) {
|
for ((color, refinedItem) in MRegistry.FLOOR_TILES.items) {
|
||||||
SimpleCookingRecipeBuilder.smelting(
|
SimpleCookingRecipeBuilder.smelting(
|
||||||
Ingredient.of(MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems[color]!!),
|
Ingredient.of(MRegistry.UNREFINED_FLOOR_TILES.items[color]!!),
|
||||||
refinedItem,
|
refinedItem,
|
||||||
0.15f,
|
0.15f,
|
||||||
200
|
200
|
||||||
).unlockedBy("has_unrefined_block", has(MRegistry.UNREFINED_FLOOR_TILES.mappedColoredItems[color]!!)).save(consumer)
|
).unlockedBy("has_unrefined_block", has(MRegistry.UNREFINED_FLOOR_TILES.items[color]!!)).save(consumer)
|
||||||
}
|
}
|
||||||
|
|
||||||
// станция андроида
|
// станция андроида
|
||||||
|
@ -60,18 +60,18 @@ fun addTags(tagsProvider: TagsProvider) {
|
|||||||
tagsProvider.requiresPickaxe(MBlocks.TRITANIUM_STRIPED_BLOCK, Tiers.IRON)
|
tagsProvider.requiresPickaxe(MBlocks.TRITANIUM_STRIPED_BLOCK, Tiers.IRON)
|
||||||
tagsProvider.requiresPickaxe(MBlocks.CARBON_FIBRE_BLOCK, Tiers.IRON)
|
tagsProvider.requiresPickaxe(MBlocks.CARBON_FIBRE_BLOCK, Tiers.IRON)
|
||||||
|
|
||||||
tagsProvider.requiresPickaxe(MRegistry.CARGO_CRATES.blocks, Tiers.IRON)
|
tagsProvider.requiresPickaxe(MRegistry.CARGO_CRATES.blocks.values, Tiers.IRON)
|
||||||
|
|
||||||
tagsProvider.requiresPickaxe(MRegistry.VENT.blocks, Tiers.IRON)
|
tagsProvider.requiresPickaxe(MRegistry.VENT.blocks.values, Tiers.IRON)
|
||||||
tagsProvider.requiresPickaxe(MRegistry.VENT_ALTERNATIVE.blocks, Tiers.IRON)
|
tagsProvider.requiresPickaxe(MRegistry.VENT_ALTERNATIVE.blocks.values, Tiers.IRON)
|
||||||
tagsProvider.requiresPickaxe(MRegistry.TRITANIUM_BLOCK.blocks, Tiers.IRON)
|
tagsProvider.requiresPickaxe(MRegistry.TRITANIUM_BLOCK.blocks.values, Tiers.IRON)
|
||||||
tagsProvider.requiresPickaxe(MRegistry.TRITANIUM_STRIPED_BLOCK.blocks, Tiers.IRON)
|
tagsProvider.requiresPickaxe(MRegistry.TRITANIUM_STRIPED_BLOCK.flatBlocks, Tiers.IRON)
|
||||||
tagsProvider.requiresPickaxe(MRegistry.FLOOR_TILES.coloredBlocks)
|
tagsProvider.requiresPickaxe(MRegistry.FLOOR_TILES.blocks.values)
|
||||||
|
|
||||||
tagsProvider.requiresShovel(MRegistry.UNREFINED_FLOOR_TILES.coloredBlocks)
|
tagsProvider.requiresShovel(MRegistry.UNREFINED_FLOOR_TILES.blocks.values)
|
||||||
|
|
||||||
tagsProvider.requiresPickaxe(MRegistry.INDUSTRIAL_GLASS.blocks, Tiers.STONE)
|
tagsProvider.requiresPickaxe(MRegistry.INDUSTRIAL_GLASS.blocks.values, Tiers.STONE)
|
||||||
tagsProvider.requiresPickaxe(MRegistry.INDUSTRIAL_GLASS_PANE.blocks, Tiers.STONE)
|
tagsProvider.requiresPickaxe(MRegistry.INDUSTRIAL_GLASS_PANE.blocks.values, Tiers.STONE)
|
||||||
tagsProvider.requiresPickaxe(MBlocks.CRATE_LIST, Tiers.STONE)
|
tagsProvider.requiresPickaxe(MBlocks.CRATE_LIST, Tiers.STONE)
|
||||||
|
|
||||||
tagsProvider.requiresPickaxe(listOf(
|
tagsProvider.requiresPickaxe(listOf(
|
||||||
|
@ -23,9 +23,9 @@ interface MTagAppender<T> {
|
|||||||
return any
|
return any
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(values: List<T>): TagsProvider
|
fun add(values: Collection<T>): TagsProvider
|
||||||
|
|
||||||
fun addSafe(values: List<T>): Boolean {
|
fun addSafe(values: Collection<T>): Boolean {
|
||||||
var any = false
|
var any = false
|
||||||
for (value in values) any = addSafe(value)
|
for (value in values) any = addSafe(value)
|
||||||
return any
|
return any
|
||||||
@ -42,9 +42,9 @@ interface ForgeTagAppender<T> : MTagAppender<T> {
|
|||||||
return any
|
return any
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(key: String, values: List<T>): TagsProvider
|
fun add(key: String, values: Collection<T>): TagsProvider
|
||||||
|
|
||||||
fun addSafe(key: String, values: List<T>): Boolean {
|
fun addSafe(key: String, values: Collection<T>): Boolean {
|
||||||
var any = false
|
var any = false
|
||||||
for (value in values) any = addSafe(key, value)
|
for (value in values) any = addSafe(key, value)
|
||||||
return any
|
return any
|
||||||
@ -89,7 +89,7 @@ class TagsProvider(
|
|||||||
return this@TagsProvider
|
return this@TagsProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun add(values: List<T>): TagsProvider {
|
override fun add(values: Collection<T>): TagsProvider {
|
||||||
for (value in values) add(value)
|
for (value in values) add(value)
|
||||||
return this@TagsProvider
|
return this@TagsProvider
|
||||||
}
|
}
|
||||||
@ -129,7 +129,7 @@ class TagsProvider(
|
|||||||
return this@TagsProvider
|
return this@TagsProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun add(key: String, values: List<T>): TagsProvider {
|
override fun add(key: String, values: Collection<T>): TagsProvider {
|
||||||
for (value in values) add(key, value)
|
for (value in values) add(key, value)
|
||||||
return this@TagsProvider
|
return this@TagsProvider
|
||||||
}
|
}
|
||||||
@ -146,7 +146,7 @@ class TagsProvider(
|
|||||||
return parent.add(*values)
|
return parent.add(*values)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun add(values: List<T>): TagsProvider {
|
override fun add(values: Collection<T>): TagsProvider {
|
||||||
return parent.add(values)
|
return parent.add(values)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -228,7 +228,7 @@ class TagsProvider(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun requiresPickaxe(blocks: List<Block>, tier: Tier? = null): TagsProvider {
|
fun requiresPickaxe(blocks: Collection<Block>, tier: Tier? = null): TagsProvider {
|
||||||
for (block in blocks) requiresPickaxe(block, tier)
|
for (block in blocks) requiresPickaxe(block, tier)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@ -250,7 +250,7 @@ class TagsProvider(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun requiresShovel(blocks: List<Block>, tier: Tier? = null): TagsProvider {
|
fun requiresShovel(blocks: Collection<Block>, tier: Tier? = null): TagsProvider {
|
||||||
for (block in blocks) requiresShovel(block, tier)
|
for (block in blocks) requiresShovel(block, tier)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@ -267,7 +267,7 @@ class TagsProvider(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun requiresAxe(blocks: List<Block>, tier: Tier? = null): TagsProvider {
|
fun requiresAxe(blocks: Collection<Block>, tier: Tier? = null): TagsProvider {
|
||||||
for (block in blocks) requiresAxe(block, tier)
|
for (block in blocks) requiresAxe(block, tier)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,16 @@ import com.google.common.collect.ImmutableSet
|
|||||||
import net.minecraft.world.item.DyeColor
|
import net.minecraft.world.item.DyeColor
|
||||||
import net.minecraftforge.registries.RegistryObject
|
import net.minecraftforge.registries.RegistryObject
|
||||||
|
|
||||||
class LazyList<T>(private val getters: ImmutableList<() -> T>) : AbstractList<T>() {
|
class LazyList<T> : AbstractList<T> {
|
||||||
constructor(vararg getters: () -> T) : this(ImmutableList.copyOf(getters))
|
private val getters: Array<() -> T>
|
||||||
constructor(getters: List<() -> T>) : this(ImmutableList.copyOf(getters))
|
|
||||||
|
constructor(vararg getters: () -> T) : super() {
|
||||||
|
this.getters = Array(getters.size) { getters[it] }
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(getters: List<() -> T>) : super() {
|
||||||
|
this.getters = Array(getters.size) { getters[it] }
|
||||||
|
}
|
||||||
|
|
||||||
override val size: Int
|
override val size: Int
|
||||||
get() = getters.size
|
get() = getters.size
|
||||||
@ -24,7 +31,7 @@ class LazyMap<K, T> : AbstractMap<K, T> {
|
|||||||
entries = ImmutableSet.copyOf(mValues.map { Entry(it.first, it.second) })
|
entries = ImmutableSet.copyOf(mValues.map { Entry(it.first, it.second) })
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(mValues: List<Pair<K, () -> T>>) : super() {
|
constructor(mValues: Collection<Pair<K, () -> T>>) : super() {
|
||||||
entries = ImmutableSet.copyOf(mValues.map { Entry(it.first, it.second) })
|
entries = ImmutableSet.copyOf(mValues.map { Entry(it.first, it.second) })
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -42,7 +49,7 @@ class LazyMap<K, T> : AbstractMap<K, T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class RegistryObjectList<T>(private vararg val getters: RegistryObject<T>) : AbstractList<T>() {
|
class RegistryObjectList<T>(private vararg val getters: RegistryObject<T>) : AbstractList<T>() {
|
||||||
constructor(getters: List<RegistryObject<T>>) : this(*getters.toTypedArray())
|
constructor(getters: Collection<RegistryObject<T>>) : this(*getters.toTypedArray())
|
||||||
|
|
||||||
override val size: Int
|
override val size: Int
|
||||||
get() = getters.size
|
get() = getters.size
|
||||||
|
@ -35,7 +35,7 @@ object MBlockEntities {
|
|||||||
val BLACK_HOLE: BlockEntityType<*> by registry.register(MNames.BLACK_HOLE) { BlockEntityType.Builder.of(::BlackHoleBlockEntity, MBlocks.BLACK_HOLE).build(null) }
|
val BLACK_HOLE: BlockEntityType<*> by registry.register(MNames.BLACK_HOLE) { BlockEntityType.Builder.of(::BlackHoleBlockEntity, MBlocks.BLACK_HOLE).build(null) }
|
||||||
val CARGO_CRATE: BlockEntityType<*> by registry.register(MNames.CARGO_CRATE) { BlockEntityType.Builder.of(
|
val CARGO_CRATE: BlockEntityType<*> by registry.register(MNames.CARGO_CRATE) { BlockEntityType.Builder.of(
|
||||||
::CargoCrateBlockEntity,
|
::CargoCrateBlockEntity,
|
||||||
*MRegistry.CARGO_CRATES.blocks.toTypedArray()
|
*MRegistry.CARGO_CRATES.blocks.values.toTypedArray()
|
||||||
).build(null) }
|
).build(null) }
|
||||||
val DRIVE_RACK: BlockEntityType<*> by registry.register(MNames.DRIVE_RACK) { BlockEntityType.Builder.of(::DriveRackBlockEntity, MBlocks.DRIVE_RACK).build(null) }
|
val DRIVE_RACK: BlockEntityType<*> by registry.register(MNames.DRIVE_RACK) { BlockEntityType.Builder.of(::DriveRackBlockEntity, MBlocks.DRIVE_RACK).build(null) }
|
||||||
val ITEM_MONITOR: BlockEntityType<*> by registry.register(MNames.ITEM_MONITOR) { BlockEntityType.Builder.of(::ItemMonitorBlockEntity, MBlocks.ITEM_MONITOR).build(null) }
|
val ITEM_MONITOR: BlockEntityType<*> by registry.register(MNames.ITEM_MONITOR) { BlockEntityType.Builder.of(::ItemMonitorBlockEntity, MBlocks.ITEM_MONITOR).build(null) }
|
||||||
|
@ -33,11 +33,11 @@ object MBlocks {
|
|||||||
private fun registerClient(event: FMLClientSetupEvent) {
|
private fun registerClient(event: FMLClientSetupEvent) {
|
||||||
val translucent = RenderType.translucent()
|
val translucent = RenderType.translucent()
|
||||||
|
|
||||||
for (block in MRegistry.INDUSTRIAL_GLASS.blocks) {
|
for (block in MRegistry.INDUSTRIAL_GLASS.blocks.values) {
|
||||||
ItemBlockRenderTypes.setRenderLayer(block, translucent)
|
ItemBlockRenderTypes.setRenderLayer(block, translucent)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (block in MRegistry.INDUSTRIAL_GLASS_PANE.blocks) {
|
for (block in MRegistry.INDUSTRIAL_GLASS_PANE.blocks.values) {
|
||||||
ItemBlockRenderTypes.setRenderLayer(block, translucent)
|
ItemBlockRenderTypes.setRenderLayer(block, translucent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,9 +9,8 @@ import net.minecraft.world.level.block.state.BlockBehaviour
|
|||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.RegistryObject
|
import net.minecraftforge.registries.RegistryObject
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.registry.LazyList
|
|
||||||
import ru.dbotthepony.mc.otm.registry.LazyMap
|
import ru.dbotthepony.mc.otm.registry.LazyMap
|
||||||
import ru.dbotthepony.mc.otm.registry.WriteOnce
|
import java.util.EnumMap
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Colored only
|
* Colored only
|
||||||
@ -22,228 +21,82 @@ open class ColoredDecorativeBlock(
|
|||||||
private val provider: (DyeColor) -> Block,
|
private val provider: (DyeColor) -> Block,
|
||||||
itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE
|
itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE
|
||||||
) {
|
) {
|
||||||
protected var _whiteBlock: RegistryObject<Block> by WriteOnce()
|
var registeredItems = false
|
||||||
private set
|
|
||||||
protected var _orangeBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _magentaBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _lightBlueBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _yellowBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _limeBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _pinkBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _grayBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _lightGrayBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _cyanBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _purpleBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _blueBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _brownBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _greenBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _redBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _blackBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
private set
|
private set
|
||||||
|
|
||||||
val whiteBlock: Block get() = _whiteBlock.get()
|
var registeredBlocks = false
|
||||||
val orangeBlock: Block get() = _orangeBlock.get()
|
|
||||||
val magentaBlock: Block get() = _magentaBlock.get()
|
|
||||||
val lightBlueBlock: Block get() = _lightBlueBlock.get()
|
|
||||||
val yellowBlock: Block get() = _yellowBlock.get()
|
|
||||||
val limeBlock: Block get() = _limeBlock.get()
|
|
||||||
val pinkBlock: Block get() = _pinkBlock.get()
|
|
||||||
val grayBlock: Block get() = _grayBlock.get()
|
|
||||||
val lightGrayBlock: Block get() = _lightGrayBlock.get()
|
|
||||||
val cyanBlock: Block get() = _cyanBlock.get()
|
|
||||||
val purpleBlock: Block get() = _purpleBlock.get()
|
|
||||||
val blueBlock: Block get() = _blueBlock.get()
|
|
||||||
val brownBlock: Block get() = _brownBlock.get()
|
|
||||||
val greenBlock: Block get() = _greenBlock.get()
|
|
||||||
val redBlock: Block get() = _redBlock.get()
|
|
||||||
val blackBlock: Block get() = _blackBlock.get()
|
|
||||||
|
|
||||||
protected var _whiteItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _orangeItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _magentaItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _lightBlueItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _yellowItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _limeItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _pinkItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _grayItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _lightGrayItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _cyanItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _purpleItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _blueItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _brownItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _greenItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _redItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
|
||||||
protected var _blackItem: RegistryObject<Item> by WriteOnce()
|
|
||||||
private set
|
private set
|
||||||
|
|
||||||
val whiteItem: Item get() = _whiteItem.get()
|
protected val itemMap = EnumMap<DyeColor, RegistryObject<Item>>(DyeColor::class.java)
|
||||||
val orangeItem: Item get() = _orangeItem.get()
|
protected val blockMap = EnumMap<DyeColor, RegistryObject<Block>>(DyeColor::class.java)
|
||||||
val magentaItem: Item get() = _magentaItem.get()
|
|
||||||
val lightBlueItem: Item get() = _lightBlueItem.get()
|
|
||||||
val yellowItem: Item get() = _yellowItem.get()
|
|
||||||
val limeItem: Item get() = _limeItem.get()
|
|
||||||
val pinkItem: Item get() = _pinkItem.get()
|
|
||||||
val grayItem: Item get() = _grayItem.get()
|
|
||||||
val lightGrayItem: Item get() = _lightGrayItem.get()
|
|
||||||
val cyanItem: Item get() = _cyanItem.get()
|
|
||||||
val purpleItem: Item get() = _purpleItem.get()
|
|
||||||
val blueItem: Item get() = _blueItem.get()
|
|
||||||
val brownItem: Item get() = _brownItem.get()
|
|
||||||
val greenItem: Item get() = _greenItem.get()
|
|
||||||
val redItem: Item get() = _redItem.get()
|
|
||||||
val blackItem: Item get() = _blackItem.get()
|
|
||||||
|
|
||||||
val coloredBlocks: List<Block> by lazy {
|
fun getItem(dyeColor: DyeColor): Item {
|
||||||
LazyList(
|
check(registeredItems) { "Didn't register items yet" }
|
||||||
_whiteBlock::get,
|
return itemMap[dyeColor]!!.get()
|
||||||
_orangeBlock::get,
|
|
||||||
_magentaBlock::get,
|
|
||||||
_lightBlueBlock::get,
|
|
||||||
_yellowBlock::get,
|
|
||||||
_limeBlock::get,
|
|
||||||
_pinkBlock::get,
|
|
||||||
_grayBlock::get,
|
|
||||||
_lightGrayBlock::get,
|
|
||||||
_cyanBlock::get,
|
|
||||||
_purpleBlock::get,
|
|
||||||
_blueBlock::get,
|
|
||||||
_brownBlock::get,
|
|
||||||
_greenBlock::get,
|
|
||||||
_redBlock::get,
|
|
||||||
_blackBlock::get,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val mappedColoredBlocks: Map<DyeColor, Block> by lazy {
|
fun getBlock(dyeColor: DyeColor): Block {
|
||||||
LazyMap(
|
check(registeredBlocks) { "Didn't register items yet" }
|
||||||
DyeColor.WHITE to _whiteBlock::get,
|
return blockMap[dyeColor]!!.get()
|
||||||
DyeColor.ORANGE to _orangeBlock::get,
|
|
||||||
DyeColor.MAGENTA to _magentaBlock::get,
|
|
||||||
DyeColor.LIGHT_BLUE to _lightBlueBlock::get,
|
|
||||||
DyeColor.YELLOW to _yellowBlock::get,
|
|
||||||
DyeColor.LIME to _limeBlock::get,
|
|
||||||
DyeColor.PINK to _pinkBlock::get,
|
|
||||||
DyeColor.GRAY to _grayBlock::get,
|
|
||||||
DyeColor.LIGHT_GRAY to _lightGrayBlock::get,
|
|
||||||
DyeColor.CYAN to _cyanBlock::get,
|
|
||||||
DyeColor.PURPLE to _purpleBlock::get,
|
|
||||||
DyeColor.BLUE to _blueBlock::get,
|
|
||||||
DyeColor.BROWN to _brownBlock::get,
|
|
||||||
DyeColor.GREEN to _greenBlock::get,
|
|
||||||
DyeColor.RED to _redBlock::get,
|
|
||||||
DyeColor.BLACK to _blackBlock::get,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val coloredItems: List<Item> by lazy {
|
val blocks: Map<DyeColor, Block> by lazy {
|
||||||
LazyList(
|
check(registeredBlocks) { "Didn't register blocks yet" }
|
||||||
_whiteItem::get,
|
LazyMap(blockMap.map { it.key to it.value::get })
|
||||||
_orangeItem::get,
|
|
||||||
_magentaItem::get,
|
|
||||||
_lightBlueItem::get,
|
|
||||||
_yellowItem::get,
|
|
||||||
_limeItem::get,
|
|
||||||
_pinkItem::get,
|
|
||||||
_grayItem::get,
|
|
||||||
_lightGrayItem::get,
|
|
||||||
_cyanItem::get,
|
|
||||||
_purpleItem::get,
|
|
||||||
_blueItem::get,
|
|
||||||
_brownItem::get,
|
|
||||||
_greenItem::get,
|
|
||||||
_redItem::get,
|
|
||||||
_blackItem::get,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val mappedColoredItems: Map<DyeColor, Item> by lazy {
|
val items: Map<DyeColor, Item> by lazy {
|
||||||
LazyMap(
|
check(registeredItems) { "Didn't register items yet" }
|
||||||
DyeColor.WHITE to _whiteItem::get,
|
LazyMap(itemMap.map { it.key to it.value::get })
|
||||||
DyeColor.ORANGE to _orangeItem::get,
|
|
||||||
DyeColor.MAGENTA to _magentaItem::get,
|
|
||||||
DyeColor.LIGHT_BLUE to _lightBlueItem::get,
|
|
||||||
DyeColor.YELLOW to _yellowItem::get,
|
|
||||||
DyeColor.LIME to _limeItem::get,
|
|
||||||
DyeColor.PINK to _pinkItem::get,
|
|
||||||
DyeColor.GRAY to _grayItem::get,
|
|
||||||
DyeColor.LIGHT_GRAY to _lightGrayItem::get,
|
|
||||||
DyeColor.CYAN to _cyanItem::get,
|
|
||||||
DyeColor.PURPLE to _purpleItem::get,
|
|
||||||
DyeColor.BLUE to _blueItem::get,
|
|
||||||
DyeColor.BROWN to _brownItem::get,
|
|
||||||
DyeColor.GREEN to _greenItem::get,
|
|
||||||
DyeColor.RED to _redItem::get,
|
|
||||||
DyeColor.BLACK to _blackItem::get,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun registerBlocks(registry: DeferredRegister<Block>) {
|
open fun registerBlocks(registry: DeferredRegister<Block>) {
|
||||||
_whiteBlock = registry.register("${baseName}_white") { provider.invoke(DyeColor.WHITE) }
|
check(blockMap.isEmpty()) { "( ͡° ͜ʖ ͡°) No. \\(• ε •)/ ( ͠° ل͜ ͡°) ( ͠° ͟ ͟ʖ ͡°) (ง ͠° ͟ل͜ ͡°)ง ( ͡°︺͡°) ('ω')" }
|
||||||
_orangeBlock = registry.register("${baseName}_orange") { provider.invoke(DyeColor.ORANGE) }
|
|
||||||
_magentaBlock = registry.register("${baseName}_magenta") { provider.invoke(DyeColor.MAGENTA) }
|
blockMap[DyeColor.WHITE] = registry.register("${baseName}_white") { provider.invoke(DyeColor.WHITE) }
|
||||||
_lightBlueBlock = registry.register("${baseName}_light_blue") { provider.invoke(DyeColor.LIGHT_BLUE) }
|
blockMap[DyeColor.ORANGE] = registry.register("${baseName}_orange") { provider.invoke(DyeColor.ORANGE) }
|
||||||
_yellowBlock = registry.register("${baseName}_yellow") { provider.invoke(DyeColor.YELLOW) }
|
blockMap[DyeColor.MAGENTA] = registry.register("${baseName}_magenta") { provider.invoke(DyeColor.MAGENTA) }
|
||||||
_limeBlock = registry.register("${baseName}_lime") { provider.invoke(DyeColor.LIME) }
|
blockMap[DyeColor.LIGHT_BLUE] = registry.register("${baseName}_light_blue") { provider.invoke(DyeColor.LIGHT_BLUE) }
|
||||||
_pinkBlock = registry.register("${baseName}_pink") { provider.invoke(DyeColor.PINK) }
|
blockMap[DyeColor.YELLOW] = registry.register("${baseName}_yellow") { provider.invoke(DyeColor.YELLOW) }
|
||||||
_grayBlock = registry.register("${baseName}_gray") { provider.invoke(DyeColor.GRAY) }
|
blockMap[DyeColor.LIME] = registry.register("${baseName}_lime") { provider.invoke(DyeColor.LIME) }
|
||||||
_lightGrayBlock = registry.register("${baseName}_light_gray") { provider.invoke(DyeColor.LIGHT_GRAY) }
|
blockMap[DyeColor.PINK] = registry.register("${baseName}_pink") { provider.invoke(DyeColor.PINK) }
|
||||||
_cyanBlock = registry.register("${baseName}_cyan") { provider.invoke(DyeColor.CYAN) }
|
blockMap[DyeColor.GRAY] = registry.register("${baseName}_gray") { provider.invoke(DyeColor.GRAY) }
|
||||||
_purpleBlock = registry.register("${baseName}_purple") { provider.invoke(DyeColor.PURPLE) }
|
blockMap[DyeColor.LIGHT_GRAY] = registry.register("${baseName}_light_gray") { provider.invoke(DyeColor.LIGHT_GRAY) }
|
||||||
_blueBlock = registry.register("${baseName}_blue") { provider.invoke(DyeColor.BLUE) }
|
blockMap[DyeColor.CYAN] = registry.register("${baseName}_cyan") { provider.invoke(DyeColor.CYAN) }
|
||||||
_brownBlock = registry.register("${baseName}_brown") { provider.invoke(DyeColor.BROWN) }
|
blockMap[DyeColor.PURPLE] = registry.register("${baseName}_purple") { provider.invoke(DyeColor.PURPLE) }
|
||||||
_greenBlock = registry.register("${baseName}_green") { provider.invoke(DyeColor.GREEN) }
|
blockMap[DyeColor.BLUE] = registry.register("${baseName}_blue") { provider.invoke(DyeColor.BLUE) }
|
||||||
_redBlock = registry.register("${baseName}_red") { provider.invoke(DyeColor.RED) }
|
blockMap[DyeColor.BROWN] = registry.register("${baseName}_brown") { provider.invoke(DyeColor.BROWN) }
|
||||||
_blackBlock = registry.register("${baseName}_black") { provider.invoke(DyeColor.BLACK) }
|
blockMap[DyeColor.GREEN] = registry.register("${baseName}_green") { provider.invoke(DyeColor.GREEN) }
|
||||||
|
blockMap[DyeColor.RED] = registry.register("${baseName}_red") { provider.invoke(DyeColor.RED) }
|
||||||
|
blockMap[DyeColor.BLACK] = registry.register("${baseName}_black") { provider.invoke(DyeColor.BLACK) }
|
||||||
|
|
||||||
|
registeredBlocks = true
|
||||||
}
|
}
|
||||||
|
|
||||||
private val properties = Item.Properties().tab(itemGroup).stacksTo(64)
|
private val properties = Item.Properties().tab(itemGroup).stacksTo(64)
|
||||||
|
|
||||||
open fun registerItems(registry: DeferredRegister<Item>) {
|
open fun registerItems(registry: DeferredRegister<Item>) {
|
||||||
_whiteItem = registry.register("${baseName}_white") { BlockItem(_whiteBlock.get(), properties) }
|
check(itemMap.isEmpty()) { "( ͡° ͜ʖ ͡°) No. \\(• ε •)/ ( ͠° ل͜ ͡°) ( ͠° ͟ ͟ʖ ͡°) (ง ͠° ͟ل͜ ͡°)ง ( ͡°︺͡°) ('ω')" }
|
||||||
_orangeItem = registry.register("${baseName}_orange") { BlockItem(_orangeBlock.get(), properties) }
|
check(registeredBlocks) { "wtffffff???????????" }
|
||||||
_magentaItem = registry.register("${baseName}_magenta") { BlockItem(_magentaBlock.get(), properties) }
|
|
||||||
_lightBlueItem = registry.register("${baseName}_light_blue") { BlockItem(_lightBlueBlock.get(), properties) }
|
itemMap[DyeColor.WHITE] = registry.register("${baseName}_white") { BlockItem(blockMap[DyeColor.WHITE]!!.get(), properties) }
|
||||||
_yellowItem = registry.register("${baseName}_yellow") { BlockItem(_yellowBlock.get(), properties) }
|
itemMap[DyeColor.ORANGE] = registry.register("${baseName}_orange") { BlockItem(blockMap[DyeColor.ORANGE]!!.get(), properties) }
|
||||||
_limeItem = registry.register("${baseName}_lime") { BlockItem(_limeBlock.get(), properties) }
|
itemMap[DyeColor.MAGENTA] = registry.register("${baseName}_magenta") { BlockItem(blockMap[DyeColor.MAGENTA]!!.get(), properties) }
|
||||||
_pinkItem = registry.register("${baseName}_pink") { BlockItem(_pinkBlock.get(), properties) }
|
itemMap[DyeColor.LIGHT_BLUE] = registry.register("${baseName}_light_blue") { BlockItem(blockMap[DyeColor.LIGHT_BLUE]!!.get(), properties) }
|
||||||
_grayItem = registry.register("${baseName}_gray") { BlockItem(_grayBlock.get(), properties) }
|
itemMap[DyeColor.YELLOW] = registry.register("${baseName}_yellow") { BlockItem(blockMap[DyeColor.YELLOW]!!.get(), properties) }
|
||||||
_lightGrayItem = registry.register("${baseName}_light_gray") { BlockItem(_lightGrayBlock.get(), properties) }
|
itemMap[DyeColor.LIME] = registry.register("${baseName}_lime") { BlockItem(blockMap[DyeColor.LIME]!!.get(), properties) }
|
||||||
_cyanItem = registry.register("${baseName}_cyan") { BlockItem(_cyanBlock.get(), properties) }
|
itemMap[DyeColor.PINK] = registry.register("${baseName}_pink") { BlockItem(blockMap[DyeColor.PINK]!!.get(), properties) }
|
||||||
_purpleItem = registry.register("${baseName}_purple") { BlockItem(_purpleBlock.get(), properties) }
|
itemMap[DyeColor.GRAY] = registry.register("${baseName}_gray") { BlockItem(blockMap[DyeColor.GRAY]!!.get(), properties) }
|
||||||
_blueItem = registry.register("${baseName}_blue") { BlockItem(_blueBlock.get(), properties) }
|
itemMap[DyeColor.LIGHT_GRAY] = registry.register("${baseName}_light_gray") { BlockItem(blockMap[DyeColor.LIGHT_GRAY]!!.get(), properties) }
|
||||||
_brownItem = registry.register("${baseName}_brown") { BlockItem(_brownBlock.get(), properties) }
|
itemMap[DyeColor.CYAN] = registry.register("${baseName}_cyan") { BlockItem(blockMap[DyeColor.CYAN]!!.get(), properties) }
|
||||||
_greenItem = registry.register("${baseName}_green") { BlockItem(_greenBlock.get(), properties) }
|
itemMap[DyeColor.PURPLE] = registry.register("${baseName}_purple") { BlockItem(blockMap[DyeColor.PURPLE]!!.get(), properties) }
|
||||||
_redItem = registry.register("${baseName}_red") { BlockItem(_redBlock.get(), properties) }
|
itemMap[DyeColor.BLUE] = registry.register("${baseName}_blue") { BlockItem(blockMap[DyeColor.BLUE]!!.get(), properties) }
|
||||||
_blackItem = registry.register("${baseName}_black") { BlockItem(_blackBlock.get(), properties) }
|
itemMap[DyeColor.BROWN] = registry.register("${baseName}_brown") { BlockItem(blockMap[DyeColor.BROWN]!!.get(), properties) }
|
||||||
|
itemMap[DyeColor.GREEN] = registry.register("${baseName}_green") { BlockItem(blockMap[DyeColor.GREEN]!!.get(), properties) }
|
||||||
|
itemMap[DyeColor.RED] = registry.register("${baseName}_red") { BlockItem(blockMap[DyeColor.RED]!!.get(), properties) }
|
||||||
|
itemMap[DyeColor.BLACK] = registry.register("${baseName}_black") { BlockItem(blockMap[DyeColor.BLACK]!!.get(), properties) }
|
||||||
|
|
||||||
|
registeredItems = true
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -9,7 +9,6 @@ import net.minecraft.world.level.block.state.BlockBehaviour
|
|||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.RegistryObject
|
import net.minecraftforge.registries.RegistryObject
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.registry.LazyList
|
|
||||||
import ru.dbotthepony.mc.otm.registry.LazyMap
|
import ru.dbotthepony.mc.otm.registry.LazyMap
|
||||||
import ru.dbotthepony.mc.otm.registry.WriteOnce
|
import ru.dbotthepony.mc.otm.registry.WriteOnce
|
||||||
|
|
||||||
@ -28,110 +27,23 @@ class DecorativeBlock(
|
|||||||
val block: Block get() = _block.get()
|
val block: Block get() = _block.get()
|
||||||
val item: Item get() = _item.get()
|
val item: Item get() = _item.get()
|
||||||
|
|
||||||
val mappedColoredBlocksAll: Map<DyeColor?, Block> by lazy {
|
val allBlocks: Map<DyeColor?, Block> by lazy {
|
||||||
LazyMap(
|
check(registeredBlocks) { "Didn't register items yet" }
|
||||||
null to _block::get,
|
LazyMap(blockMap.map { it.key to it.value::get }.toMutableList().also { it.add(null to _block::get) })
|
||||||
DyeColor.WHITE to _whiteBlock::get,
|
|
||||||
DyeColor.ORANGE to _orangeBlock::get,
|
|
||||||
DyeColor.MAGENTA to _magentaBlock::get,
|
|
||||||
DyeColor.LIGHT_BLUE to _lightBlueBlock::get,
|
|
||||||
DyeColor.YELLOW to _yellowBlock::get,
|
|
||||||
DyeColor.LIME to _limeBlock::get,
|
|
||||||
DyeColor.PINK to _pinkBlock::get,
|
|
||||||
DyeColor.GRAY to _grayBlock::get,
|
|
||||||
DyeColor.LIGHT_GRAY to _lightGrayBlock::get,
|
|
||||||
DyeColor.CYAN to _cyanBlock::get,
|
|
||||||
DyeColor.PURPLE to _purpleBlock::get,
|
|
||||||
DyeColor.BLUE to _blueBlock::get,
|
|
||||||
DyeColor.BROWN to _brownBlock::get,
|
|
||||||
DyeColor.GREEN to _greenBlock::get,
|
|
||||||
DyeColor.RED to _redBlock::get,
|
|
||||||
DyeColor.BLACK to _blackBlock::get,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val mappedColoredItemsAll: Map<DyeColor?, Item> by lazy {
|
val allItems: Map<DyeColor?, Item> by lazy {
|
||||||
LazyMap(
|
check(registeredItems) { "Didn't register items yet" }
|
||||||
null to _item::get,
|
LazyMap(itemMap.map { it.key to it.value::get }.toMutableList().also { it.add(null to _item::get) })
|
||||||
DyeColor.WHITE to _whiteItem::get,
|
|
||||||
DyeColor.ORANGE to _orangeItem::get,
|
|
||||||
DyeColor.MAGENTA to _magentaItem::get,
|
|
||||||
DyeColor.LIGHT_BLUE to _lightBlueItem::get,
|
|
||||||
DyeColor.YELLOW to _yellowItem::get,
|
|
||||||
DyeColor.LIME to _limeItem::get,
|
|
||||||
DyeColor.PINK to _pinkItem::get,
|
|
||||||
DyeColor.GRAY to _grayItem::get,
|
|
||||||
DyeColor.LIGHT_GRAY to _lightGrayItem::get,
|
|
||||||
DyeColor.CYAN to _cyanItem::get,
|
|
||||||
DyeColor.PURPLE to _purpleItem::get,
|
|
||||||
DyeColor.BLUE to _blueItem::get,
|
|
||||||
DyeColor.BROWN to _brownItem::get,
|
|
||||||
DyeColor.GREEN to _greenItem::get,
|
|
||||||
DyeColor.RED to _redItem::get,
|
|
||||||
DyeColor.BLACK to _blackItem::get,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
val blocks: List<Block> by lazy {
|
|
||||||
LazyList(
|
|
||||||
_block::get,
|
|
||||||
|
|
||||||
_whiteBlock::get,
|
|
||||||
_orangeBlock::get,
|
|
||||||
_magentaBlock::get,
|
|
||||||
_lightBlueBlock::get,
|
|
||||||
_yellowBlock::get,
|
|
||||||
_limeBlock::get,
|
|
||||||
_pinkBlock::get,
|
|
||||||
_grayBlock::get,
|
|
||||||
_lightGrayBlock::get,
|
|
||||||
_cyanBlock::get,
|
|
||||||
_purpleBlock::get,
|
|
||||||
_blueBlock::get,
|
|
||||||
_brownBlock::get,
|
|
||||||
_greenBlock::get,
|
|
||||||
_redBlock::get,
|
|
||||||
_blackBlock::get,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
val items: List<Item> by lazy {
|
|
||||||
LazyList(
|
|
||||||
_item::get,
|
|
||||||
|
|
||||||
_whiteItem::get,
|
|
||||||
_orangeItem::get,
|
|
||||||
_magentaItem::get,
|
|
||||||
_lightBlueItem::get,
|
|
||||||
_yellowItem::get,
|
|
||||||
_limeItem::get,
|
|
||||||
_pinkItem::get,
|
|
||||||
_grayItem::get,
|
|
||||||
_lightGrayItem::get,
|
|
||||||
_cyanItem::get,
|
|
||||||
_purpleItem::get,
|
|
||||||
_blueItem::get,
|
|
||||||
_brownItem::get,
|
|
||||||
_greenItem::get,
|
|
||||||
_redItem::get,
|
|
||||||
_blackItem::get,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun registerBlocks(registry: DeferredRegister<Block>) {
|
override fun registerBlocks(registry: DeferredRegister<Block>) {
|
||||||
_block = registry.register(baseName) { provider.invoke(DyeColor.WHITE) }
|
_block = registry.register(baseName) { provider.invoke(null) }
|
||||||
|
|
||||||
super.registerBlocks(registry)
|
super.registerBlocks(registry)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun registerItems(registry: DeferredRegister<Item>) {
|
override fun registerItems(registry: DeferredRegister<Item>) {
|
||||||
_item = registry.register(baseName) {
|
_item = registry.register(baseName) { BlockItem(_block.get(), Item.Properties().tab(baseItemGroup).stacksTo(64)) }
|
||||||
BlockItem(
|
|
||||||
_block.get(),
|
|
||||||
Item.Properties().tab(baseItemGroup).stacksTo(64)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
super.registerItems(registry)
|
super.registerItems(registry)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,34 +25,22 @@ class StripedColoredDecorativeBlock(
|
|||||||
private val mapItems = EnumMap<DyeColor, EnumMap<DyeColor, RegistryObject<Item>>>(DyeColor::class.java)
|
private val mapItems = EnumMap<DyeColor, EnumMap<DyeColor, RegistryObject<Item>>>(DyeColor::class.java)
|
||||||
|
|
||||||
fun getBlockNullable(base: DyeColor, stripe: DyeColor): Block? {
|
fun getBlockNullable(base: DyeColor, stripe: DyeColor): Block? {
|
||||||
if (!registeredBlocks) {
|
check(registeredBlocks) { "Didn't register items yet" }
|
||||||
throw IllegalStateException("Not yet registered blocks")
|
|
||||||
}
|
|
||||||
|
|
||||||
return mapBlocks.get(base)?.get(stripe)?.get()
|
return mapBlocks.get(base)?.get(stripe)?.get()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getItemNullable(base: DyeColor, stripe: DyeColor): Item? {
|
fun getItemNullable(base: DyeColor, stripe: DyeColor): Item? {
|
||||||
if (!registeredItems) {
|
check(registeredItems) { "Didn't register items yet" }
|
||||||
throw IllegalStateException("Not yet registered items")
|
|
||||||
}
|
|
||||||
|
|
||||||
return mapItems.get(base)?.get(stripe)?.get()
|
return mapItems.get(base)?.get(stripe)?.get()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBlock(base: DyeColor, stripe: DyeColor): Block {
|
fun getBlock(base: DyeColor, stripe: DyeColor): Block {
|
||||||
if (!registeredBlocks) {
|
check(registeredBlocks) { "Didn't register items yet" }
|
||||||
throw IllegalStateException("Not yet registered blocks")
|
|
||||||
}
|
|
||||||
|
|
||||||
return mapBlocks.get(base)?.get(stripe)?.get() ?: throw NoSuchElementException("$base colored $stripe striped block does not exist")
|
return mapBlocks.get(base)?.get(stripe)?.get() ?: throw NoSuchElementException("$base colored $stripe striped block does not exist")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getItem(base: DyeColor, stripe: DyeColor): Item {
|
fun getItem(base: DyeColor, stripe: DyeColor): Item {
|
||||||
if (!registeredItems) {
|
check(registeredItems) { "Didn't register items yet" }
|
||||||
throw IllegalStateException("Not yet registered items")
|
|
||||||
}
|
|
||||||
|
|
||||||
return mapItems.get(base)?.get(stripe)?.get() ?: throw NoSuchElementException("$base colored $stripe striped item does not exist")
|
return mapItems.get(base)?.get(stripe)?.get() ?: throw NoSuchElementException("$base colored $stripe striped item does not exist")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,78 +50,38 @@ class StripedColoredDecorativeBlock(
|
|||||||
var registeredBlocks = false
|
var registeredBlocks = false
|
||||||
private set
|
private set
|
||||||
|
|
||||||
val items: List<Item> by lazy {
|
val items: Map<DyeColor, Map<DyeColor, Item>> by lazy {
|
||||||
if (!registeredItems) {
|
check(registeredItems) { "Didn't register items yet" }
|
||||||
throw IllegalStateException("Not yet registered items")
|
|
||||||
}
|
|
||||||
|
|
||||||
val build = ImmutableList.builder<() -> Item>()
|
|
||||||
|
|
||||||
for (children in mapItems.values) {
|
|
||||||
for (registryObject in children.values) {
|
|
||||||
build.add(registryObject::get)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LazyList(build.build())
|
|
||||||
}
|
|
||||||
|
|
||||||
val blocks: List<Block> by lazy {
|
|
||||||
if (!registeredBlocks) {
|
|
||||||
throw IllegalStateException("Not yet registered blocks")
|
|
||||||
}
|
|
||||||
|
|
||||||
val build = ImmutableList.builder<() -> Block>()
|
|
||||||
|
|
||||||
for (children in mapBlocks.values) {
|
|
||||||
for (registryObject in children.values) {
|
|
||||||
build.add(registryObject::get)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
LazyList(build.build())
|
|
||||||
}
|
|
||||||
|
|
||||||
val mappedBlocks: Map<DyeColor, Map<DyeColor, Block>> by lazy {
|
|
||||||
if (!registeredBlocks) {
|
|
||||||
throw IllegalStateException("Not yet registered blocks")
|
|
||||||
}
|
|
||||||
|
|
||||||
val builder = ImmutableMap.Builder<DyeColor, Map<DyeColor, Block>>()
|
|
||||||
|
|
||||||
for ((base, children) in mapBlocks) {
|
|
||||||
val result = ArrayList<Pair<DyeColor, () -> Block>>()
|
|
||||||
|
|
||||||
for ((stripe, registryObject) in children) {
|
|
||||||
result.add(stripe to registryObject::get)
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.put(base, LazyMap(result))
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.build()
|
|
||||||
}
|
|
||||||
|
|
||||||
val mappedItems: Map<DyeColor, Map<DyeColor, Item>> by lazy {
|
|
||||||
if (!registeredItems) {
|
|
||||||
throw IllegalStateException("Not yet registered items")
|
|
||||||
}
|
|
||||||
|
|
||||||
val builder = ImmutableMap.Builder<DyeColor, Map<DyeColor, Item>>()
|
val builder = ImmutableMap.Builder<DyeColor, Map<DyeColor, Item>>()
|
||||||
|
|
||||||
for ((base, children) in mapItems) {
|
for ((base, children) in mapItems) {
|
||||||
val result = ArrayList<Pair<DyeColor, () -> Item>>()
|
builder.put(base, LazyMap(children.map { it.key to it.value::get }))
|
||||||
|
|
||||||
for ((stripe, registryObject) in children) {
|
|
||||||
result.add(stripe to registryObject::get)
|
|
||||||
}
|
|
||||||
|
|
||||||
builder.put(base, LazyMap(result))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.build()
|
builder.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val blocks: Map<DyeColor, Map<DyeColor, Block>> by lazy {
|
||||||
|
check(registeredBlocks) { "Didn't register items yet" }
|
||||||
|
val builder = ImmutableMap.Builder<DyeColor, Map<DyeColor, Block>>()
|
||||||
|
|
||||||
|
for ((base, children) in mapBlocks) {
|
||||||
|
builder.put(base, LazyMap(children.map { it.key to it.value::get }))
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
val flatItems: List<Item> by lazy {
|
||||||
|
check(registeredItems) { "Didn't register items yet" }
|
||||||
|
LazyList(mapItems.flatMap { it.value.values }.map { it::get })
|
||||||
|
}
|
||||||
|
|
||||||
|
val flatBlocks: List<Block> by lazy {
|
||||||
|
check(registeredBlocks) { "Didn't register items yet" }
|
||||||
|
LazyList(mapBlocks.flatMap { it.value.values }.map { it::get })
|
||||||
|
}
|
||||||
|
|
||||||
fun registerItems(registry: DeferredRegister<Item>) {
|
fun registerItems(registry: DeferredRegister<Item>) {
|
||||||
for (base in DyeColor.values()) {
|
for (base in DyeColor.values()) {
|
||||||
for (stripe in DyeColor.values()) {
|
for (stripe in DyeColor.values()) {
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"variants": {
|
|
||||||
"facing=north,open=true": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_open",
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"facing=north,open=false": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_closed",
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"facing=south,open=true": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_open",
|
|
||||||
"y": 180
|
|
||||||
},
|
|
||||||
"facing=south,open=false": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_closed",
|
|
||||||
"y": 180
|
|
||||||
},
|
|
||||||
"facing=west,open=true": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_open",
|
|
||||||
"y": 270
|
|
||||||
},
|
|
||||||
"facing=west,open=false": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_closed",
|
|
||||||
"y": 270
|
|
||||||
},
|
|
||||||
"facing=east,open=true": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_open",
|
|
||||||
"y": 90
|
|
||||||
},
|
|
||||||
"facing=east,open=false": {
|
|
||||||
"model": "overdrive_that_matters:block/cargo_crate_closed",
|
|
||||||
"y": 90
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user