diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DecorativeData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DecorativeData.kt index 249085671..d33289852 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DecorativeData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DecorativeData.kt @@ -36,6 +36,7 @@ fun addDecorativeData(blockStateProvider: MatteryBlockStateProvider, itemModelPr DataGen.decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK) DataGen.decorativeCubeAllCutout(MBlocks.METAL_MESH) + DataGen.decorativePillar(MBlocks.TIRE_BLOCK, "carbon_fibre_block", "tire") DataGen.decoratives(MRegistry.TRITANIUM_BLOCK) @@ -259,6 +260,7 @@ fun addDecorativeData(blockStateProvider: MatteryBlockStateProvider, itemModelPr itemModelProvider.block(MItems.LABORATORY_LAMP_INVERTED, MItems.LABORATORY_LAMP.registryName!!.path + "_unlit") itemModelProvider.block(MItems.DANGER_STRIPE_BLOCK, MItems.DANGER_STRIPE_BLOCK.registryName!!.path + "_0") itemModelProvider.block(MItems.METAL_BEAM) + itemModelProvider.block(MItems.TIRE_BLOCK) blockStateProvider.block(MBlocks.METAL_BEAM_CENTER) itemModelProvider.block(MItems.METAL_BEAM_CENTER) 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 1c4bc7248..281bb86ec 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 @@ -127,6 +127,7 @@ fun addItemModels(provider: MatteryItemModelProvider) { provider.generated(MItems.BREAD_MONSTER_SPAWN_EGG, modLocation("item/egg/bread_monster")) provider.generated(MItems.LOADER_SPAWN_EGG, modLocation("item/egg/loader")) + provider.generated(MItems.ANDROID_MELEE_SPAWN_EGG, modLocation("item/egg/android_melee")) provider.generatedTiered(MItems.BATTERIES, "battery_tier") provider.generated(MItems.BATTERY_CREATIVE) 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 b7797fb52..0c9af9f67 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 @@ -653,6 +653,8 @@ private fun blocks(provider: MatteryLanguageProvider) { add(MBlocks.METAL_JUNK, "desc", "Useless junk, or is it?") add(MBlocks.METAL_MESH, "Metal Grate") + add(MBlocks.TIRE_BLOCK, "Tire") + add(MBlocks.TRITANIUM_ORE, "Tritanium Ore") add(MBlocks.DEEPSLATE_TRITANIUM_ORE, "Deepslate Tritanium Ore") add(MBlocks.TRITANIUM_RAW_BLOCK, "Raw Tritanium Block") @@ -832,6 +834,9 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.CARBON_MESH, "Carbon Mesh") add(MItems.DISPLAY_SCREEN, "Display Screen") + add(MItems.ROGUE_AI_CORE, "Rogue AI Core") + add(MItems.ROGUE_AI_CORE, "desc", "It appears that this device is still active, pulsating with a crimson light") + add(MItems.GRAVITATIONAL_DISRUPTOR, "Spacetime Equalizer") add(MItems.GRAVITATIONAL_DISRUPTOR, "description", "Once within close proximity of massive spacetime dilation anomaly, equalizes spacetime in it's radius") @@ -865,10 +870,11 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.ENERGY_SWORD, "desc4", "Does not benefit from Sweeping Edge enchantment") add(MItems.FALLING_SUN, "◄ Falling Sun ►") - add(MItems.FALLING_SUN, "desc", "Prototype weapon, needs power to operate") + add(MItems.FALLING_SUN, "desc", "A ridiculously unwieldy weapon, needs power to operate") add(MItems.FALLING_SUN, "desc2", "Deals extra damage to androids when empowered") add(MItems.FALLING_SUN, "desc3", "Always strikes surrounding enemies with full damage if empowered") add(MItems.FALLING_SUN, "desc4", "Does not benefit from Sweeping Edge enchantment") + add(MItems.FALLING_SUN, "desc5", "§oHas my judgement come so soon?") add(MItems.PORTABLE_CONDENSATION_DRIVE, "Portable Condensation Drive") add(MItems.PORTABLE_DENSE_CONDENSATION_DRIVE, "Portable Dense Condensation Drive") @@ -940,6 +946,9 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.LOADER_SPAWN_EGG, "Loader Spawn Egg") add(MEntityTypes.LOADER, "Loader") + + add(MItems.ANDROID_MELEE_SPAWN_EGG, "Melee Android Spawn Egg") + add(MEntityTypes.ANDROID_MELEE, "Melee Android") } } 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 0efb16145..1dc5fa71f 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 @@ -657,6 +657,8 @@ private fun blocks(provider: MatteryLanguageProvider) { add(MBlocks.METAL_JUNK, "Металлический хлам") add(MBlocks.METAL_JUNK, "desc", "Бесполезный хлам, или нет?") + add(MBlocks.TIRE_BLOCK, "Колесо") + add(MBlocks.TRITANIUM_ORE, "Тритановая руда") add(MBlocks.DILITHIUM_ORE, "Дилитевая руда") add(MBlocks.DEEPSLATE_TRITANIUM_ORE, "Тританоносный глубинный сланец") @@ -825,6 +827,9 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.CARBON_MESH, "Углеродная сетка") add(MItems.DISPLAY_SCREEN, "Экран дисплея") + add(MItems.ROGUE_AI_CORE, "Ядро ИИ") + add(MItems.ROGUE_AI_CORE, "desc", "Похоже, что это устройство все еще работает, и пульсирует алым светом.") + add(MItems.GRAVITATIONAL_DISRUPTOR, "Маяк уравнения пространства-времени") add(MItems.GRAVITATIONAL_DISRUPTOR, "description", "Будучи находясь около точки искажения пространства-времени, создаёт противоположное искажение пространства-времени") @@ -858,10 +863,11 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.ENERGY_SWORD, "desc4", "Зачарование 'Разящий клинок' не имеет никакого эффекта на данном оружии") add(MItems.FALLING_SUN, "◄ Падающее Солнце ►") - add(MItems.FALLING_SUN, "desc", "Прототип,требует энергию для работы") + add(MItems.FALLING_SUN, "desc", "Смехотворно громоздкое оружие,требует энергию для работы") add(MItems.FALLING_SUN, "desc2", "Наносит дополнительный урон андроидам если имеет заряд") add(MItems.FALLING_SUN, "desc3", "Всегда наносит полный урон по площади если имеет заряд") add(MItems.FALLING_SUN, "desc4", "Зачарование 'Разящий клинок' не имеет никакого эффекта на данном оружии") + add(MItems.FALLING_SUN, "desc5", "§oМой судный день пришел так скоро?") add(MItems.PORTABLE_CONDENSATION_DRIVE, "Portable Condensation Drive") add(MItems.PORTABLE_DENSE_CONDENSATION_DRIVE, "Portable Dense Condensation Drive") @@ -933,6 +939,9 @@ private fun items(provider: MatteryLanguageProvider) { add(MItems.LOADER_SPAWN_EGG, "Яйцо призыва погрузчика") add(MEntityTypes.LOADER, "Погрузчик") + + add(MItems.ANDROID_MELEE_SPAWN_EGG, "Яйцо призыва андроида ближнего боя") + add(MEntityTypes.ANDROID_MELEE, "Андроид ближнего боя") } } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/EntityLoot.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/EntityLoot.kt index 16ce1b445..d4ece1a81 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/EntityLoot.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/EntityLoot.kt @@ -17,5 +17,18 @@ fun addEntityLoot(loot: LootTables) { } setRolls(1) } + lootPool { + item(MItems.ROGUE_AI_CORE) { + setCount(1, 1) + } + } + } + + loot.builder(LootContextParamSets.ENTITY, modLootTable("entities/android_melee")) { + lootPool { + item(MItems.ROGUE_AI_CORE) { + setCount(1, 1) + } + } } } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt index 194784963..20cd4ec2f 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesChests.kt @@ -1,8 +1,10 @@ package ru.dbotthepony.mc.otm.datagen.loot +import net.minecraft.resources.ResourceLocation import net.minecraft.util.valueproviders.UniformInt import net.minecraft.world.item.Items import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets +import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.data.world.UniformDecimal import ru.dbotthepony.mc.otm.datagen.modLootTable @@ -10,6 +12,9 @@ import ru.dbotthepony.mc.otm.item.ProceduralBatteryItem import ru.dbotthepony.mc.otm.item.exopack.ProceduralExopackSlotUpgradeItem import ru.dbotthepony.mc.otm.item.matter.MatterDustItem import ru.dbotthepony.mc.otm.registry.game.MItems +import net.minecraft.world.level.storage.loot.entries.NestedLootTable +import net.neoforged.neoforge.common.Tags.Enchantments +import ru.dbotthepony.mc.otm.core.ResourceLocation fun addChestLootTables(loot: LootTables) { loot.builder(LootContextParamSets.CHEST, modLootTable("food_box")) { @@ -44,40 +49,14 @@ fun addChestLootTables(loot: LootTables) { } } - loot.builder(LootContextParamSets.VAULT, modLootTable("laboratory_vault")){ - lootPool { - item(MItems.MATTER_DUST) { - chanceCondition(0.1) - setWeight(4) - apply(MatterDustItem.Randomizer(UniformDecimal(Decimal(100), Decimal(2_500)))) - } - item(Items.IRON_INGOT) { - setCount(minimal = 1, maximal = 3) - setWeight(3) - } - - } - } - - loot.builder(LootContextParamSets.VAULT, modLootTable("laboratory_ominous_vault")){ - - - } - loot.builder(LootContextParamSets.CHEST, modLootTable("frigate_cargo")) { lootPool { - item(Items.IRON_INGOT) { - setCount(minimal = 1, maximal = 3) - setWeight(3) - } + item(Items.IRON_INGOT) { setCount(minimal = 1, maximal = 3)} item(Items.GOLD_INGOT) { setCount(minimal = 1, maximal = 3) } item(Items.EMERALD) { setCount(minimal = 1, maximal = 3) } item(MItems.TRITANIUM_INGOT) { setCount(minimal = 1, maximal = 3) } - item(MItems.MECHANICAL_PARTS) { - setCount(minimal = 2, maximal = 3) - setWeight(2) - } + item(MItems.MECHANICAL_PARTS) { setCount(minimal = 2, maximal = 3)} item(MItems.CIRCUIT_PLATING) { setCount(minimal = 2, maximal = 3) } item(MItems.ENERGY_BUS) { setCount(minimal = 0, maximal = 2) } @@ -86,13 +65,11 @@ fun addChestLootTables(loot: LootTables) { item(Items.SADDLE) { setCount(minimal = 0, maximal = 1) } item(Items.DIAMOND) { setCount(minimal = 0, maximal = 3) } - item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { - chanceCondition(0.2) + item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { chanceCondition(0.2) setWeight(3) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(1, 9), UniformInt.of(0, 3))) } - item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { - chanceCondition(0.1) + item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { chanceCondition(0.1) setWeight(2) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18), UniformInt.of(0, 3))) } @@ -109,7 +86,7 @@ fun addChestLootTables(loot: LootTables) { } item(MItems.ZPM_BATTERY) { - chanceCondition(0.001) + chanceCondition(0.0002) setWeight(1) } @@ -123,6 +100,8 @@ fun addChestLootTables(loot: LootTables) { } } + //LABORATORY/////////// + loot.builder(LootContextParamSets.CHEST, modLootTable("laboratory/supply")) { lootPool { item(Items.BREAD) { setCount(minimal = 2, maximal = 3) } @@ -135,12 +114,157 @@ fun addChestLootTables(loot: LootTables) { } } - loot.builder(LootContextParamSets.CHEST, modLootTable("laboratory/reward")) { + loot.builder(LootContextParamSets.VAULT, modLootTable("laboratory/reward")){ + //materials lootPool { - item(MItems.NUTRIENT_PASTE) { setCount(minimal = 2, maximal = 3) } + item(Items.IRON_INGOT) { + setCount(minimal = 3, maximal = 8) + setWeight(3) + } + item(Items.GOLD_INGOT) { + setCount(minimal = 2, maximal = 3) + setWeight(2) + } + item(Items.DIAMOND) { + setCount(minimal = 1, maximal = 3) + setWeight(1) + } + item(MItems.ROFLITE_ALLOY_INGOT) { + setCount(minimal = 2, maximal = 4) + setWeight(2) + } + setRolls(3) + } + //gear + lootPool{ + item(Items.IRON_SWORD) { + } + } + //food + lootPool { + item(MItems.NUTRIENT_PASTE) { + setCount(minimal = 2, maximal = 4) + setWeight(3) + } + item(Items.BREAD) { + setCount(minimal = 2, maximal = 4) + setWeight(4) + } + item(Items.COOKED_BEEF) { + setCount(minimal = 2, maximal = 4) + setWeight(3) + } + item(Items.OMINOUS_BOTTLE) { + setWeight(1) + } + } + //pills + lootPool { + item(MItems.PILL_ANDROID) { chanceCondition(0.1) + setWeight(1) + } + item(MItems.PILL_HEAL) { chanceCondition(0.5) + setWeight(2) + setCount(2, 5) + } + } + //otm + lootPool { + item(MItems.MATTER_DUST) { chanceCondition(0.1) + setWeight(4) + apply(MatterDustItem.Randomizer(UniformDecimal(Decimal(100), Decimal(2_500)))) + } + } + lootPool { item(MItems.PROCEDURAL_BATTERY) { chanceCondition(0.05) + setWeight(1) - setRolls(5) + apply( + ProceduralBatteryItem.Randomizer( + maxBatteryLevel = UniformDecimal(Decimal(10_000_000), Decimal(50_000_000)), + batteryLevel = UniformDecimal(Decimal(0), Decimal(25_000_000)), + maxInput = UniformDecimal(Decimal(1_000), Decimal(5_000)), + )) + } } + lootPool { item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { chanceCondition(0.2) + setWeight(2) + apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(1, 9), UniformInt.of(0, 3))) + } } + } + + loot.builder(LootContextParamSets.CHEST, modLootTable("laboratory/reward_ominous")) { + //unique + lootPool { item(MItems.FALLING_SUN) { + chanceCondition(0.1) + setWeight(1) + } } + + //special materials + lootPool { + item(Items.DIAMOND_BLOCK) { + setCount(minimal = 1, maximal = 1) + setWeight(1) + } + item(Items.EMERALD) { + setCount(minimal = 3, maximal = 6) + setWeight(3) + } + item(MItems.WITHERED_STEEL) { + setCount(minimal = 2, maximal = 4) + setWeight(2) + } + } + //materials + lootPool { + item(Items.COAL_BLOCK) { + setCount(minimal = 1, maximal = 3) + setWeight(2) + } + item(Items.IRON_BLOCK) { + setCount(minimal = 1, maximal = 3) + setWeight(1) + } + item(Items.REDSTONE_BLOCK) { + setCount(minimal = 1, maximal = 2) + setWeight(1) + } + } + //pills + lootPool { + item(MItems.PILL_HUMANE) { + chanceCondition(0.1) + setWeight(1) + } + item(MItems.PILL_OBLIVION) { + chanceCondition(0.5) + setWeight(2) + setCount(2, 5) + } + } + //otm + lootPool { + item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { + chanceCondition(0.2) + setWeight(2) + apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(12, 24), UniformInt.of(0, 3))) + } + } + lootPool { + item(MItems.ZPM_BATTERY) { + chanceCondition(0.001) + setWeight(1) + } + } + } + + loot.builder(LootContextParamSets.VAULT, modLootTable("laboratory/ominous_vault")){ + lootPool{ + add(NestedLootTable.lootTableReference( + modLootTable("laboratory/reward") + )) + add(NestedLootTable.lootTableReference( + modLootTable("laboratory/reward_ominous") + )) } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt index 4a827f31a..ae69b5cea 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/entity/AndroidMelee.kt @@ -1,5 +1,7 @@ package ru.dbotthepony.mc.otm.entity +import net.minecraft.core.registries.Registries +import net.minecraft.resources.ResourceKey import net.minecraft.sounds.SoundEvent import net.minecraft.sounds.SoundEvents import net.minecraft.world.entity.EntityType @@ -21,6 +23,9 @@ import net.minecraft.world.entity.npc.Villager import net.minecraft.world.entity.player.Player import net.minecraft.world.item.ItemStack import net.minecraft.world.level.Level +import net.minecraft.world.level.storage.loot.LootTable +import ru.dbotthepony.mc.otm.OverdriveThatMatters +import ru.dbotthepony.mc.otm.core.ResourceLocation class AndroidMelee(type: EntityType, level: Level) : Monster(type, level) { @@ -54,6 +59,13 @@ class AndroidMelee(type: EntityType, level: Level) : Monster(type, return SoundEvents.VAULT_BREAK } + override fun getDefaultLootTable(): ResourceKey { + return ResourceKey.create( + Registries.LOOT_TABLE, + ResourceLocation(OverdriveThatMatters.MOD_ID, "entities/android_melee") + ) + } + override fun createNavigation(level: Level): PathNavigation = GroundPathNavigation(this, level) companion object { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt index 6ba1ef311..3db52961a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt @@ -49,14 +49,14 @@ class FallingSunItem : MatteryItem(Properties().stacksTo(1).rarity(Rarity.EPIC)) var builder = ItemAttributeModifiers.builder() builder.add(Attributes.ATTACK_DAMAGE, AttributeModifier(BASE_ATTACK_DAMAGE_ID, 13.0, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) - builder.add(Attributes.ATTACK_SPEED, AttributeModifier(BASE_ATTACK_SPEED_ID, -3.4, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) + builder.add(Attributes.ATTACK_SPEED, AttributeModifier(BASE_ATTACK_SPEED_ID, -3.5, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) builder.add(Attributes.SWEEPING_DAMAGE_RATIO, AttributeModifier(ResourceLocation(OverdriveThatMatters.MOD_ID, "energy_sword_sweeping_edge"), 1.0, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) chargedAttributes = builder.build() builder = ItemAttributeModifiers.builder() builder.add(Attributes.ATTACK_DAMAGE, AttributeModifier(BASE_ATTACK_DAMAGE_ID, 5.5, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) - builder.add(Attributes.ATTACK_SPEED, AttributeModifier(BASE_ATTACK_SPEED_ID, -3.4, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) + builder.add(Attributes.ATTACK_SPEED, AttributeModifier(BASE_ATTACK_SPEED_ID, -3.5, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND) dischargedAttributes = builder.build() } @@ -130,6 +130,7 @@ class FallingSunItem : MatteryItem(Properties().stacksTo(1).rarity(Rarity.EPIC)) addSimpleDescription("2") addSimpleDescription("3") addSimpleDescription("4") + addSimpleDescription("5") } override fun mineBlock( 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 2ee8e33e0..9ce6e5de6 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt @@ -110,6 +110,7 @@ object MNames { const val METAL_MESH = "metal_mesh" const val METAL_JUNK = "metal_junk" const val CARBON_FIBRE_BLOCK = "carbon_fibre_block" + const val TIRE_BLOCK = "tire_block" const val FLOOR_TILES = "floor_tiles" const val FLOOR_TILES_STAIRS = "floor_tiles_stairs" @@ -207,6 +208,8 @@ object MNames { const val BREAD_MONSTER_SPAWN_EGG = "bead_monster_spawn_egg" const val LOADER_SPAWN_EGG = "loader_spawn_egg" + const val ANDROID_MELEE_SPAWN_EGG = "android_melee_spawn_egg" + // items: crafting components const val TRITANIUM_DUST = "tritanium_dust" const val TRITANIUM_NUGGET = "tritanium_nugget" @@ -221,6 +224,8 @@ object MNames { const val MATTER_IO_PORT = "matter_io_port" + const val ROGUE_AI_CORE = "rogue_ai_core" + const val CARBON_MESH = "carbon_mesh" const val ARMOR_ASSEMBLY = "armor_assembly" const val REINFORCED_TRITANIUM_PLATE = "reinforced_tritanium_plate" diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MBlocks.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MBlocks.kt index 9e4399b47..73a509453 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MBlocks.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MBlocks.kt @@ -432,6 +432,15 @@ object MBlocks { .destroyTime(1.5f) ) } + val TIRE_BLOCK: Block by registry.register(MNames.TIRE_BLOCK) { RotatedPillarBlock( + BlockBehaviour.Properties.of() + .mapColor(MapColor.COLOR_GRAY) + .sound(SoundType.BASALT) + .requiresCorrectToolForDrops() + .explosionResistance(40f) + .destroyTime(1.5f) + ) } + val MULTIBLOCK_TEST by registry.register("multiblock_test") { MultiblockTestBlock() } init { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MCreativeTabs.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MCreativeTabs.kt index 0d13a7607..04004b131 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MCreativeTabs.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MCreativeTabs.kt @@ -250,6 +250,7 @@ private fun addMainCreativeTabItems(consumer: CreativeModeTab.Output) { accept(MItems.WITHERED_STEEL_SWORD) energized(MItems.ENERGY_SWORD) + energized(MItems.FALLING_SUN) accept(MItems.REDSTONE_INTERACTOR) accept(MItems.EXPLOSIVE_HAMMER) @@ -329,6 +330,7 @@ private fun addDecorativeTabItems(consumer: CreativeModeTab.Output) { accept(MItems.CARBON_FIBRE_BLOCK) accept(MItems.METAL_JUNK) accept(MItems.METAL_MESH) + accept(MItems.TIRE_BLOCK) accept(MItems.TRITANIUM_BARS) accept(MItems.METAL_RAILING) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt index ebfa596c4..c2ae4a178 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MEntityTypes.kt @@ -60,9 +60,9 @@ object MEntityTypes { val ANDROID_MELEE: EntityType by registry.register(MNames.ANDROID_MELEE) { EntityType.Builder.of(::AndroidMelee, MobCategory.MONSTER) - .sized(1.2f, 2.5f) - .eyeHeight(2.0f) - .passengerAttachments(2.5f) + .sized(0.66f, 1.98f) + .eyeHeight(1.78f) + .passengerAttachments(1.98f) .clientTrackingRange(12) .build(MNames.ANDROID_MELEE) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MItems.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MItems.kt index cbd83e673..c6f3579fe 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MItems.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/game/MItems.kt @@ -554,6 +554,9 @@ object MItems { val REINFORCED_IRON_PLATE: Item by registry.register(MNames.REINFORCED_IRON_PLATE) { MatteryItem( DEFAULT_PROPERTIES ).addSimpleDescription() } + val ROGUE_AI_CORE: Item by registry.register(MNames.ROGUE_AI_CORE) { MatteryItem( + DEFAULT_PROPERTIES + ).addSimpleDescription() } val QUANTUM_TRANSCEIVER: Item by registry.register(MNames.QUANTUM_TRANSCEIVER) { Item(DEFAULT_PROPERTIES) } val ELECTROMAGNET: Item by registry.register(MNames.ELECTROMAGNET) { Item(DEFAULT_PROPERTIES) } @@ -592,6 +595,8 @@ object MItems { MItems::MIRROR, MItems::DISPLAY_SCREEN, + MItems::ROGUE_AI_CORE, + MItems::CARBON_MESH, MItems::ARMOR_ASSEMBLY, MItems::REINFORCED_TRITANIUM_PLATE, @@ -628,6 +633,7 @@ object MItems { MItems::MIRROR, MItems::DISPLAY_SCREEN, + MItems::ROGUE_AI_CORE, MItems::CARBON_MESH, MItems::ARMOR_ASSEMBLY, MItems::REINFORCED_TRITANIUM_PLATE, @@ -669,11 +675,13 @@ object MItems { val CARBON_FIBRE_BLOCK: Item by registry.register(MNames.CARBON_FIBRE_BLOCK) { BlockItem(MBlocks.CARBON_FIBRE_BLOCK, DEFAULT_PROPERTIES) } val METAL_JUNK: Item by registry.register(MNames.METAL_JUNK) { BlockItem(MBlocks.METAL_JUNK, DEFAULT_PROPERTIES) } val METAL_MESH: Item by registry.register(MNames.METAL_MESH) { BlockItem(MBlocks.METAL_MESH, DEFAULT_PROPERTIES) } + val TIRE_BLOCK: Item by registry.register(MNames.TIRE_BLOCK) { BlockItem(MBlocks.TIRE_BLOCK, DEFAULT_PROPERTIES) } val CHEST_UPGRADER: Item by registry.register(MNames.CHEST_UPGRADER) { ChestUpgraderItem() } val BREAD_MONSTER_SPAWN_EGG: Item by registry.register(MNames.BREAD_MONSTER_SPAWN_EGG){ SpawnEggItem(MEntityTypes.BREAD_MONSTER, 0xFFFFFF, 0xFFFFFF, Item.Properties())} val LOADER_SPAWN_EGG: Item by registry.register(MNames.LOADER_SPAWN_EGG){ SpawnEggItem(MEntityTypes.LOADER, 0xFFFFFF, 0xFFFFFF, Item.Properties())} + val ANDROID_MELEE_SPAWN_EGG: Item by registry.register(MNames.ANDROID_MELEE_SPAWN_EGG){ SpawnEggItem(MEntityTypes.ANDROID_MELEE, 0xFFFFFF, 0xFFFFFF, Item.Properties())} val ROFLITE_ALLOY_INGOT: Item by registry.register(MNames.ROFLITE_ALLOY_INGOT) { Item(DEFAULT_PROPERTIES) } val ROFLITE_ALLOY_BLOCK: BlockItem by registry.register(MNames.ROFLITE_ALLOY_BLOCK) { BlockItem(MBlocks.ROFLITE_ALLOY_BLOCK, DEFAULT_PROPERTIES) } diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/decorative/tire.png b/src/main/resources/assets/overdrive_that_matters/textures/block/decorative/tire.png new file mode 100644 index 000000000..deb0821ff Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/block/decorative/tire.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/egg/android_melee.png b/src/main/resources/assets/overdrive_that_matters/textures/item/egg/android_melee.png new file mode 100644 index 000000000..a1998c82a Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/egg/android_melee.png differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/crossroads/vertical_a.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/crossroads/vertical_a.nbt index 73b6e2d6d..11fcdd344 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/crossroads/vertical_a.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/crossroads/vertical_a.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/entrance/entrance_a.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/entrance/entrance_a.nbt index 0dd47493f..5c3803c88 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/entrance/entrance_a.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/entrance/entrance_a.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/bench.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/bench.nbt new file mode 100644 index 000000000..03d9603fe Binary files /dev/null and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/bench.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/refinery.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/refinery.nbt index d9c12ff42..387c998b8 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/refinery.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/refinery.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/server.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/server.nbt index 8253c2bf4..e0f19caa5 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/server.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/fluff/server.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/halls/hall1/hall_overgrown.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/halls/hall1/hall_overgrown.nbt index 4769910cb..2f1c93fd7 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/halls/hall1/hall_overgrown.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/halls/hall1/hall_overgrown.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/stairs_b.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/stairs_b.nbt index aa9e218d7..bb3bc15f2 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/stairs_b.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/stairs_b.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/turn_a.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/turn_a.nbt index 6c4e167dd..08f2bc419 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/turn_a.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/intersections/turn_a.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/structure/laboratory/rooms/office_a.nbt b/src/main/resources/data/overdrive_that_matters/structure/laboratory/rooms/office_a.nbt index 85ff54896..28af8efa8 100644 Binary files a/src/main/resources/data/overdrive_that_matters/structure/laboratory/rooms/office_a.nbt and b/src/main/resources/data/overdrive_that_matters/structure/laboratory/rooms/office_a.nbt differ diff --git a/src/main/resources/data/overdrive_that_matters/worldgen/structure/laboratory.json b/src/main/resources/data/overdrive_that_matters/worldgen/structure/laboratory.json index dee1b2d9c..6a931eeed 100644 --- a/src/main/resources/data/overdrive_that_matters/worldgen/structure/laboratory.json +++ b/src/main/resources/data/overdrive_that_matters/worldgen/structure/laboratory.json @@ -1,16 +1,16 @@ { "type": "minecraft:jigsaw", "biomes": "#overdrive_that_matters:laboratory", - "max_distance_from_center": 112, + "max_distance_from_center": 60, "liquid_settings": "ignore_waterlogging", - "size": 10, + "size": 20, "start_height": { - "type": "minecraft:uniform", + "type": "minecraft:biased_to_bottom", "max_inclusive": { - "absolute": 30 + "absolute": 0 }, "min_inclusive": { - "absolute": -13 + "absolute": -16 } }, "spawn_overrides": {