Move registry helper classes to subpackage
This commit is contained in:
parent
c0d71a49fc
commit
56d5277988
@ -37,6 +37,8 @@ import ru.dbotthepony.mc.otm.registry.*
|
|||||||
import ru.dbotthepony.mc.otm.*
|
import ru.dbotthepony.mc.otm.*
|
||||||
import ru.dbotthepony.mc.otm.datagen.recipes.MatteryRecipe
|
import ru.dbotthepony.mc.otm.datagen.recipes.MatteryRecipe
|
||||||
import ru.dbotthepony.mc.otm.datagen.recipes.addCraftingTableRecipes
|
import ru.dbotthepony.mc.otm.datagen.recipes.addCraftingTableRecipes
|
||||||
|
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock
|
||||||
|
import ru.dbotthepony.mc.otm.registry.objects.DecorativeBlock
|
||||||
|
|
||||||
@Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
@Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
object DataGen {
|
object DataGen {
|
||||||
|
@ -16,7 +16,7 @@ import net.minecraftforge.common.data.LanguageProvider
|
|||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||||
import ru.dbotthepony.mc.otm.registry.ColoredDecorativeBlock
|
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock
|
||||||
|
|
||||||
private fun researchString(key: AndroidResearchType<*>): String {
|
private fun researchString(key: AndroidResearchType<*>): String {
|
||||||
val displayName = key.displayName
|
val displayName = key.displayName
|
||||||
|
@ -9,10 +9,6 @@ import net.minecraft.resources.ResourceKey
|
|||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.damagesource.DamageSource
|
import net.minecraft.world.damagesource.DamageSource
|
||||||
import net.minecraft.world.entity.EntityType
|
import net.minecraft.world.entity.EntityType
|
||||||
import net.minecraft.world.item.BlockItem
|
|
||||||
import net.minecraft.world.item.CreativeModeTab
|
|
||||||
import net.minecraft.world.item.DyeColor
|
|
||||||
import net.minecraft.world.item.Item
|
|
||||||
import net.minecraft.world.level.BlockGetter
|
import net.minecraft.world.level.BlockGetter
|
||||||
import net.minecraft.world.level.block.*
|
import net.minecraft.world.level.block.*
|
||||||
import net.minecraft.world.level.block.state.BlockBehaviour
|
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||||
@ -20,16 +16,17 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraft.world.level.material.Material
|
import net.minecraft.world.level.material.Material
|
||||||
import net.minecraft.world.level.material.MaterialColor
|
import net.minecraft.world.level.material.MaterialColor
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
|
||||||
import net.minecraftforge.registries.ForgeRegistry
|
import net.minecraftforge.registries.ForgeRegistry
|
||||||
import net.minecraftforge.registries.IForgeRegistry
|
import net.minecraftforge.registries.IForgeRegistry
|
||||||
import net.minecraftforge.registries.NewRegistryEvent
|
import net.minecraftforge.registries.NewRegistryEvent
|
||||||
import net.minecraftforge.registries.RegistryBuilder
|
import net.minecraftforge.registries.RegistryBuilder
|
||||||
import net.minecraftforge.registries.RegistryObject
|
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||||
import ru.dbotthepony.mc.otm.block.CargoCrateBlock
|
import ru.dbotthepony.mc.otm.block.CargoCrateBlock
|
||||||
|
import ru.dbotthepony.mc.otm.registry.objects.ColoredDecorativeBlock
|
||||||
|
import ru.dbotthepony.mc.otm.registry.objects.CrateProperties
|
||||||
|
import ru.dbotthepony.mc.otm.registry.objects.DecorativeBlock
|
||||||
import java.util.function.Supplier
|
import java.util.function.Supplier
|
||||||
import kotlin.properties.ReadWriteProperty
|
import kotlin.properties.ReadWriteProperty
|
||||||
import kotlin.reflect.KProperty
|
import kotlin.reflect.KProperty
|
||||||
@ -42,15 +39,6 @@ fun <T> Registry<T>.register(key: ResourceLocation, value: T): Holder<T> {
|
|||||||
return (this as WritableRegistry<T>).register(ResourceKey.create(key(), key), value, Lifecycle.stable())
|
return (this as WritableRegistry<T>).register(ResourceKey.create(key(), key), value, Lifecycle.stable())
|
||||||
}
|
}
|
||||||
|
|
||||||
class CrateProperties(val color: MaterialColor, val name: String) {
|
|
||||||
fun makeBlock(): Block {
|
|
||||||
return Block(BlockBehaviour.Properties.of(Material.METAL, color)
|
|
||||||
.sound(SoundType.METAL)
|
|
||||||
.requiresCorrectToolForDrops()
|
|
||||||
.strength(5.0F, 6.0F))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class RegistryDelegate<T>(key: String) {
|
private class RegistryDelegate<T>(key: String) {
|
||||||
private var value: Supplier<IForgeRegistry<T>?>? = null
|
private var value: Supplier<IForgeRegistry<T>?>? = null
|
||||||
|
|
||||||
@ -91,374 +79,6 @@ class WriteOnce<V> : ReadWriteProperty<Any, V> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Colored only
|
|
||||||
*/
|
|
||||||
@Suppress("PropertyName", "unused")
|
|
||||||
open class ColoredDecorativeBlock(
|
|
||||||
val baseName: String,
|
|
||||||
private val provider: (DyeColor) -> Block,
|
|
||||||
val itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE
|
|
||||||
) {
|
|
||||||
protected var _whiteBlock: RegistryObject<Block> by WriteOnce()
|
|
||||||
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
|
|
||||||
|
|
||||||
val whiteBlock: Block get() = _whiteBlock.get()
|
|
||||||
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
|
|
||||||
|
|
||||||
val whiteItem: Item get() = _whiteItem.get()
|
|
||||||
val orangeItem: Item get() = _orangeItem.get()
|
|
||||||
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 {
|
|
||||||
LazyList(
|
|
||||||
_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 mappedColoredBlocks: Map<DyeColor, Block> by lazy {
|
|
||||||
LazyMap(
|
|
||||||
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 coloredItems: List<Item> by lazy {
|
|
||||||
LazyList(
|
|
||||||
_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,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
val mappedColoredItems: Map<DyeColor, Item> by lazy {
|
|
||||||
LazyMap(
|
|
||||||
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,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun registerBlocks(registry: DeferredRegister<Block>) {
|
|
||||||
_whiteBlock = registry.register("${baseName}_white") { provider.invoke(DyeColor.WHITE) }
|
|
||||||
_orangeBlock = registry.register("${baseName}_orange") { provider.invoke(DyeColor.ORANGE) }
|
|
||||||
_magentaBlock = registry.register("${baseName}_magenta") { provider.invoke(DyeColor.MAGENTA) }
|
|
||||||
_lightBlueBlock = registry.register("${baseName}_light_blue") { provider.invoke(DyeColor.LIGHT_BLUE) }
|
|
||||||
_yellowBlock = registry.register("${baseName}_yellow") { provider.invoke(DyeColor.YELLOW) }
|
|
||||||
_limeBlock = registry.register("${baseName}_lime") { provider.invoke(DyeColor.LIME) }
|
|
||||||
_pinkBlock = registry.register("${baseName}_pink") { provider.invoke(DyeColor.PINK) }
|
|
||||||
_grayBlock = registry.register("${baseName}_gray") { provider.invoke(DyeColor.GRAY) }
|
|
||||||
_lightGrayBlock = registry.register("${baseName}_light_gray") { provider.invoke(DyeColor.LIGHT_GRAY) }
|
|
||||||
_cyanBlock = registry.register("${baseName}_cyan") { provider.invoke(DyeColor.CYAN) }
|
|
||||||
_purpleBlock = registry.register("${baseName}_purple") { provider.invoke(DyeColor.PURPLE) }
|
|
||||||
_blueBlock = registry.register("${baseName}_blue") { provider.invoke(DyeColor.BLUE) }
|
|
||||||
_brownBlock = registry.register("${baseName}_brown") { provider.invoke(DyeColor.BROWN) }
|
|
||||||
_greenBlock = registry.register("${baseName}_green") { provider.invoke(DyeColor.GREEN) }
|
|
||||||
_redBlock = registry.register("${baseName}_red") { provider.invoke(DyeColor.RED) }
|
|
||||||
_blackBlock = registry.register("${baseName}_black") { provider.invoke(DyeColor.BLACK) }
|
|
||||||
}
|
|
||||||
|
|
||||||
private val properties = Item.Properties().tab(itemGroup).stacksTo(64)
|
|
||||||
|
|
||||||
open fun registerItems(registry: DeferredRegister<Item>) {
|
|
||||||
_whiteItem = registry.register("${baseName}_white") { BlockItem(_whiteBlock.get(), properties) }
|
|
||||||
_orangeItem = registry.register("${baseName}_orange") { BlockItem(_orangeBlock.get(), properties) }
|
|
||||||
_magentaItem = registry.register("${baseName}_magenta") { BlockItem(_magentaBlock.get(), properties) }
|
|
||||||
_lightBlueItem = registry.register("${baseName}_light_blue") { BlockItem(_lightBlueBlock.get(), properties) }
|
|
||||||
_yellowItem = registry.register("${baseName}_yellow") { BlockItem(_yellowBlock.get(), properties) }
|
|
||||||
_limeItem = registry.register("${baseName}_lime") { BlockItem(_limeBlock.get(), properties) }
|
|
||||||
_pinkItem = registry.register("${baseName}_pink") { BlockItem(_pinkBlock.get(), properties) }
|
|
||||||
_grayItem = registry.register("${baseName}_gray") { BlockItem(_grayBlock.get(), properties) }
|
|
||||||
_lightGrayItem = registry.register("${baseName}_light_gray") { BlockItem(_lightGrayBlock.get(), properties) }
|
|
||||||
_cyanItem = registry.register("${baseName}_cyan") { BlockItem(_cyanBlock.get(), properties) }
|
|
||||||
_purpleItem = registry.register("${baseName}_purple") { BlockItem(_purpleBlock.get(), properties) }
|
|
||||||
_blueItem = registry.register("${baseName}_blue") { BlockItem(_blueBlock.get(), properties) }
|
|
||||||
_brownItem = registry.register("${baseName}_brown") { BlockItem(_brownBlock.get(), properties) }
|
|
||||||
_greenItem = registry.register("${baseName}_green") { BlockItem(_greenBlock.get(), properties) }
|
|
||||||
_redItem = registry.register("${baseName}_red") { BlockItem(_redBlock.get(), properties) }
|
|
||||||
_blackItem = registry.register("${baseName}_black") { BlockItem(_blackBlock.get(), properties) }
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
fun simple(baseName: String, provider: (DyeColor) -> BlockBehaviour.Properties, itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE): ColoredDecorativeBlock {
|
|
||||||
return ColoredDecorativeBlock(baseName, {
|
|
||||||
Block(provider.invoke(it))
|
|
||||||
}, itemGroup)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Base + Colored
|
|
||||||
*/
|
|
||||||
class DecorativeBlock(
|
|
||||||
baseName: String,
|
|
||||||
private val provider: (DyeColor?) -> Block,
|
|
||||||
itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE,
|
|
||||||
val baseItemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE,
|
|
||||||
) : ColoredDecorativeBlock(baseName, provider, itemGroup) {
|
|
||||||
private var _block: RegistryObject<Block> by WriteOnce()
|
|
||||||
private var _item: RegistryObject<Item> by WriteOnce()
|
|
||||||
|
|
||||||
val block: Block get() = _block.get()
|
|
||||||
val item: Item get() = _item.get()
|
|
||||||
|
|
||||||
val mappedColoredBlocksAll: Map<DyeColor?, Block> by lazy {
|
|
||||||
LazyMap(
|
|
||||||
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 {
|
|
||||||
LazyMap(
|
|
||||||
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>) {
|
|
||||||
_block = registry.register(baseName) { provider.invoke(DyeColor.WHITE) }
|
|
||||||
|
|
||||||
super.registerBlocks(registry)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun registerItems(registry: DeferredRegister<Item>) {
|
|
||||||
_item = registry.register(baseName) { BlockItem(_block.get(), Item.Properties().tab(baseItemGroup).stacksTo(64)) }
|
|
||||||
|
|
||||||
super.registerItems(registry)
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
fun simple(baseName: String, provider: (DyeColor?) -> BlockBehaviour.Properties, itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE): DecorativeBlock {
|
|
||||||
return DecorativeBlock(baseName, {
|
|
||||||
Block(provider.invoke(it))
|
|
||||||
}, itemGroup)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
object MRegistry {
|
object MRegistry {
|
||||||
private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features")
|
private val features = RegistryDelegate<AndroidFeatureType<*>>("android_features")
|
||||||
private val research = RegistryDelegate<AndroidResearchType<*>>("android_research")
|
private val research = RegistryDelegate<AndroidResearchType<*>>("android_research")
|
||||||
|
@ -0,0 +1,256 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.registry.objects
|
||||||
|
|
||||||
|
import net.minecraft.world.item.BlockItem
|
||||||
|
import net.minecraft.world.item.CreativeModeTab
|
||||||
|
import net.minecraft.world.item.DyeColor
|
||||||
|
import net.minecraft.world.item.Item
|
||||||
|
import net.minecraft.world.level.block.Block
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||||
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
|
import net.minecraftforge.registries.RegistryObject
|
||||||
|
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.WriteOnce
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Colored only
|
||||||
|
*/
|
||||||
|
@Suppress("PropertyName", "unused")
|
||||||
|
open class ColoredDecorativeBlock(
|
||||||
|
val baseName: String,
|
||||||
|
private val provider: (DyeColor) -> Block,
|
||||||
|
itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE
|
||||||
|
) {
|
||||||
|
protected var _whiteBlock: RegistryObject<Block> by WriteOnce()
|
||||||
|
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
|
||||||
|
|
||||||
|
val whiteBlock: Block get() = _whiteBlock.get()
|
||||||
|
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
|
||||||
|
|
||||||
|
val whiteItem: Item get() = _whiteItem.get()
|
||||||
|
val orangeItem: Item get() = _orangeItem.get()
|
||||||
|
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 {
|
||||||
|
LazyList(
|
||||||
|
_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 mappedColoredBlocks: Map<DyeColor, Block> by lazy {
|
||||||
|
LazyMap(
|
||||||
|
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 coloredItems: List<Item> by lazy {
|
||||||
|
LazyList(
|
||||||
|
_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,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val mappedColoredItems: Map<DyeColor, Item> by lazy {
|
||||||
|
LazyMap(
|
||||||
|
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,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun registerBlocks(registry: DeferredRegister<Block>) {
|
||||||
|
_whiteBlock = registry.register("${baseName}_white") { provider.invoke(DyeColor.WHITE) }
|
||||||
|
_orangeBlock = registry.register("${baseName}_orange") { provider.invoke(DyeColor.ORANGE) }
|
||||||
|
_magentaBlock = registry.register("${baseName}_magenta") { provider.invoke(DyeColor.MAGENTA) }
|
||||||
|
_lightBlueBlock = registry.register("${baseName}_light_blue") { provider.invoke(DyeColor.LIGHT_BLUE) }
|
||||||
|
_yellowBlock = registry.register("${baseName}_yellow") { provider.invoke(DyeColor.YELLOW) }
|
||||||
|
_limeBlock = registry.register("${baseName}_lime") { provider.invoke(DyeColor.LIME) }
|
||||||
|
_pinkBlock = registry.register("${baseName}_pink") { provider.invoke(DyeColor.PINK) }
|
||||||
|
_grayBlock = registry.register("${baseName}_gray") { provider.invoke(DyeColor.GRAY) }
|
||||||
|
_lightGrayBlock = registry.register("${baseName}_light_gray") { provider.invoke(DyeColor.LIGHT_GRAY) }
|
||||||
|
_cyanBlock = registry.register("${baseName}_cyan") { provider.invoke(DyeColor.CYAN) }
|
||||||
|
_purpleBlock = registry.register("${baseName}_purple") { provider.invoke(DyeColor.PURPLE) }
|
||||||
|
_blueBlock = registry.register("${baseName}_blue") { provider.invoke(DyeColor.BLUE) }
|
||||||
|
_brownBlock = registry.register("${baseName}_brown") { provider.invoke(DyeColor.BROWN) }
|
||||||
|
_greenBlock = registry.register("${baseName}_green") { provider.invoke(DyeColor.GREEN) }
|
||||||
|
_redBlock = registry.register("${baseName}_red") { provider.invoke(DyeColor.RED) }
|
||||||
|
_blackBlock = registry.register("${baseName}_black") { provider.invoke(DyeColor.BLACK) }
|
||||||
|
}
|
||||||
|
|
||||||
|
private val properties = Item.Properties().tab(itemGroup).stacksTo(64)
|
||||||
|
|
||||||
|
open fun registerItems(registry: DeferredRegister<Item>) {
|
||||||
|
_whiteItem = registry.register("${baseName}_white") { BlockItem(_whiteBlock.get(), properties) }
|
||||||
|
_orangeItem = registry.register("${baseName}_orange") { BlockItem(_orangeBlock.get(), properties) }
|
||||||
|
_magentaItem = registry.register("${baseName}_magenta") { BlockItem(_magentaBlock.get(), properties) }
|
||||||
|
_lightBlueItem = registry.register("${baseName}_light_blue") { BlockItem(_lightBlueBlock.get(), properties) }
|
||||||
|
_yellowItem = registry.register("${baseName}_yellow") { BlockItem(_yellowBlock.get(), properties) }
|
||||||
|
_limeItem = registry.register("${baseName}_lime") { BlockItem(_limeBlock.get(), properties) }
|
||||||
|
_pinkItem = registry.register("${baseName}_pink") { BlockItem(_pinkBlock.get(), properties) }
|
||||||
|
_grayItem = registry.register("${baseName}_gray") { BlockItem(_grayBlock.get(), properties) }
|
||||||
|
_lightGrayItem = registry.register("${baseName}_light_gray") { BlockItem(_lightGrayBlock.get(), properties) }
|
||||||
|
_cyanItem = registry.register("${baseName}_cyan") { BlockItem(_cyanBlock.get(), properties) }
|
||||||
|
_purpleItem = registry.register("${baseName}_purple") { BlockItem(_purpleBlock.get(), properties) }
|
||||||
|
_blueItem = registry.register("${baseName}_blue") { BlockItem(_blueBlock.get(), properties) }
|
||||||
|
_brownItem = registry.register("${baseName}_brown") { BlockItem(_brownBlock.get(), properties) }
|
||||||
|
_greenItem = registry.register("${baseName}_green") { BlockItem(_greenBlock.get(), properties) }
|
||||||
|
_redItem = registry.register("${baseName}_red") { BlockItem(_redBlock.get(), properties) }
|
||||||
|
_blackItem = registry.register("${baseName}_black") { BlockItem(_blackBlock.get(), properties) }
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun simple(baseName: String, provider: (DyeColor) -> BlockBehaviour.Properties, itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE): ColoredDecorativeBlock {
|
||||||
|
return ColoredDecorativeBlock(baseName, {
|
||||||
|
Block(provider.invoke(it))
|
||||||
|
}, itemGroup)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.registry.objects
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.Block
|
||||||
|
import net.minecraft.world.level.block.SoundType
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||||
|
import net.minecraft.world.level.material.Material
|
||||||
|
import net.minecraft.world.level.material.MaterialColor
|
||||||
|
|
||||||
|
class CrateProperties(val color: MaterialColor, val name: String) {
|
||||||
|
fun makeBlock(): Block {
|
||||||
|
return Block(
|
||||||
|
BlockBehaviour.Properties.of(Material.METAL, color)
|
||||||
|
.sound(SoundType.METAL)
|
||||||
|
.requiresCorrectToolForDrops()
|
||||||
|
.strength(5.0F, 6.0F)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,145 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.registry.objects
|
||||||
|
|
||||||
|
import net.minecraft.world.item.BlockItem
|
||||||
|
import net.minecraft.world.item.CreativeModeTab
|
||||||
|
import net.minecraft.world.item.DyeColor
|
||||||
|
import net.minecraft.world.item.Item
|
||||||
|
import net.minecraft.world.level.block.Block
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||||
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
|
import net.minecraftforge.registries.RegistryObject
|
||||||
|
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.WriteOnce
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base + Colored
|
||||||
|
*/
|
||||||
|
class DecorativeBlock(
|
||||||
|
baseName: String,
|
||||||
|
private val provider: (DyeColor?) -> Block,
|
||||||
|
itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE,
|
||||||
|
val baseItemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE,
|
||||||
|
) : ColoredDecorativeBlock(baseName, provider, itemGroup) {
|
||||||
|
private var _block: RegistryObject<Block> by WriteOnce()
|
||||||
|
private var _item: RegistryObject<Item> by WriteOnce()
|
||||||
|
|
||||||
|
val block: Block get() = _block.get()
|
||||||
|
val item: Item get() = _item.get()
|
||||||
|
|
||||||
|
val mappedColoredBlocksAll: Map<DyeColor?, Block> by lazy {
|
||||||
|
LazyMap(
|
||||||
|
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 {
|
||||||
|
LazyMap(
|
||||||
|
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>) {
|
||||||
|
_block = registry.register(baseName) { provider.invoke(DyeColor.WHITE) }
|
||||||
|
|
||||||
|
super.registerBlocks(registry)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun registerItems(registry: DeferredRegister<Item>) {
|
||||||
|
_item = registry.register(baseName) {
|
||||||
|
BlockItem(
|
||||||
|
_block.get(),
|
||||||
|
Item.Properties().tab(baseItemGroup).stacksTo(64)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
super.registerItems(registry)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun simple(baseName: String, provider: (DyeColor?) -> BlockBehaviour.Properties, itemGroup: CreativeModeTab = OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE): DecorativeBlock {
|
||||||
|
return DecorativeBlock(baseName, {
|
||||||
|
Block(provider.invoke(it))
|
||||||
|
}, itemGroup)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user