From 272cf0f7762d3f8bfb090a1074b86d0420c3784b Mon Sep 17 00:00:00 2001
From: GearShocky <gearshockmirasu@gmail.com>
Date: Sat, 1 Mar 2025 03:08:10 +0500
Subject: [PATCH] I'm schizo

---
 .../mc/otm/datagen/items/ItemModels.kt        |   1 +
 .../mc/otm/datagen/lang/English.kt            |   4 ++
 .../mc/otm/datagen/lang/Russian.kt            |   6 ++
 .../mc/otm/datagen/loot/LootModifiersData.kt  |  10 ++++
 .../otm/datagen/recipes/MultiblockRecipes.kt  |   6 +-
 .../mc/otm/datagen/recipes/ToolsRecipes.kt    |   7 +++
 .../otm/item/weapon/WitheredSteelSwordItem.kt |  53 ++++++++++++++++++
 .../ru/dbotthepony/mc/otm/registry/MNames.kt  |   9 ++-
 .../mc/otm/registry/game/MCreativeTabs.kt     |   4 ++
 .../mc/otm/registry/game/MItems.kt            |   5 ++
 .../models/block/frame_block.json             |   4 +-
 .../models/item/withered_steel_sword.json     |  19 +++++++
 .../item/withered_steel_sword_handheld.json   |  29 ++++++++++
 .../item/withered_steel_sword_inventory.json  |   7 +++
 .../textures/block/heavy_modular_frame.png    | Bin 491 -> 491 bytes
 .../roflite_alloy_ingot.png                   | Bin
 .../item/resources/withered_steel.png         | Bin 0 -> 504 bytes
 .../textures/item/withered_steel_sword.png    | Bin 0 -> 483 bytes
 .../item/withered_steel_sword_handheld.png    | Bin 0 -> 494 bytes
 .../withered_steel_sword.json                 |   6 ++
 20 files changed, 164 insertions(+), 6 deletions(-)
 create mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/WitheredSteelSwordItem.kt
 create mode 100644 src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword.json
 create mode 100644 src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_handheld.json
 create mode 100644 src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_inventory.json
 rename src/main/resources/assets/overdrive_that_matters/textures/item/{component => resources}/roflite_alloy_ingot.png (100%)
 create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/item/resources/withered_steel.png
 create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/item/withered_steel_sword.png
 create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/item/withered_steel_sword_handheld.png
 create mode 100644 src/main/resources/data/overdrive_that_matters/weapon_attributes/withered_steel_sword.json

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 089bcda2c..452c25f6c 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
@@ -99,6 +99,7 @@ fun addItemModels(provider: MatteryItemModelProvider) {
 	provider.resource(MItems.TRITANIUM_ORE_CLUMP)
 
 	provider.resource(MItems.DILITHIUM_CRYSTAL)
+	provider.resource(MItems.WITHERED_STEEL)
 
 	provider.generated(MItems.EXOPACK_PROBE)
 
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 822fefc35..ee8818b27 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
@@ -772,6 +772,8 @@ private fun items(provider: MatteryLanguageProvider) {
 		add(MItems.TRITANIUM_SHEARS, "Tritanium Shears")
 		add(MItems.TRITANIUM_SHIELD, "Tritanium Shield")
 
+		add(MItems.WITHERED_STEEL_SWORD, "Withered Steel Sword")
+
 		add(MItems.TRITANIUM_HELMET, "Tritanium Helmet")
 		add(MItems.TRITANIUM_CHESTPLATE, "Tritanium Chestplate")
 		add(MItems.TRITANIUM_PANTS, "Tritanium Leggings")
@@ -785,6 +787,7 @@ private fun items(provider: MatteryLanguageProvider) {
 		add(MItems.TRITANIUM_DUST, "Tritanium Dust")
 		add(MItems.TRITANIUM_INGOT, "Tritanium Ingot")
 		add(MItems.DILITHIUM_CRYSTAL, "Dilithium Crystal")
+		add(MItems.WITHERED_STEEL, "Withered Steel Ingot")
 		add(MItems.TRITANIUM_NUGGET, "Tritanium Nugget")
 		add(MItems.MATTER_IO_PORT, "Matter IO Port")
 		add(MItems.MATTER_TRANSFORM_MATRIX, "Matter Transformation Matrix")
@@ -911,6 +914,7 @@ private fun items(provider: MatteryLanguageProvider) {
 		add(MItems.CHEST_UPGRADER, "desc2", "Hold desired crates in the opposite hand")
 
 		add(MItems.BREAD_MONSTER_SPAWN_EGG, "Bread Monster Spawn Egg")
+		add(MEntityTypes.BREAD_MONSTER, "Bread Monster")
 	}
 }
 
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 d4867917a..229c311d1 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
@@ -765,6 +765,8 @@ private fun items(provider: MatteryLanguageProvider) {
 		add(MItems.TRITANIUM_SHEARS, "Тритановые ножницы")
 		add(MItems.TRITANIUM_SHIELD, "Тритановый щит")
 
+		add(MItems.WITHERED_STEEL_SWORD, "Меч из иссушенной стали")
+
 		add(MItems.TRITANIUM_HELMET, "Тритановый шлем")
 		add(MItems.TRITANIUM_CHESTPLATE, "Тритановый нагрудник")
 		add(MItems.TRITANIUM_PANTS, "Тритановые поножи")
@@ -778,6 +780,7 @@ private fun items(provider: MatteryLanguageProvider) {
 		add(MItems.TRITANIUM_DUST, "Тритановая пыль")
 		add(MItems.TRITANIUM_INGOT, "Тритановый слиток")
 		add(MItems.DILITHIUM_CRYSTAL, "Дилитевый кристалл")
+		add(MItems.WITHERED_STEEL, "Слиток иссушенной стали")
 		add(MItems.TRITANIUM_NUGGET, "Тритановый самородок")
 		add(MItems.MATTER_IO_PORT, "Порт ввода/вывода материи")
 		add(MItems.MATTER_TRANSFORM_MATRIX, "Матрица преобразования материи")
@@ -902,6 +905,9 @@ private fun items(provider: MatteryLanguageProvider) {
 		add(MItems.CHEST_UPGRADER, "Ящикатор")
 		add(MItems.CHEST_UPGRADER, "desc", "Заменяет установленные сундуки и бочки грузовыми ящиками с сохранением содержимого")
 		add(MItems.CHEST_UPGRADER, "desc2", "Удерживайте необходимые ящики в противоположной руке")
+
+		add(MItems.BREAD_MONSTER_SPAWN_EGG, "Яйцо призыва хлебного монстра")
+		add(MEntityTypes.BREAD_MONSTER, "Хлебный монстр")
 	}
 }
 
diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiersData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiersData.kt
index 527b0ac61..3a74146bc 100644
--- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiersData.kt
+++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiersData.kt
@@ -204,6 +204,16 @@ fun addLootModifiers(it: LootModifiers) {
 		ItemStack(MItems.EXOPACK_PROBE)
 	))
 
+	it.add("withered_skeleton_steel_drop", PlainLootAppender(
+		arrayOf(
+			LootTableIdCondition(EntityType.WITHER_SKELETON.defaultLootTable),
+			KilledByRealPlayerOrIndirectly
+		),
+
+		ItemStack(MItems.WITHERED_STEEL, 1) to 0.24,
+		ItemStack(MItems.WITHERED_STEEL, 2) to 0.11
+	))
+
 	it.add("wither_exosuit_upgrades", BasicLootAppender(
 		arrayOf(
 			LootTableIdCondition(EntityType.WITHER.defaultLootTable),
diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MultiblockRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MultiblockRecipes.kt
index d1eff86fa..501c13621 100644
--- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MultiblockRecipes.kt
+++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MultiblockRecipes.kt
@@ -120,12 +120,14 @@ fun addMultiblockRecipes(consumer: RecipeOutput) {
 		.row(MItemTags.IRON_PLATES, Tags.Items.INGOTS_IRON, MItemTags.IRON_PLATES)
 		.rowAC(Tags.Items.INGOTS_IRON, Tags.Items.INGOTS_IRON)
 		.row(MItemTags.IRON_PLATES, Tags.Items.INGOTS_IRON, MItemTags.IRON_PLATES)
+		.unlockedBy(MItemTags.IRON_PLATES)
 		.build(consumer)
 
 	MatteryRecipe(MItems.HEAVY_MODULAR_FRAME, count = 2, category = machinesCategory)
-		.rowB(MItems.REINFORCED_IRON_PLATE)
+		.row(MItems.WITHERED_STEEL, MItems.REINFORCED_IRON_PLATE, MItems.WITHERED_STEEL,)
 		.row(MItems.REINFORCED_IRON_PLATE, MItems.MODULAR_FRAME, MItems.REINFORCED_IRON_PLATE)
-		.rowB(MItems.REINFORCED_IRON_PLATE)
+		.row(MItems.WITHERED_STEEL, MItems.REINFORCED_IRON_PLATE, MItems.WITHERED_STEEL,)
+		.unlockedBy(MItems.MODULAR_FRAME)
 		.build(consumer)
 
 	// blackhole generator
diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/ToolsRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/ToolsRecipes.kt
index 2d2749e32..78c63bd92 100644
--- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/ToolsRecipes.kt
+++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/ToolsRecipes.kt
@@ -58,4 +58,11 @@ fun addToolsRecipes(consumer: RecipeOutput) {
 		.rowB(Tags.Items.RODS_WOODEN)
 		.unlockedBy(MItemTags.TRITANIUM_INGOTS)
 		.build(consumer)
+
+	MatteryRecipe(MItems.WITHERED_STEEL_SWORD, category = RecipeCategory.COMBAT)
+		.rowB(MItems.WITHERED_STEEL)
+		.rowB(MItems.WITHERED_STEEL)
+		.rowB(Tags.Items.RODS_WOODEN)
+		.unlockedBy(MItems.WITHERED_STEEL)
+		.build(consumer)
 }
diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/WitheredSteelSwordItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/WitheredSteelSwordItem.kt
new file mode 100644
index 000000000..4c78415e1
--- /dev/null
+++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/WitheredSteelSwordItem.kt
@@ -0,0 +1,53 @@
+package ru.dbotthepony.mc.otm.item.weapon
+
+import net.minecraft.world.effect.MobEffectInstance
+import net.minecraft.world.effect.MobEffects
+import net.minecraft.world.entity.EquipmentSlotGroup
+import net.minecraft.world.entity.LivingEntity
+import net.minecraft.world.entity.ai.attributes.AttributeModifier
+import net.minecraft.world.entity.ai.attributes.Attributes
+import net.minecraft.world.item.Item
+import net.minecraft.world.item.ItemStack
+import net.minecraft.world.item.SwordItem
+import net.minecraft.world.item.Tiers
+import net.minecraft.world.item.component.ItemAttributeModifiers
+import ru.dbotthepony.mc.otm.registry.game.MItems
+
+class WitheredSteelSwordItem(properties: Item.Properties) : SwordItem(Tiers.IRON, properties){
+	private val attributes: ItemAttributeModifiers
+
+	init {
+		var builder = ItemAttributeModifiers.builder()
+		builder.add(Attributes.ATTACK_DAMAGE, AttributeModifier(BASE_ATTACK_DAMAGE_ID, 4.5, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND)
+		builder.add(Attributes.ATTACK_SPEED, AttributeModifier(BASE_ATTACK_SPEED_ID, -2.4, AttributeModifier.Operation.ADD_VALUE), EquipmentSlotGroup.MAINHAND)
+
+		attributes = builder.build()
+	}
+
+	override fun getMaxDamage(stack: ItemStack): Int {
+		return 420
+	}
+
+	override fun isEnchantable(p_41456_: ItemStack): Boolean {
+		return p_41456_.count == 1
+	}
+
+	override fun getEnchantmentValue(stack: ItemStack): Int {
+		return 10
+	}
+
+	override fun isValidRepairItem(stack: ItemStack, ingredient: ItemStack): Boolean {
+		return ingredient.`is`(MItems.WITHERED_STEEL)
+	}
+
+	override fun hurtEnemy(stack: ItemStack, target: LivingEntity, attacker: LivingEntity): Boolean {
+		target.addEffect(MobEffectInstance(MobEffects.WITHER, 100, 0)) // 5s Wither II
+		return super.hurtEnemy(stack, target, attacker)
+	}
+
+	override fun getDefaultAttributeModifiers(stack: ItemStack): ItemAttributeModifiers {
+		return attributes
+	}
+
+
+}
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 c873ba1a5..c803ef655 100644
--- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt
+++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt
@@ -115,6 +115,9 @@ object MNames {
 	const val VENT = "vent"
 	const val VENT_ALTERNATIVE = "vent_alternative"
 
+	const val TRITANIUM_BARS = "tritanium_bars"
+	const val METAL_RAILING = "metal_railing"
+
 	// items
 	const val GRAVITATIONAL_DISRUPTOR = "gravitational_disruptor"
 	const val MATTER_DUST = "matter_dust"
@@ -191,6 +194,8 @@ object MNames {
 
 	const val CHEST_UPGRADER = "chest_upgrader"
 
+	const val WITHERED_STEEL_SWORD = "withered_steel_sword"
+
 	// eg
 	const val BREAD_MONSTER_SPAWN_EGG = "bead_monster_spawn_egg"
 
@@ -199,8 +204,8 @@ object MNames {
 	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 METAL_RAILING = "metal_railing"
+
+	const val WITHERED_STEEL = "withered_steel"
 
 	const val MATTER_IO_PORT = "matter_io_port"
 
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 0b762632e..5b4d243b5 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
@@ -236,11 +236,15 @@ private fun addMainCreativeTabItems(consumer: CreativeModeTab.Output) {
 		accept(MItems.DILITHIUM_CRYSTAL)
 		accept(MItems.DILITHIUM_CRYSTAL_BLOCK)
 
+		accept(MItems.WITHERED_STEEL)
+
 		accept(MItems.TRITANIUM_TOOLS)
 		accept(MItems.TRITANIUM_SHIELD)
 		accept(MItems.SIMPLE_TRITANIUM_ARMOR)
 		accept(MItems.TRITANIUM_ARMOR)
 
+		accept(MItems.WITHERED_STEEL_SWORD)
+
 		energized(MItems.ENERGY_SWORD)
 
 		accept(MItems.REDSTONE_INTERACTOR)
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 8dc77c623..89194c834 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
@@ -75,6 +75,7 @@ import ru.dbotthepony.mc.otm.item.tool.ExplosiveHammerItem
 import ru.dbotthepony.mc.otm.item.tool.MatteryAxeItem
 import ru.dbotthepony.mc.otm.item.tool.RedstoneInteractorItem
 import ru.dbotthepony.mc.otm.item.weapon.EnergySwordItem
+import ru.dbotthepony.mc.otm.item.weapon.WitheredSteelSwordItem
 import ru.dbotthepony.mc.otm.registry.MDeferredRegister
 import ru.dbotthepony.mc.otm.registry.MItemTags
 import ru.dbotthepony.mc.otm.registry.MNames
@@ -303,6 +304,8 @@ object MItems {
 	val TRITANIUM_BARS: BlockItem by registry.register(MNames.TRITANIUM_BARS) { BlockItem(MBlocks.TRITANIUM_BARS, DEFAULT_PROPERTIES) }
 	val METAL_RAILING: BlockItem by registry.register(MNames.METAL_RAILING) { BlockItem(MBlocks.METAL_RAILING, DEFAULT_PROPERTIES) }
 
+	val WITHERED_STEEL: Item by registry.register(MNames.WITHERED_STEEL) { Item(DEFAULT_PROPERTIES) }
+
 	val DILITHIUM_CRYSTAL by registry.register("dilithium_crystal") { MatteryItem(DEFAULT_PROPERTIES) }
 	val DILITHIUM_ORE by registry.register("dilithium_ore") { BlockItem(MBlocks.DILITHIUM_ORE, DEFAULT_PROPERTIES) }
 	val DEEPSLATE_DILITHIUM_ORE by registry.register("deepslate_dilithium_ore") { BlockItem(MBlocks.DEEPSLATE_DILITHIUM_ORE, DEFAULT_PROPERTIES) }
@@ -405,6 +408,8 @@ object MItems {
 
 	val ENERGY_SWORD: Item by registry.register(MNames.ENERGY_SWORD) { EnergySwordItem() }
 
+	val WITHERED_STEEL_SWORD: Item by registry.register(MNames.WITHERED_STEEL_SWORD) { WitheredSteelSwordItem(Item.Properties().durability(420)) }
+
 	val BLACK_HOLE_SCANNER: Item by registry.register(MNames.BLACK_HOLE_SCANNER) { MatteryItem(DEFAULT_PROPERTIES).addSimpleDescription().addSimpleDescription("2") }
 
 	val GRAVITATION_FIELD_LIMITER: Item by registry.register(MNames.GRAVITATION_FIELD_LIMITER) { Item(DEFAULT_PROPERTIES) }
diff --git a/src/main/resources/assets/overdrive_that_matters/models/block/frame_block.json b/src/main/resources/assets/overdrive_that_matters/models/block/frame_block.json
index 5aea3aa89..46650d35f 100644
--- a/src/main/resources/assets/overdrive_that_matters/models/block/frame_block.json
+++ b/src/main/resources/assets/overdrive_that_matters/models/block/frame_block.json
@@ -17,8 +17,8 @@
 			}
 		},
 		{
-			"from": [15.99995, 15.99995, 15.99995],
-			"to": [0.00005, 0.00005, 0.00005],
+			"from": [15.9999, 15.9999, 15.9999],
+			"to": [0.0001, 0.0001, 0.0001],
 			"rotation": {"angle": 0, "axis": "y", "origin": [16, 16, 16]},
 			"faces": {
 				"north": {"uv": [0, 0, 16, 16], "texture": "#texture", "cullface": "south"},
diff --git a/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword.json b/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword.json
new file mode 100644
index 000000000..3d8815653
--- /dev/null
+++ b/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword.json
@@ -0,0 +1,19 @@
+{
+	"loader": "neoforge:separate_transforms",
+	"gui_light": "front",
+	"base":
+	{
+		"parent": "overdrive_that_matters:item/withered_steel_sword_handheld"
+	},
+	"perspectives": {
+		"gui": {
+			"parent": "overdrive_that_matters:item/withered_steel_sword_inventory"
+		},
+		"fixed": {
+			"parent": "overdrive_that_matters:item/withered_steel_sword_inventory"
+		},
+		"ground": {
+			"parent": "overdrive_that_matters:item/withered_steel_sword_inventory"
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_handheld.json b/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_handheld.json
new file mode 100644
index 000000000..75344b0cb
--- /dev/null
+++ b/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_handheld.json
@@ -0,0 +1,29 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "minecraft:item/handheld",
+	"textures": {
+		"layer0": "overdrive_that_matters:item/withered_steel_sword_handheld"
+	},
+	"display": {
+		"thirdperson_righthand": {
+			"rotation": [0, -90, 55],
+			"translation": [0, 4, 0.5],
+			"scale": [0.85, 0.85, 0.85]
+		},
+		"thirdperson_lefthand": {
+			"rotation": [0, 90, -55],
+			"translation": [0, 4, 0.5],
+			"scale": [0.85, 0.85, 0.85]
+		},
+		"firstperson_righthand": {
+			"rotation": [0, -90, 25],
+			"translation": [1.13, 3.2, 1.13],
+			"scale": [0.68, 0.68, 0.68]
+		},
+		"firstperson_lefthand": {
+			"rotation": [0, 90, -25],
+			"translation": [1.13, 3.2, 1.13],
+			"scale": [0.68, 0.68, 0.68]
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_inventory.json b/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_inventory.json
new file mode 100644
index 000000000..1749d2995
--- /dev/null
+++ b/src/main/resources/assets/overdrive_that_matters/models/item/withered_steel_sword_inventory.json
@@ -0,0 +1,7 @@
+{
+	"credit": "Made with Blockbench",
+	"parent": "minecraft:item/generated",
+	"textures": {
+		"layer0": "overdrive_that_matters:item/withered_steel_sword"
+	}
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/heavy_modular_frame.png b/src/main/resources/assets/overdrive_that_matters/textures/block/heavy_modular_frame.png
index 1f5295b471c74a49ab9512e26d8df88bcf8b774f..d0657c812fd2d56e15b82ab96cf4c592ce72d13d 100644
GIT binary patch
delta 33
pcmaFO{F-@!kC>sowS}jPTV#N?wziy{90LQx+n(=RHzsv50syc13d;Zh

delta 33
ocmaFO{F-@!kC>;qS+t9DvX`f}wziy{90LP`riAVKjY*x10H&@90ssI2

diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/component/roflite_alloy_ingot.png b/src/main/resources/assets/overdrive_that_matters/textures/item/resources/roflite_alloy_ingot.png
similarity index 100%
rename from src/main/resources/assets/overdrive_that_matters/textures/item/component/roflite_alloy_ingot.png
rename to src/main/resources/assets/overdrive_that_matters/textures/item/resources/roflite_alloy_ingot.png
diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/resources/withered_steel.png b/src/main/resources/assets/overdrive_that_matters/textures/item/resources/withered_steel.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9572dd57e546fad712fbf4fcfc6976ca544f6ef
GIT binary patch
literal 504
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC
z{oH>NS%G}%0G|+7AxUvvV;xxyRYQAgx5xksPnU$MTy<l8puFAwnKOYDXGxG>@P8;^
z2==cK0tps)L>4nJ@a+d-Mhn(p6`-I*iEBhjaDG}zd16s2LqK9?UWuNcYlwoWo}r%6
z?>)@hfNHj-MtG)qdTKFn06DA-QjDw&j6jwb5KBYZAfIS3GK0mLfNVoXCa}+<fb7h6
z7O;30kPQO8WsD3jfF6d?XqGYnr6#a5umDvW7#SNdE`XQ{vXONG#H1-eHV7~Q&1C|s
z46?KUvY@&Q4GciCo&0y5>)7@P1DV;LE{-7@!Lj|^d<PUboFfB2{8PV|{3c&1Q(j`#
z+V>l!bJ8n)Jwo*rPR4rk79{srDmJ`2`^ncwPJ@G0HCc+Yb5ouVhp3?OYeNNF|Ksy?
zCfM<Lx6jFGWDp9M-0>o0H=9c3zAK*hpR-@P#rRE!bxKs)`_&*Pc)I$ztaD0e0s!#W
Bbu0h?

literal 0
HcmV?d00001

diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/withered_steel_sword.png b/src/main/resources/assets/overdrive_that_matters/textures/item/withered_steel_sword.png
new file mode 100644
index 0000000000000000000000000000000000000000..781a545513ce139d354b8530683f06b82437cdd8
GIT binary patch
literal 483
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC
z{oH>NS%G}f0G|+7bz}X6s$5wORSQoSx5xk?NpYae_Sr(ZK#IL2$S?Rm7%)hAGrIwW
zI14-?iy0XB_Jc5^1#7ShP*9@8HKHUqKdq!Zu_%=xATcwqM9<GPM8Q<gP|xW19_DR8
zHQQ1nJkvZqwHP>n999M?Mpgz!Aj=DgrJ-z)4>TB=!QxCnwjm=E*hf)7c4j*ZSUd~J
z27%r(MurzakHTm)OBsMt6WAG8fGQ1)j13qUKuiVM$hrVx(i9*Y1ek#4GJ#bFSy}*D
zP+f)w1|Zo^{=3d~Y<q-(%s5XM#}JKR-=2$NE{YsXf>HnfPZrnRUHK}JP2{J~L2ZF$
zf;roMO8FktmYDR@OrR-D_t(#2(f?W>h40+2>^`#T_D_!4hgD~^R8*LIoMeB-HYdt-
jmd)K~qQY}O{?j)4A9jJI&`b50CCFA!S3j3^P6<r_Sa@-N

literal 0
HcmV?d00001

diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/withered_steel_sword_handheld.png b/src/main/resources/assets/overdrive_that_matters/textures/item/withered_steel_sword_handheld.png
new file mode 100644
index 0000000000000000000000000000000000000000..acd6f9833f981b695c62642f23d3d62c16dccfb8
GIT binary patch
literal 494
zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQajKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij?1AIbU)s6KNs&ZvDR4qJR+#&;nB*lR;+h+^u0x9;AAiv=MV89^d&Flsg
z;w<opEM{Qf+YiEw7OcT4KtYKT*NBqf{Irtt#G+J&fW*wa5<NfH5Cu~`Lp`J4dziNY
z)oe?R@J#dc)MDTOa#$Ip7+Dz@fh;c|mWHxHKG0xf28%NR*@lcv3<5wp3Wzh?S-|31
zKsE^UmN7EC0D2Tgqgl!Tl$yZKzyefhU}S8-xBy}*$VS!$5R;|=*&x6KG?xjiGRV>b
z$b#xJG%x_kcJkkKu4CIH3}j|{x;Tbt1jn8Y<U63i!F(ZV&UgDyS~*-M51%h(2s_=@
zCo!qbDARTN!6u2cO_!z|R6Bh(nbWX-_le89XH@lFxbT*<*rcV_)_v`%{P*sen<`u+
wCc92Hv1Xt8*F(23NMqm0rc}d4)w0*C7=@MCi_{+UOawW=)78&qol`;+0IJV-oB#j-

literal 0
HcmV?d00001

diff --git a/src/main/resources/data/overdrive_that_matters/weapon_attributes/withered_steel_sword.json b/src/main/resources/data/overdrive_that_matters/weapon_attributes/withered_steel_sword.json
new file mode 100644
index 000000000..1271e3f2e
--- /dev/null
+++ b/src/main/resources/data/overdrive_that_matters/weapon_attributes/withered_steel_sword.json
@@ -0,0 +1,6 @@
+{
+  "parent": "bettercombat:sword",
+  "attributes": {
+    "attack_range": 2
+  }
+}
\ No newline at end of file