From 3f25afd9d9db1349e57a1f9a86e513331f250920 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 25 Feb 2023 20:25:26 +0700 Subject: [PATCH] Tritanium anvil, bars, shears, shield, nuggets --- .../mc/otm/datagen/items/ItemModels.kt | 2 +- .../mc/otm/datagen/lang/English.kt | 8 ++ .../mc/otm/datagen/lang/Russian.kt | 8 ++ .../mc/otm/datagen/loot/LootTablesData.kt | 4 + .../mc/otm/datagen/recipes/BlastingRecipes.kt | 17 +++ .../datagen/recipes/CraftingTableRecipes.kt | 23 ++++ .../otm/datagen/recipes/DecorativesRecipes.kt | 11 ++ .../dbotthepony/mc/otm/datagen/tags/Tags.kt | 10 +- .../mc/otm/mixin/MixinAnvilBlock.java | 33 +++++ .../mc/otm/registry/CreativeTabs.kt | 7 +- .../ru/dbotthepony/mc/otm/registry/MBlocks.kt | 27 ++++ .../ru/dbotthepony/mc/otm/registry/MItems.kt | 122 +++++++++++------- .../ru/dbotthepony/mc/otm/registry/MNames.kt | 5 + .../ru/dbotthepony/mc/otm/registry/Tags.kt | 2 + .../overdrive_that_matters.mixins.json | 3 +- 15 files changed, 230 insertions(+), 52 deletions(-) create mode 100644 src/main/java/ru/dbotthepony/mc/otm/mixin/MixinAnvilBlock.java diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt index 241e68d50..bf6cff3f1 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt @@ -78,7 +78,7 @@ fun addItemModels(provider: MatteryItemModelProvider) { provider.generated(MItems.EXOPACK_PROBE) - provider.handheld(MItems.TRITANIUM_TOOLS) + //provider.handheld(MItems.TRITANIUM_TOOLS) provider.generated(MItems.TRITANIUM_ARMOR) provider.generatedTiered(MItems.BATTERIES, "battery_tier") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt index 3aab1fb17..72e387605 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt @@ -434,6 +434,11 @@ private fun blocks(provider: MatteryLanguageProvider) { add(MBlocks.TRITANIUM_TRAPDOOR[null]!!, "Tritanium Trapdoor") add(MBlocks.TRITANIUM_TRAPDOOR[null]!!, "description0", "High blast resistance door with redstone latch...") add(MBlocks.TRITANIUM_TRAPDOOR[null]!!, "description1", "...feeling safe now?") + + add(MBlocks.TRITANIUM_BARS, "Tritanium Bars") + + for (block in MBlocks.TRITANIUM_ANVIL) + add(block, "Tritanium Anvil") } } @@ -478,6 +483,8 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.TRITANIUM_SHOVEL, "Tritanium Shovel") add(MItems.TRITANIUM_AXE, "Tritanium Axe") add(MItems.TRITANIUM_HOE, "Tritanium Hoe") + add(MItems.TRITANIUM_SHEARS, "Tritanium Shears") + add(MItems.TRITANIUM_SHIELD, "Tritanium Shield") add(MItems.TRITANIUM_HELMET, "Tritanium Helmet") add(MItems.TRITANIUM_CHESTPLATE, "Tritanium Chestplate") @@ -486,6 +493,7 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.TRITANIUM_DUST, "Tritanium Dust") add(MItems.TRITANIUM_INGOT, "Tritanium Ingot") + add(MItems.TRITANIUM_NUGGET, "Tritanium Nugget") add(MItems.MATTER_IO_PORT, "Matter IO Port") add(MItems.MATTER_TRANSFORM_MATRIX, "Matter Transformation Matrix") add(MItems.ENERGY_BUS, "Energy Bus") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index d8446ebce..710f310f9 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -439,6 +439,11 @@ private fun blocks(provider: MatteryLanguageProvider) { add(MBlocks.TRITANIUM_TRAPDOOR[null]!!, "Тритановый Люк") add(MBlocks.TRITANIUM_TRAPDOOR[null]!!, "description0", "Взрывоустойчивая дверь с засовом красного камня...") add(MBlocks.TRITANIUM_TRAPDOOR[null]!!, "description1", FEELING_SAFE_NOW) + + add(MBlocks.TRITANIUM_BARS, "Тритановая решётка") + + for (block in MBlocks.TRITANIUM_ANVIL) + add(block, "Тритановая Наковальня") } } @@ -483,6 +488,8 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.TRITANIUM_SHOVEL, "Тритановая Лопата") add(MItems.TRITANIUM_AXE, "Тритановый Топор") add(MItems.TRITANIUM_HOE, "Тритановая Мотыга") + add(MItems.TRITANIUM_SHEARS, "Тритановые ножницы") + add(MItems.TRITANIUM_SHIELD, "Тритановый щит") add(MItems.TRITANIUM_HELMET, "Тритановый Шлем") add(MItems.TRITANIUM_CHESTPLATE, "Тритановый Нагрудник") @@ -491,6 +498,7 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.TRITANIUM_DUST, "Тритановая Пыль") add(MItems.TRITANIUM_INGOT, "Тритановый Слиток") + add(MItems.TRITANIUM_NUGGET, "Тритановый самородок") add(MItems.MATTER_IO_PORT, "Порт Ввода/Вывода Материи") add(MItems.MATTER_TRANSFORM_MATRIX, "Матрица Преобразования Материи") add(MItems.ENERGY_BUS, "Шина Питания") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt index 37790e3f2..e86310f86 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt @@ -57,9 +57,13 @@ fun addLootTables(lootTables: LootTables) { lootTables.dropsSelf(MBlocks.DANGER_STRIPE_BLOCK) { condition(ExplosionCondition.survivesExplosion()) } lootTables.dropsSelf(MBlocks.METAL_BEAM) { condition(ExplosionCondition.survivesExplosion()) } lootTables.dropsSelf(MBlocks.TRITANIUM_INGOT_BLOCK) { condition(ExplosionCondition.survivesExplosion()) } + lootTables.dropsSelf(MBlocks.TRITANIUM_BARS) { condition(ExplosionCondition.survivesExplosion()) } lootTables.dropsSelf(MBlocks.ENGINE) { condition(ExplosionCondition.survivesExplosion()) } + for (block in MBlocks.TRITANIUM_ANVIL) + lootTables.dropsSelf(block) { condition(ExplosionCondition.survivesExplosion()) } + for (door in MBlocks.TRITANIUM_TRAPDOOR.values) lootTables.dropsSelf(door) { condition(ExplosionCondition.survivesExplosion()) } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/BlastingRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/BlastingRecipes.kt index 971a5c3d7..1ffe1f3d2 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/BlastingRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/BlastingRecipes.kt @@ -4,6 +4,7 @@ import net.minecraft.data.recipes.FinishedRecipe import net.minecraft.data.recipes.RecipeCategory import net.minecraft.data.recipes.SimpleCookingRecipeBuilder import net.minecraft.world.item.crafting.Ingredient +import ru.dbotthepony.mc.otm.core.registryName import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.MItemTags import ru.dbotthepony.mc.otm.registry.MItems @@ -14,4 +15,20 @@ fun addBlastingRecipes(consumer: Consumer) { SimpleCookingRecipeBuilder.smelting(Ingredient.of(MItemTags.TRITANIUM_PLATES), RecipeCategory.MISC, MItems.TRITANIUM_INGOT, 0f, 100).unlockedBy(MItemTags.TRITANIUM_PLATES).save(consumer, modLocation("tritanium_ingot_from_plates")) SimpleCookingRecipeBuilder.blasting(Ingredient.of(MItemTags.TRITANIUM_PLATES), RecipeCategory.MISC, MItems.TRITANIUM_INGOT, 0f, 50).unlockedBy(MItemTags.TRITANIUM_PLATES).save(consumer, modLocation("tritanium_ingot_from_plates_blasting")) + + for (tool in MItems.TRITANIUM_TOOLS) { + SimpleCookingRecipeBuilder.smelting( + Ingredient.of(tool), + RecipeCategory.MISC, + MItems.TRITANIUM_NUGGET, + 0f, 200 + ).unlockedBy(MItems.TRITANIUM_NUGGET).save(consumer, modLocation("cooking/nugget_from_${tool.registryName!!.path}")) + + SimpleCookingRecipeBuilder.blasting( + Ingredient.of(tool), + RecipeCategory.MISC, + MItems.TRITANIUM_NUGGET, + 0f, 100 + ).unlockedBy(MItems.TRITANIUM_NUGGET).save(consumer, modLocation("blasting/nugget_from_${tool.registryName!!.path}")) + } } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt index 19d69f99a..477a9faeb 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt @@ -260,4 +260,27 @@ fun addCraftingTableRecipes(consumer: Consumer) { .row(Items.LAVA_BUCKET, Items.HOPPER, Items.WATER_BUCKET) .rowB(Tags.Items.CHESTS) .build(consumer) + + MatteryRecipe(MItems.TRITANIUM_SHEARS, category = RecipeCategory.TOOLS) + .rowB(MItemTags.TRITANIUM_INGOTS) + .rowA(MItemTags.TRITANIUM_INGOTS) + .build(consumer) + + MatteryRecipe(MItems.TRITANIUM_SHIELD, category = RecipeCategory.COMBAT) + .row(MItemTags.TRITANIUM_INGOTS, Items.SHIELD, MItemTags.TRITANIUM_INGOTS) + .row(MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS, MItemTags.TRITANIUM_INGOTS) + .rowB(MItemTags.TRITANIUM_INGOTS) + .build(consumer) + + ShapelessRecipeBuilder(RecipeCategory.MISC, MItems.TRITANIUM_NUGGET, 9) + .requires(MItemTags.TRITANIUM_INGOTS) + .unlockedBy(MItemTags.TRITANIUM_INGOTS) + .unlockedBy(MItemTags.TRITANIUM_NUGGETS) + .save(consumer) + + ShapelessRecipeBuilder(RecipeCategory.MISC, MItems.TRITANIUM_INGOT, 9) + .requires(Ingredient.of(MItemTags.TRITANIUM_NUGGETS), 9) + .unlockedBy(MItemTags.TRITANIUM_INGOTS) + .unlockedBy(MItemTags.TRITANIUM_NUGGETS) + .save(consumer, modLocation("ingot_from_nuggets")) } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/DecorativesRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/DecorativesRecipes.kt index 8f69951c6..555385af4 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/DecorativesRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/DecorativesRecipes.kt @@ -337,4 +337,15 @@ fun addDecorativesRecipes(provider: MatteryRecipeProvider, consumer: Consumer info) { + var list = MBlocks.INSTANCE.getTRITANIUM_ANVIL(); + + for (int i = 0; i < list.size(); i++) { + if (pState.is(list.get(i))) { + if (i == list.size()) { + info.setReturnValue(null); + } else { + info.setReturnValue(list.get(i + 1).defaultBlockState().setValue(AnvilBlock.FACING, pState.getValue(AnvilBlock.FACING))); + } + + return; + } + } + } +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/CreativeTabs.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/CreativeTabs.kt index bedd47f92..07546d9c5 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/CreativeTabs.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/CreativeTabs.kt @@ -107,8 +107,9 @@ internal fun addMainCreativeTabItems(consumer: CreativeModeTab.Output) { base(MItems.TRITANIUM_DOOR) base(MItems.TRITANIUM_TRAPDOOR) accept(MRegistry.TRITANIUM_PRESSURE_PLATE.item) + accept(MItems.TRITANIUM_ANVIL[0]) - accept(MItems.MATTER_DUST) + // accept(MItems.MATTER_DUST) accept(MItems.TRITANIUM_ORE_CLUMP) accept(MItems.TRITANIUM_DUST) @@ -170,11 +171,15 @@ internal fun addDecorativeTabItems(consumer: CreativeModeTab.Output) { accept(MItems.TRITANIUM_STRIPED_SLAB) accept(MItems.TRITANIUM_STRIPED_WALL) accept(MItems.CARBON_FIBRE_BLOCK) + accept(MItems.TRITANIUM_BARS) colored(MItems.TRITANIUM_DOOR) colored(MItems.TRITANIUM_TRAPDOOR) accept(MRegistry.TRITANIUM_PRESSURE_PLATE.items.values) + for (i in 0 until MItems.TRITANIUM_ANVIL.size) + accept(MItems.TRITANIUM_ANVIL[i]) + colored(MRegistry.CARGO_CRATES.items) colored(MItems.CARGO_CRATE_MINECARTS) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt index fb2eb2935..6aeae5d1a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt @@ -11,9 +11,11 @@ import net.minecraft.world.item.DyeColor import net.minecraft.world.item.ItemStack import net.minecraft.world.item.TooltipFlag import net.minecraft.world.level.BlockGetter +import net.minecraft.world.level.block.AnvilBlock import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.DoorBlock import net.minecraft.world.level.block.DropExperienceBlock +import net.minecraft.world.level.block.IronBarsBlock import net.minecraft.world.level.block.SlabBlock import net.minecraft.world.level.block.SoundType import net.minecraft.world.level.block.StairBlock @@ -62,6 +64,8 @@ import ru.dbotthepony.mc.otm.block.storage.StorageImporterBlock import ru.dbotthepony.mc.otm.block.storage.StoragePowerSupplierBlock import ru.dbotthepony.mc.otm.block.tech.CobblerBlock import ru.dbotthepony.mc.otm.core.TranslatableComponent +import ru.dbotthepony.mc.otm.core.collect.SupplierList +import java.util.function.Supplier object MBlocks { private val registry = DeferredRegister.create(ForgeRegistries.BLOCKS, OverdriveThatMatters.MOD_ID) @@ -117,6 +121,10 @@ object MBlocks { Block(BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_BLUE).explosionResistance(400f).destroyTime(3f).requiresCorrectToolForDrops()) } + val TRITANIUM_BARS: IronBarsBlock by registry.register(MNames.TRITANIUM_BARS) { + IronBarsBlock(BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_BLUE).explosionResistance(45f).destroyTime(2.5f).requiresCorrectToolForDrops()) + } + val DEEPSLATE_TRITANIUM_ORE: Block by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { DropExperienceBlock( BlockBehaviour.Properties.of(Material.STONE) .strength(4.75f, 6.5f) @@ -138,6 +146,25 @@ object MBlocks { val ENGINE: Block by registry.register(MNames.ENGINE) { EngineBlock() } val HOLO_SIGN: Block by registry.register(MNames.HOLO_SIGN) { HoloSignBlock() } + const val TRITANIUM_ANVIL_VARIANTS = 7 + + val TRITANIUM_ANVIL: List + + init { + val anvils = ArrayList<() -> Block>() + + for (i in 0 until TRITANIUM_ANVIL_VARIANTS) { + val props = BlockBehaviour.Properties.of(Material.METAL, DyeColor.LIGHT_BLUE) + .destroyTime(2.5f - i * 0.15f) + .explosionResistance(1200f - i * 80f) + .requiresCorrectToolForDrops() + + anvils.add(registry.register(MNames.TRITANIUM_ANVIL + i) { AnvilBlock(props) }::get) + } + + TRITANIUM_ANVIL = SupplierList(anvils) + } + val TRITANIUM_DOOR = registry.allColored(MNames.TRITANIUM_DOOR) { color, _ -> object : DoorBlock(Properties.of(Material.METAL, color ?: DyeColor.LIGHT_BLUE).explosionResistance(80f).noOcclusion().destroyTime(3f).requiresCorrectToolForDrops(), SoundEvents.IRON_DOOR_CLOSE, SoundEvents.IRON_DOOR_OPEN) { override fun appendHoverText( diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt index a4f1959a3..f566f338b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt @@ -3,6 +3,7 @@ package ru.dbotthepony.mc.otm.registry import net.minecraft.ChatFormatting import net.minecraft.network.chat.Component +import net.minecraft.resources.ResourceLocation import net.minecraft.tags.BlockTags import net.minecraft.world.entity.EquipmentSlot import net.minecraft.world.food.FoodProperties @@ -10,6 +11,7 @@ import net.minecraft.world.item.* import net.minecraft.world.item.crafting.Ingredient import net.minecraft.world.level.Level import net.minecraftforge.common.ForgeTier +import net.minecraftforge.common.TierSortingRegistry import net.minecraftforge.eventbus.api.IEventBus import net.minecraftforge.registries.DeferredRegister import net.minecraftforge.registries.ForgeRegistries @@ -28,35 +30,35 @@ object MItems { registry.register(bus) } - val ANDROID_STATION: Item by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) } - val BATTERY_BANK: Item by registry.register(MNames.BATTERY_BANK) { BlockItem(MBlocks.BATTERY_BANK, DEFAULT_PROPERTIES) } - val MATTER_DECOMPOSER: Item by registry.register(MNames.MATTER_DECOMPOSER) { BlockItem(MBlocks.MATTER_DECOMPOSER, DEFAULT_PROPERTIES) } - val MATTER_CAPACITOR_BANK: Item by registry.register(MNames.MATTER_CAPACITOR_BANK) { BlockItem(MBlocks.MATTER_CAPACITOR_BANK, DEFAULT_PROPERTIES) } - val MATTER_CABLE: Item by registry.register(MNames.MATTER_CABLE) { BlockItem(MBlocks.MATTER_CABLE, DEFAULT_PROPERTIES) } - val PATTERN_STORAGE: Item by registry.register(MNames.PATTERN_STORAGE) { BlockItem(MBlocks.PATTERN_STORAGE, DEFAULT_PROPERTIES) } - val MATTER_SCANNER: Item by registry.register(MNames.MATTER_SCANNER) { BlockItem(MBlocks.MATTER_SCANNER, DEFAULT_PROPERTIES) } - val MATTER_PANEL: Item by registry.register(MNames.MATTER_PANEL) { BlockItem(MBlocks.MATTER_PANEL, DEFAULT_PROPERTIES) } - val MATTER_REPLICATOR: Item by registry.register(MNames.MATTER_REPLICATOR) { BlockItem(MBlocks.MATTER_REPLICATOR, DEFAULT_PROPERTIES) } - val MATTER_BOTTLER: Item by registry.register(MNames.MATTER_BOTTLER) { BlockItem(MBlocks.MATTER_BOTTLER, DEFAULT_PROPERTIES) } + val ANDROID_STATION: BlockItem by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) } + val BATTERY_BANK: BlockItem by registry.register(MNames.BATTERY_BANK) { BlockItem(MBlocks.BATTERY_BANK, DEFAULT_PROPERTIES) } + val MATTER_DECOMPOSER: BlockItem by registry.register(MNames.MATTER_DECOMPOSER) { BlockItem(MBlocks.MATTER_DECOMPOSER, DEFAULT_PROPERTIES) } + val MATTER_CAPACITOR_BANK: BlockItem by registry.register(MNames.MATTER_CAPACITOR_BANK) { BlockItem(MBlocks.MATTER_CAPACITOR_BANK, DEFAULT_PROPERTIES) } + val MATTER_CABLE: BlockItem by registry.register(MNames.MATTER_CABLE) { BlockItem(MBlocks.MATTER_CABLE, DEFAULT_PROPERTIES) } + val PATTERN_STORAGE: BlockItem by registry.register(MNames.PATTERN_STORAGE) { BlockItem(MBlocks.PATTERN_STORAGE, DEFAULT_PROPERTIES) } + val MATTER_SCANNER: BlockItem by registry.register(MNames.MATTER_SCANNER) { BlockItem(MBlocks.MATTER_SCANNER, DEFAULT_PROPERTIES) } + val MATTER_PANEL: BlockItem by registry.register(MNames.MATTER_PANEL) { BlockItem(MBlocks.MATTER_PANEL, DEFAULT_PROPERTIES) } + val MATTER_REPLICATOR: BlockItem by registry.register(MNames.MATTER_REPLICATOR) { BlockItem(MBlocks.MATTER_REPLICATOR, DEFAULT_PROPERTIES) } + val MATTER_BOTTLER: BlockItem by registry.register(MNames.MATTER_BOTTLER) { BlockItem(MBlocks.MATTER_BOTTLER, DEFAULT_PROPERTIES) } - val TRITANIUM_ORE: Item by registry.register(MNames.TRITANIUM_ORE) { BlockItem(MBlocks.TRITANIUM_ORE, DEFAULT_PROPERTIES) } - val DEEPSLATE_TRITANIUM_ORE: Item by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { BlockItem(MBlocks.DEEPSLATE_TRITANIUM_ORE, DEFAULT_PROPERTIES) } - val TRITANIUM_RAW_BLOCK: Item by registry.register(MNames.TRITANIUM_RAW_BLOCK) { BlockItem(MBlocks.TRITANIUM_RAW_BLOCK, DEFAULT_PROPERTIES) } - val ENERGY_COUNTER: Item by registry.register(MNames.ENERGY_COUNTER) { BlockItem(MBlocks.ENERGY_COUNTER, DEFAULT_PROPERTIES) } - val CHEMICAL_GENERATOR: Item by registry.register(MNames.CHEMICAL_GENERATOR) { BlockItem(MBlocks.CHEMICAL_GENERATOR, DEFAULT_PROPERTIES) } - val PLATE_PRESS: Item by registry.register(MNames.PLATE_PRESS) { BlockItem(MBlocks.PLATE_PRESS, DEFAULT_PROPERTIES) } - val MATTER_RECYCLER: Item by registry.register(MNames.MATTER_RECYCLER) { BlockItem(MBlocks.MATTER_RECYCLER, DEFAULT_PROPERTIES) } + val TRITANIUM_ORE: BlockItem by registry.register(MNames.TRITANIUM_ORE) { BlockItem(MBlocks.TRITANIUM_ORE, DEFAULT_PROPERTIES) } + val DEEPSLATE_TRITANIUM_ORE: BlockItem by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { BlockItem(MBlocks.DEEPSLATE_TRITANIUM_ORE, DEFAULT_PROPERTIES) } + val TRITANIUM_RAW_BLOCK: BlockItem by registry.register(MNames.TRITANIUM_RAW_BLOCK) { BlockItem(MBlocks.TRITANIUM_RAW_BLOCK, DEFAULT_PROPERTIES) } + val ENERGY_COUNTER: BlockItem by registry.register(MNames.ENERGY_COUNTER) { BlockItem(MBlocks.ENERGY_COUNTER, DEFAULT_PROPERTIES) } + val CHEMICAL_GENERATOR: BlockItem by registry.register(MNames.CHEMICAL_GENERATOR) { BlockItem(MBlocks.CHEMICAL_GENERATOR, DEFAULT_PROPERTIES) } + val PLATE_PRESS: BlockItem by registry.register(MNames.PLATE_PRESS) { BlockItem(MBlocks.PLATE_PRESS, DEFAULT_PROPERTIES) } + val MATTER_RECYCLER: BlockItem by registry.register(MNames.MATTER_RECYCLER) { BlockItem(MBlocks.MATTER_RECYCLER, DEFAULT_PROPERTIES) } - val STORAGE_BUS: Item by registry.register(MNames.STORAGE_BUS) { BlockItem(MBlocks.STORAGE_BUS, DEFAULT_PROPERTIES) } - val STORAGE_IMPORTER: Item by registry.register(MNames.STORAGE_IMPORTER) { BlockItem(MBlocks.STORAGE_IMPORTER, DEFAULT_PROPERTIES) } - val STORAGE_EXPORTER: Item by registry.register(MNames.STORAGE_EXPORTER) { BlockItem(MBlocks.STORAGE_EXPORTER, DEFAULT_PROPERTIES) } - val DRIVE_VIEWER: Item by registry.register(MNames.DRIVE_VIEWER) { BlockItem(MBlocks.DRIVE_VIEWER, DEFAULT_PROPERTIES) } - val DRIVE_RACK: Item by registry.register(MNames.DRIVE_RACK) { BlockItem(MBlocks.DRIVE_RACK, DEFAULT_PROPERTIES) } - val ITEM_MONITOR: Item by registry.register(MNames.ITEM_MONITOR) { BlockItem(MBlocks.ITEM_MONITOR, DEFAULT_PROPERTIES) } - val STORAGE_CABLE: Item by registry.register(MNames.STORAGE_CABLE) { BlockItem(MBlocks.STORAGE_CABLE, DEFAULT_PROPERTIES) } - val STORAGE_POWER_SUPPLIER: Item by registry.register(MNames.STORAGE_POWER_SUPPLIER) { BlockItem(MBlocks.STORAGE_POWER_SUPPLIER, DEFAULT_PROPERTIES) } + val STORAGE_BUS: BlockItem by registry.register(MNames.STORAGE_BUS) { BlockItem(MBlocks.STORAGE_BUS, DEFAULT_PROPERTIES) } + val STORAGE_IMPORTER: BlockItem by registry.register(MNames.STORAGE_IMPORTER) { BlockItem(MBlocks.STORAGE_IMPORTER, DEFAULT_PROPERTIES) } + val STORAGE_EXPORTER: BlockItem by registry.register(MNames.STORAGE_EXPORTER) { BlockItem(MBlocks.STORAGE_EXPORTER, DEFAULT_PROPERTIES) } + val DRIVE_VIEWER: BlockItem by registry.register(MNames.DRIVE_VIEWER) { BlockItem(MBlocks.DRIVE_VIEWER, DEFAULT_PROPERTIES) } + val DRIVE_RACK: BlockItem by registry.register(MNames.DRIVE_RACK) { BlockItem(MBlocks.DRIVE_RACK, DEFAULT_PROPERTIES) } + val ITEM_MONITOR: BlockItem by registry.register(MNames.ITEM_MONITOR) { BlockItem(MBlocks.ITEM_MONITOR, DEFAULT_PROPERTIES) } + val STORAGE_CABLE: BlockItem by registry.register(MNames.STORAGE_CABLE) { BlockItem(MBlocks.STORAGE_CABLE, DEFAULT_PROPERTIES) } + val STORAGE_POWER_SUPPLIER: BlockItem by registry.register(MNames.STORAGE_POWER_SUPPLIER) { BlockItem(MBlocks.STORAGE_POWER_SUPPLIER, DEFAULT_PROPERTIES) } - val GRAVITATION_STABILIZER: Item by registry.register(MNames.GRAVITATION_STABILIZER) { + val GRAVITATION_STABILIZER: BlockItem by registry.register(MNames.GRAVITATION_STABILIZER) { object : BlockItem(MBlocks.GRAVITATION_STABILIZER, DEFAULT_PROPERTIES) { override fun appendHoverText(p_40572_: ItemStack, p_40573_: Level?, p_40574_: MutableList, p_40575_: TooltipFlag) { super.appendHoverText(p_40572_, p_40573_, p_40574_, p_40575_) @@ -69,7 +71,7 @@ object MItems { } } - val PHANTOM_ATTRACTOR: Item by registry.register(MNames.PHANTOM_ATTRACTOR) { + val PHANTOM_ATTRACTOR: DoubleHighBlockItem by registry.register(MNames.PHANTOM_ATTRACTOR) { object : DoubleHighBlockItem(MBlocks.PHANTOM_ATTRACTOR, DEFAULT_PROPERTIES) { override fun appendHoverText(p_40572_: ItemStack, p_40573_: Level?, p_40574_: MutableList, p_40575_: TooltipFlag) { super.appendHoverText(p_40572_, p_40573_, p_40574_, p_40575_) @@ -80,7 +82,7 @@ object MItems { } } - val ENERGY_SERVO: Item by registry.register(MNames.ENERGY_SERVO) { + val ENERGY_SERVO: BlockItem by registry.register(MNames.ENERGY_SERVO) { object : BlockItem(MBlocks.ENERGY_SERVO, DEFAULT_PROPERTIES) { override fun appendHoverText(p_40572_: ItemStack, p_40573_: Level?, p_40574_: MutableList, p_40575_: TooltipFlag) { super.appendHoverText(p_40572_, p_40573_, p_40574_, p_40575_) @@ -90,7 +92,7 @@ object MItems { } } - val COBBLESTONE_GENERATOR: Item by registry.register(MNames.COBBLESTONE_GENERATOR) { + val COBBLESTONE_GENERATOR: BlockItem by registry.register(MNames.COBBLESTONE_GENERATOR) { object : BlockItem(MBlocks.COBBLESTONE_GENERATOR, DEFAULT_PROPERTIES) { override fun appendHoverText(p_40572_: ItemStack, p_40573_: Level?, p_40574_: MutableList, p_40575_: TooltipFlag) { super.appendHoverText(p_40572_, p_40573_, p_40574_, p_40575_) @@ -111,12 +113,26 @@ object MItems { val DEBUG_EXPLOSION_SMALL: Item by registry.register(MNames.DEBUG_EXPLOSION_SMALL) { BlockItem(MBlocks.DEBUG_EXPLOSION_SMALL, Item.Properties().stacksTo(64)) } val DEBUG_SPHERE_POINTS: Item by registry.register(MNames.DEBUG_SPHERE_POINTS) { BlockItem(MBlocks.DEBUG_SPHERE_POINTS, Item.Properties().stacksTo(64)) } + val TRITANIUM_ANVIL: List + + init { + val props = ArrayList<() -> BlockItem>() + + for (i in MBlocks.TRITANIUM_ANVIL.indices) { + props.add(registry.register(MNames.TRITANIUM_ANVIL + i) { BlockItem(MBlocks.TRITANIUM_ANVIL[i], DEFAULT_PROPERTIES) }::get) + } + + TRITANIUM_ANVIL = SupplierList(props) + } + val MATTER_DUST: Item by registry.register(MNames.MATTER_DUST) { MatterDustItem() } val TRITANIUM_ORE_CLUMP: Item by registry.register(MNames.TRITANIUM_ORE_CLUMP) { Item(DEFAULT_PROPERTIES) } val TRITANIUM_DUST: Item by registry.register(MNames.TRITANIUM_DUST) { Item(DEFAULT_PROPERTIES) } + val TRITANIUM_NUGGET: Item by registry.register(MNames.TRITANIUM_NUGGET) { Item(DEFAULT_PROPERTIES) } val TRITANIUM_INGOT: Item by registry.register(MNames.TRITANIUM_INGOT) { Item(DEFAULT_PROPERTIES) } - val TRITANIUM_INGOT_BLOCK: Item by registry.register(MNames.TRITANIUM_INGOT_BLOCK) { BlockItem(MBlocks.TRITANIUM_INGOT_BLOCK, DEFAULT_PROPERTIES) } + val TRITANIUM_INGOT_BLOCK: BlockItem by registry.register(MNames.TRITANIUM_INGOT_BLOCK) { BlockItem(MBlocks.TRITANIUM_INGOT_BLOCK, DEFAULT_PROPERTIES) } + val TRITANIUM_BARS: BlockItem by registry.register(MNames.TRITANIUM_BARS) { BlockItem(MBlocks.TRITANIUM_BARS, DEFAULT_PROPERTIES) } val TRITANIUM_COMPONENT: ForgeTier = ForgeTier( Tiers.IRON.level, @@ -127,32 +143,42 @@ object MItems { BlockTags.NEEDS_IRON_TOOL ) { Ingredient.of(TRITANIUM_INGOT) } + val TRITANIUM_COMPONENT_NAME = ResourceLocation(OverdriveThatMatters.MOD_ID, "tritanium") + + init { + TierSortingRegistry.registerTier(TRITANIUM_COMPONENT, TRITANIUM_COMPONENT_NAME, listOf(Tiers.IRON), listOf(Tiers.DIAMOND)) + } + private val TOOLS_PROPRTIES = Item.Properties() - val TRITANIUM_SWORD: Item by registry.register(MNames.TRITANIUM_SWORD) { SwordItem(TRITANIUM_COMPONENT, 4, -2.7f, TOOLS_PROPRTIES) } - val TRITANIUM_SHOVEL: Item by registry.register(MNames.TRITANIUM_SHOVEL) { ShovelItem(TRITANIUM_COMPONENT, 1.5f, -2.4f, TOOLS_PROPRTIES) } - val TRITANIUM_AXE: Item by registry.register(MNames.TRITANIUM_AXE) { MatteryAxeItem(TRITANIUM_COMPONENT, 8.5f, -3.4f, TOOLS_PROPRTIES) } - val TRITANIUM_PICKAXE: Item by registry.register(MNames.TRITANIUM_PICKAXE) { PickaxeItem(TRITANIUM_COMPONENT, 2, -2.8f, TOOLS_PROPRTIES) } - val TRITANIUM_HOE: Item by registry.register(MNames.TRITANIUM_HOE) { HoeItem(TRITANIUM_COMPONENT, 0, -3.4f, TOOLS_PROPRTIES) } + val TRITANIUM_SWORD: SwordItem by registry.register(MNames.TRITANIUM_SWORD) { SwordItem(TRITANIUM_COMPONENT, 4, -2.7f, TOOLS_PROPRTIES) } + val TRITANIUM_SHOVEL: ShovelItem by registry.register(MNames.TRITANIUM_SHOVEL) { ShovelItem(TRITANIUM_COMPONENT, 1.5f, -2.4f, TOOLS_PROPRTIES) } + val TRITANIUM_AXE: MatteryAxeItem by registry.register(MNames.TRITANIUM_AXE) { MatteryAxeItem(TRITANIUM_COMPONENT, 8.5f, -3.4f, TOOLS_PROPRTIES) } + val TRITANIUM_PICKAXE: PickaxeItem by registry.register(MNames.TRITANIUM_PICKAXE) { PickaxeItem(TRITANIUM_COMPONENT, 2, -2.8f, TOOLS_PROPRTIES) } + val TRITANIUM_HOE: HoeItem by registry.register(MNames.TRITANIUM_HOE) { HoeItem(TRITANIUM_COMPONENT, 0, -3.4f, TOOLS_PROPRTIES) } + val TRITANIUM_SHEARS: ShearsItem by registry.register(MNames.TRITANIUM_SHEARS) { ShearsItem(Item.Properties().durability(3072)) } + val TRITANIUM_SHIELD: ShieldItem by registry.register(MNames.TRITANIUM_SHIELD) { ShieldItem(Item.Properties().durability(2048)) } val TRITANIUM_TOOLS = SupplierList( - { TRITANIUM_SWORD }, - { TRITANIUM_SHOVEL }, - { TRITANIUM_AXE }, - { TRITANIUM_PICKAXE }, - { TRITANIUM_HOE } + ::TRITANIUM_SWORD, + ::TRITANIUM_SHOVEL, + ::TRITANIUM_AXE, + ::TRITANIUM_PICKAXE, + ::TRITANIUM_HOE, + ::TRITANIUM_SHEARS, + ::TRITANIUM_SHIELD, ) - val TRITANIUM_HELMET: Item by registry.register(MNames.TRITANIUM_HELMET) { ItemTritaniumArmor(EquipmentSlot.HEAD) } - val TRITANIUM_CHESTPLATE: Item by registry.register(MNames.TRITANIUM_CHESTPLATE) { ItemTritaniumArmor(EquipmentSlot.CHEST) } - val TRITANIUM_PANTS: Item by registry.register(MNames.TRITANIUM_PANTS) { ItemTritaniumArmor(EquipmentSlot.LEGS) } - val TRITANIUM_BOOTS: Item by registry.register(MNames.TRITANIUM_BOOTS) { ItemTritaniumArmor(EquipmentSlot.FEET) } + val TRITANIUM_HELMET: ItemTritaniumArmor by registry.register(MNames.TRITANIUM_HELMET) { ItemTritaniumArmor(EquipmentSlot.HEAD) } + val TRITANIUM_CHESTPLATE: ItemTritaniumArmor by registry.register(MNames.TRITANIUM_CHESTPLATE) { ItemTritaniumArmor(EquipmentSlot.CHEST) } + val TRITANIUM_PANTS: ItemTritaniumArmor by registry.register(MNames.TRITANIUM_PANTS) { ItemTritaniumArmor(EquipmentSlot.LEGS) } + val TRITANIUM_BOOTS: ItemTritaniumArmor by registry.register(MNames.TRITANIUM_BOOTS) { ItemTritaniumArmor(EquipmentSlot.FEET) } val TRITANIUM_ARMOR = SupplierList( - { TRITANIUM_HELMET }, - { TRITANIUM_CHESTPLATE }, - { TRITANIUM_PANTS }, - { TRITANIUM_BOOTS } + ::TRITANIUM_HELMET, + ::TRITANIUM_CHESTPLATE, + ::TRITANIUM_PANTS, + ::TRITANIUM_BOOTS ) val ENERGY_SWORD: Item by registry.register(MNames.ENERGY_SWORD) { EnergySwordItem() } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt index 79b463c2a..e5becbf8b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt @@ -32,6 +32,7 @@ object MNames { const val MATTER_RECYCLER = "matter_recycler" const val ENERGY_SERVO = "energy_servo" const val COBBLESTONE_GENERATOR = "cobblestone_generator" + const val TRITANIUM_ANVIL = "tritanium_anvil" const val STORAGE_CABLE = "storage_cable" // нужен рецепт const val STORAGE_POWER_SUPPLIER = "storage_power_supplier" // нужен рецепт @@ -130,6 +131,8 @@ object MNames { const val TRITANIUM_PICKAXE = "tritanium_pickaxe" const val TRITANIUM_SHOVEL = "tritanium_shovel" const val TRITANIUM_HOE = "tritanium_hoe" + const val TRITANIUM_SHEARS = "tritanium_shears" + const val TRITANIUM_SHIELD = "tritanium_shield" const val ENERGY_SWORD = "energy_sword" @@ -137,8 +140,10 @@ object MNames { // items: crafting components const val TRITANIUM_DUST = "tritanium_dust" + const val TRITANIUM_NUGGET = "tritanium_nugget" const val TRITANIUM_INGOT = "tritanium_ingot" const val TRITANIUM_INGOT_BLOCK = "tritanium_ingot_block" + const val TRITANIUM_BARS = "tritanium_bars" const val MATTER_IO_PORT = "matter_io_port" const val MATTER_TRANSFORM_MATRIX = "matter_transform_matrix" diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt index 9bb794004..42fc27a72 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/Tags.kt @@ -13,6 +13,8 @@ object MItemTags { val TRITANIUM_ORES: TagKey = ItemTags.create(ResourceLocation("forge", "ores/tritanium")) val TRITANIUM_ORE_CLUMPS: TagKey = ItemTags.create(ResourceLocation("forge", "raw_materials/tritanium")) val TRITANIUM_INGOTS: TagKey = ItemTags.create(ResourceLocation("forge", "ingots/tritanium")) + val TRITANIUM_NUGGETS: TagKey = ItemTags.create(ResourceLocation("forge", "nuggets/tritanium")) + val NUGGETS: TagKey = ItemTags.create(ResourceLocation("forge", "nuggets")) val TRITANIUM_INGOTS_STORAGE: TagKey = ItemTags.create(ResourceLocation("forge", "storage_blocks/tritanium")) val TRITANIUM_PLATES: TagKey = ItemTags.create(ResourceLocation("forge", "plates/tritanium")) val TRITANIUM_DUSTS: TagKey = ItemTags.create(ResourceLocation("forge", "dusts/tritanium")) diff --git a/src/main/resources/overdrive_that_matters.mixins.json b/src/main/resources/overdrive_that_matters.mixins.json index 7559f932a..1ff29e66e 100644 --- a/src/main/resources/overdrive_that_matters.mixins.json +++ b/src/main/resources/overdrive_that_matters.mixins.json @@ -7,6 +7,7 @@ "refmap": "overdrive_that_matters.refmap.json", "mixins": [ "MixinPatchProjectileFinder", - "MixinLivingEntity" + "MixinLivingEntity", + "MixinAnvilBlock" ] }