This commit is contained in:
GearShocky 2025-03-07 20:58:05 +05:00
parent 5064a6d996
commit 2d1d9d28f3
25 changed files with 243 additions and 48 deletions

View File

@ -36,6 +36,7 @@ fun addDecorativeData(blockStateProvider: MatteryBlockStateProvider, itemModelPr
DataGen.decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK) DataGen.decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK)
DataGen.decorativeCubeAllCutout(MBlocks.METAL_MESH) DataGen.decorativeCubeAllCutout(MBlocks.METAL_MESH)
DataGen.decorativePillar(MBlocks.TIRE_BLOCK, "carbon_fibre_block", "tire")
DataGen.decoratives(MRegistry.TRITANIUM_BLOCK) 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.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.DANGER_STRIPE_BLOCK, MItems.DANGER_STRIPE_BLOCK.registryName!!.path + "_0")
itemModelProvider.block(MItems.METAL_BEAM) itemModelProvider.block(MItems.METAL_BEAM)
itemModelProvider.block(MItems.TIRE_BLOCK)
blockStateProvider.block(MBlocks.METAL_BEAM_CENTER) blockStateProvider.block(MBlocks.METAL_BEAM_CENTER)
itemModelProvider.block(MItems.METAL_BEAM_CENTER) itemModelProvider.block(MItems.METAL_BEAM_CENTER)

View File

@ -127,6 +127,7 @@ fun addItemModels(provider: MatteryItemModelProvider) {
provider.generated(MItems.BREAD_MONSTER_SPAWN_EGG, modLocation("item/egg/bread_monster")) 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.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.generatedTiered(MItems.BATTERIES, "battery_tier")
provider.generated(MItems.BATTERY_CREATIVE) provider.generated(MItems.BATTERY_CREATIVE)

View File

@ -653,6 +653,8 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.METAL_JUNK, "desc", "Useless junk, or is it?") add(MBlocks.METAL_JUNK, "desc", "Useless junk, or is it?")
add(MBlocks.METAL_MESH, "Metal Grate") add(MBlocks.METAL_MESH, "Metal Grate")
add(MBlocks.TIRE_BLOCK, "Tire")
add(MBlocks.TRITANIUM_ORE, "Tritanium Ore") add(MBlocks.TRITANIUM_ORE, "Tritanium Ore")
add(MBlocks.DEEPSLATE_TRITANIUM_ORE, "Deepslate Tritanium Ore") add(MBlocks.DEEPSLATE_TRITANIUM_ORE, "Deepslate Tritanium Ore")
add(MBlocks.TRITANIUM_RAW_BLOCK, "Raw Tritanium Block") 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.CARBON_MESH, "Carbon Mesh")
add(MItems.DISPLAY_SCREEN, "Display Screen") 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, "Spacetime Equalizer")
add(MItems.GRAVITATIONAL_DISRUPTOR, "description", "Once within close proximity of massive spacetime dilation anomaly, equalizes spacetime in it's radius") 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.ENERGY_SWORD, "desc4", "Does not benefit from Sweeping Edge enchantment")
add(MItems.FALLING_SUN, "◄ Falling Sun ►") 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, "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, "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, "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_CONDENSATION_DRIVE, "Portable Condensation Drive")
add(MItems.PORTABLE_DENSE_CONDENSATION_DRIVE, "Portable Dense 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(MItems.LOADER_SPAWN_EGG, "Loader Spawn Egg")
add(MEntityTypes.LOADER, "Loader") add(MEntityTypes.LOADER, "Loader")
add(MItems.ANDROID_MELEE_SPAWN_EGG, "Melee Android Spawn Egg")
add(MEntityTypes.ANDROID_MELEE, "Melee Android")
} }
} }

View File

@ -657,6 +657,8 @@ private fun blocks(provider: MatteryLanguageProvider) {
add(MBlocks.METAL_JUNK, "Металлический хлам") add(MBlocks.METAL_JUNK, "Металлический хлам")
add(MBlocks.METAL_JUNK, "desc", "Бесполезный хлам, или нет?") add(MBlocks.METAL_JUNK, "desc", "Бесполезный хлам, или нет?")
add(MBlocks.TIRE_BLOCK, "Колесо")
add(MBlocks.TRITANIUM_ORE, "Тритановая руда") add(MBlocks.TRITANIUM_ORE, "Тритановая руда")
add(MBlocks.DILITHIUM_ORE, "Дилитевая руда") add(MBlocks.DILITHIUM_ORE, "Дилитевая руда")
add(MBlocks.DEEPSLATE_TRITANIUM_ORE, "Тританоносный глубинный сланец") add(MBlocks.DEEPSLATE_TRITANIUM_ORE, "Тританоносный глубинный сланец")
@ -825,6 +827,9 @@ private fun items(provider: MatteryLanguageProvider) {
add(MItems.CARBON_MESH, "Углеродная сетка") add(MItems.CARBON_MESH, "Углеродная сетка")
add(MItems.DISPLAY_SCREEN, "Экран дисплея") add(MItems.DISPLAY_SCREEN, "Экран дисплея")
add(MItems.ROGUE_AI_CORE, "Ядро ИИ")
add(MItems.ROGUE_AI_CORE, "desc", "Похоже, что это устройство все еще работает, и пульсирует алым светом.")
add(MItems.GRAVITATIONAL_DISRUPTOR, "Маяк уравнения пространства-времени") add(MItems.GRAVITATIONAL_DISRUPTOR, "Маяк уравнения пространства-времени")
add(MItems.GRAVITATIONAL_DISRUPTOR, "description", "Будучи находясь около точки искажения пространства-времени, создаёт противоположное искажение пространства-времени") add(MItems.GRAVITATIONAL_DISRUPTOR, "description", "Будучи находясь около точки искажения пространства-времени, создаёт противоположное искажение пространства-времени")
@ -858,10 +863,11 @@ private fun items(provider: MatteryLanguageProvider) {
add(MItems.ENERGY_SWORD, "desc4", "Зачарование 'Разящий клинок' не имеет никакого эффекта на данном оружии") add(MItems.ENERGY_SWORD, "desc4", "Зачарование 'Разящий клинок' не имеет никакого эффекта на данном оружии")
add(MItems.FALLING_SUN, "◄ Падающее Солнце ►") add(MItems.FALLING_SUN, "◄ Падающее Солнце ►")
add(MItems.FALLING_SUN, "desc", "Прототип,требует энергию для работы") add(MItems.FALLING_SUN, "desc", "Смехотворно громоздкое оружие,требует энергию для работы")
add(MItems.FALLING_SUN, "desc2", "Наносит дополнительный урон андроидам если имеет заряд") add(MItems.FALLING_SUN, "desc2", "Наносит дополнительный урон андроидам если имеет заряд")
add(MItems.FALLING_SUN, "desc3", "Всегда наносит полный урон по площади если имеет заряд") add(MItems.FALLING_SUN, "desc3", "Всегда наносит полный урон по площади если имеет заряд")
add(MItems.FALLING_SUN, "desc4", "Зачарование 'Разящий клинок' не имеет никакого эффекта на данном оружии") add(MItems.FALLING_SUN, "desc4", "Зачарование 'Разящий клинок' не имеет никакого эффекта на данном оружии")
add(MItems.FALLING_SUN, "desc5", "§oМой судный день пришел так скоро?")
add(MItems.PORTABLE_CONDENSATION_DRIVE, "Portable Condensation Drive") add(MItems.PORTABLE_CONDENSATION_DRIVE, "Portable Condensation Drive")
add(MItems.PORTABLE_DENSE_CONDENSATION_DRIVE, "Portable Dense 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(MItems.LOADER_SPAWN_EGG, "Яйцо призыва погрузчика")
add(MEntityTypes.LOADER, "Погрузчик") add(MEntityTypes.LOADER, "Погрузчик")
add(MItems.ANDROID_MELEE_SPAWN_EGG, "Яйцо призыва андроида ближнего боя")
add(MEntityTypes.ANDROID_MELEE, "Андроид ближнего боя")
} }
} }

View File

@ -17,5 +17,18 @@ fun addEntityLoot(loot: LootTables) {
} }
setRolls(1) 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)
}
}
} }
} }

View File

@ -1,8 +1,10 @@
package ru.dbotthepony.mc.otm.datagen.loot package ru.dbotthepony.mc.otm.datagen.loot
import net.minecraft.resources.ResourceLocation
import net.minecraft.util.valueproviders.UniformInt import net.minecraft.util.valueproviders.UniformInt
import net.minecraft.world.item.Items import net.minecraft.world.item.Items
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets 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.core.math.Decimal
import ru.dbotthepony.mc.otm.data.world.UniformDecimal import ru.dbotthepony.mc.otm.data.world.UniformDecimal
import ru.dbotthepony.mc.otm.datagen.modLootTable 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.exopack.ProceduralExopackSlotUpgradeItem
import ru.dbotthepony.mc.otm.item.matter.MatterDustItem import ru.dbotthepony.mc.otm.item.matter.MatterDustItem
import ru.dbotthepony.mc.otm.registry.game.MItems 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) { fun addChestLootTables(loot: LootTables) {
loot.builder(LootContextParamSets.CHEST, modLootTable("food_box")) { 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")) { loot.builder(LootContextParamSets.CHEST, modLootTable("frigate_cargo")) {
lootPool { lootPool {
item(Items.IRON_INGOT) { item(Items.IRON_INGOT) { setCount(minimal = 1, maximal = 3)}
setCount(minimal = 1, maximal = 3)
setWeight(3)
}
item(Items.GOLD_INGOT) { setCount(minimal = 1, maximal = 3) } item(Items.GOLD_INGOT) { setCount(minimal = 1, maximal = 3) }
item(Items.EMERALD) { setCount(minimal = 1, maximal = 3) } item(Items.EMERALD) { setCount(minimal = 1, maximal = 3) }
item(MItems.TRITANIUM_INGOT) { setCount(minimal = 1, maximal = 3) } item(MItems.TRITANIUM_INGOT) { setCount(minimal = 1, maximal = 3) }
item(MItems.MECHANICAL_PARTS) { item(MItems.MECHANICAL_PARTS) { setCount(minimal = 2, maximal = 3)}
setCount(minimal = 2, maximal = 3)
setWeight(2)
}
item(MItems.CIRCUIT_PLATING) { setCount(minimal = 2, maximal = 3) } item(MItems.CIRCUIT_PLATING) { setCount(minimal = 2, maximal = 3) }
item(MItems.ENERGY_BUS) { setCount(minimal = 0, maximal = 2) } 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.SADDLE) { setCount(minimal = 0, maximal = 1) }
item(Items.DIAMOND) { setCount(minimal = 0, maximal = 3) } item(Items.DIAMOND) { setCount(minimal = 0, maximal = 3) }
item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { chanceCondition(0.2)
chanceCondition(0.2)
setWeight(3) setWeight(3)
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(1, 9), UniformInt.of(0, 3))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(1, 9), UniformInt.of(0, 3)))
} }
item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { item(MItems.ExopackUpgrades.INVENTORY_UPGRADE_PROCEDURAL) { chanceCondition(0.1)
chanceCondition(0.1)
setWeight(2) setWeight(2)
apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18), UniformInt.of(0, 3))) apply(ProceduralExopackSlotUpgradeItem.Randomizer(UniformInt.of(9, 18), UniformInt.of(0, 3)))
} }
@ -109,7 +86,7 @@ fun addChestLootTables(loot: LootTables) {
} }
item(MItems.ZPM_BATTERY) { item(MItems.ZPM_BATTERY) {
chanceCondition(0.001) chanceCondition(0.0002)
setWeight(1) setWeight(1)
} }
@ -123,6 +100,8 @@ fun addChestLootTables(loot: LootTables) {
} }
} }
//LABORATORY///////////
loot.builder(LootContextParamSets.CHEST, modLootTable("laboratory/supply")) { loot.builder(LootContextParamSets.CHEST, modLootTable("laboratory/supply")) {
lootPool { lootPool {
item(Items.BREAD) { setCount(minimal = 2, maximal = 3) } 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 { 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")
))
} }
} }
} }

View File

@ -1,5 +1,7 @@
package ru.dbotthepony.mc.otm.entity 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.SoundEvent
import net.minecraft.sounds.SoundEvents import net.minecraft.sounds.SoundEvents
import net.minecraft.world.entity.EntityType 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.entity.player.Player
import net.minecraft.world.item.ItemStack import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.Level 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<AndroidMelee>, level: Level) : Monster(type, level) { class AndroidMelee(type: EntityType<AndroidMelee>, level: Level) : Monster(type, level) {
@ -54,6 +59,13 @@ class AndroidMelee(type: EntityType<AndroidMelee>, level: Level) : Monster(type,
return SoundEvents.VAULT_BREAK return SoundEvents.VAULT_BREAK
} }
override fun getDefaultLootTable(): ResourceKey<LootTable> {
return ResourceKey.create(
Registries.LOOT_TABLE,
ResourceLocation(OverdriveThatMatters.MOD_ID, "entities/android_melee")
)
}
override fun createNavigation(level: Level): PathNavigation = GroundPathNavigation(this, level) override fun createNavigation(level: Level): PathNavigation = GroundPathNavigation(this, level)
companion object { companion object {

View File

@ -49,14 +49,14 @@ class FallingSunItem : MatteryItem(Properties().stacksTo(1).rarity(Rarity.EPIC))
var builder = ItemAttributeModifiers.builder() 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_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) 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() chargedAttributes = builder.build()
builder = ItemAttributeModifiers.builder() 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_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() dischargedAttributes = builder.build()
} }
@ -130,6 +130,7 @@ class FallingSunItem : MatteryItem(Properties().stacksTo(1).rarity(Rarity.EPIC))
addSimpleDescription("2") addSimpleDescription("2")
addSimpleDescription("3") addSimpleDescription("3")
addSimpleDescription("4") addSimpleDescription("4")
addSimpleDescription("5")
} }
override fun mineBlock( override fun mineBlock(

View File

@ -110,6 +110,7 @@ object MNames {
const val METAL_MESH = "metal_mesh" const val METAL_MESH = "metal_mesh"
const val METAL_JUNK = "metal_junk" const val METAL_JUNK = "metal_junk"
const val CARBON_FIBRE_BLOCK = "carbon_fibre_block" const val CARBON_FIBRE_BLOCK = "carbon_fibre_block"
const val TIRE_BLOCK = "tire_block"
const val FLOOR_TILES = "floor_tiles" const val FLOOR_TILES = "floor_tiles"
const val FLOOR_TILES_STAIRS = "floor_tiles_stairs" 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 BREAD_MONSTER_SPAWN_EGG = "bead_monster_spawn_egg"
const val LOADER_SPAWN_EGG = "loader_spawn_egg" const val LOADER_SPAWN_EGG = "loader_spawn_egg"
const val ANDROID_MELEE_SPAWN_EGG = "android_melee_spawn_egg"
// items: crafting components // items: crafting components
const val TRITANIUM_DUST = "tritanium_dust" const val TRITANIUM_DUST = "tritanium_dust"
const val TRITANIUM_NUGGET = "tritanium_nugget" const val TRITANIUM_NUGGET = "tritanium_nugget"
@ -221,6 +224,8 @@ object MNames {
const val MATTER_IO_PORT = "matter_io_port" const val MATTER_IO_PORT = "matter_io_port"
const val ROGUE_AI_CORE = "rogue_ai_core"
const val CARBON_MESH = "carbon_mesh" const val CARBON_MESH = "carbon_mesh"
const val ARMOR_ASSEMBLY = "armor_assembly" const val ARMOR_ASSEMBLY = "armor_assembly"
const val REINFORCED_TRITANIUM_PLATE = "reinforced_tritanium_plate" const val REINFORCED_TRITANIUM_PLATE = "reinforced_tritanium_plate"

View File

@ -432,6 +432,15 @@ object MBlocks {
.destroyTime(1.5f) .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() } val MULTIBLOCK_TEST by registry.register("multiblock_test") { MultiblockTestBlock() }
init { init {

View File

@ -250,6 +250,7 @@ private fun addMainCreativeTabItems(consumer: CreativeModeTab.Output) {
accept(MItems.WITHERED_STEEL_SWORD) accept(MItems.WITHERED_STEEL_SWORD)
energized(MItems.ENERGY_SWORD) energized(MItems.ENERGY_SWORD)
energized(MItems.FALLING_SUN)
accept(MItems.REDSTONE_INTERACTOR) accept(MItems.REDSTONE_INTERACTOR)
accept(MItems.EXPLOSIVE_HAMMER) accept(MItems.EXPLOSIVE_HAMMER)
@ -329,6 +330,7 @@ private fun addDecorativeTabItems(consumer: CreativeModeTab.Output) {
accept(MItems.CARBON_FIBRE_BLOCK) accept(MItems.CARBON_FIBRE_BLOCK)
accept(MItems.METAL_JUNK) accept(MItems.METAL_JUNK)
accept(MItems.METAL_MESH) accept(MItems.METAL_MESH)
accept(MItems.TIRE_BLOCK)
accept(MItems.TRITANIUM_BARS) accept(MItems.TRITANIUM_BARS)
accept(MItems.METAL_RAILING) accept(MItems.METAL_RAILING)

View File

@ -60,9 +60,9 @@ object MEntityTypes {
val ANDROID_MELEE: EntityType<AndroidMelee> by registry.register(MNames.ANDROID_MELEE) { val ANDROID_MELEE: EntityType<AndroidMelee> by registry.register(MNames.ANDROID_MELEE) {
EntityType.Builder.of(::AndroidMelee, MobCategory.MONSTER) EntityType.Builder.of(::AndroidMelee, MobCategory.MONSTER)
.sized(1.2f, 2.5f) .sized(0.66f, 1.98f)
.eyeHeight(2.0f) .eyeHeight(1.78f)
.passengerAttachments(2.5f) .passengerAttachments(1.98f)
.clientTrackingRange(12) .clientTrackingRange(12)
.build(MNames.ANDROID_MELEE) .build(MNames.ANDROID_MELEE)
} }

View File

@ -554,6 +554,9 @@ object MItems {
val REINFORCED_IRON_PLATE: Item by registry.register(MNames.REINFORCED_IRON_PLATE) { MatteryItem( val REINFORCED_IRON_PLATE: Item by registry.register(MNames.REINFORCED_IRON_PLATE) { MatteryItem(
DEFAULT_PROPERTIES DEFAULT_PROPERTIES
).addSimpleDescription() } ).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 QUANTUM_TRANSCEIVER: Item by registry.register(MNames.QUANTUM_TRANSCEIVER) { Item(DEFAULT_PROPERTIES) }
val ELECTROMAGNET: Item by registry.register(MNames.ELECTROMAGNET) { Item(DEFAULT_PROPERTIES) } val ELECTROMAGNET: Item by registry.register(MNames.ELECTROMAGNET) { Item(DEFAULT_PROPERTIES) }
@ -592,6 +595,8 @@ object MItems {
MItems::MIRROR, MItems::MIRROR,
MItems::DISPLAY_SCREEN, MItems::DISPLAY_SCREEN,
MItems::ROGUE_AI_CORE,
MItems::CARBON_MESH, MItems::CARBON_MESH,
MItems::ARMOR_ASSEMBLY, MItems::ARMOR_ASSEMBLY,
MItems::REINFORCED_TRITANIUM_PLATE, MItems::REINFORCED_TRITANIUM_PLATE,
@ -628,6 +633,7 @@ object MItems {
MItems::MIRROR, MItems::MIRROR,
MItems::DISPLAY_SCREEN, MItems::DISPLAY_SCREEN,
MItems::ROGUE_AI_CORE,
MItems::CARBON_MESH, MItems::CARBON_MESH,
MItems::ARMOR_ASSEMBLY, MItems::ARMOR_ASSEMBLY,
MItems::REINFORCED_TRITANIUM_PLATE, 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 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_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 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 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 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 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_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) } val ROFLITE_ALLOY_BLOCK: BlockItem by registry.register(MNames.ROFLITE_ALLOY_BLOCK) { BlockItem(MBlocks.ROFLITE_ALLOY_BLOCK, DEFAULT_PROPERTIES) }

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

View File

@ -1,16 +1,16 @@
{ {
"type": "minecraft:jigsaw", "type": "minecraft:jigsaw",
"biomes": "#overdrive_that_matters:laboratory", "biomes": "#overdrive_that_matters:laboratory",
"max_distance_from_center": 112, "max_distance_from_center": 60,
"liquid_settings": "ignore_waterlogging", "liquid_settings": "ignore_waterlogging",
"size": 10, "size": 20,
"start_height": { "start_height": {
"type": "minecraft:uniform", "type": "minecraft:biased_to_bottom",
"max_inclusive": { "max_inclusive": {
"absolute": 30 "absolute": 0
}, },
"min_inclusive": { "min_inclusive": {
"absolute": -13 "absolute": -16
} }
}, },
"spawn_overrides": { "spawn_overrides": {