diff --git a/resources/assets/tinker/textures/items/arrow/_arrow_head.png b/resources/assets/tinker/textures/items/arrow/_arrow_head.png new file mode 100644 index 00000000000..613ec83dc9c Binary files /dev/null and b/resources/assets/tinker/textures/items/arrow/_arrow_head.png differ diff --git a/resources/assets/tinker/textures/items/arrow/_arrow_shaft.png b/resources/assets/tinker/textures/items/arrow/_arrow_shaft.png new file mode 100644 index 00000000000..1d2ba201b3e Binary files /dev/null and b/resources/assets/tinker/textures/items/arrow/_arrow_shaft.png differ diff --git a/resources/assets/tinker/textures/items/axe/_axe_handle.png b/resources/assets/tinker/textures/items/axe/_axe_handle.png new file mode 100644 index 00000000000..d7d314e2980 Binary files /dev/null and b/resources/assets/tinker/textures/items/axe/_axe_handle.png differ diff --git a/resources/assets/tinker/textures/items/axe/_axe_head.png b/resources/assets/tinker/textures/items/axe/_axe_head.png new file mode 100644 index 00000000000..aa7c3dd5d32 Binary files /dev/null and b/resources/assets/tinker/textures/items/axe/_axe_head.png differ diff --git a/resources/assets/tinker/textures/items/axe/_axe_head_broken.png b/resources/assets/tinker/textures/items/axe/_axe_head_broken.png new file mode 100644 index 00000000000..22faafcfdd8 Binary files /dev/null and b/resources/assets/tinker/textures/items/axe/_axe_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_back.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_back.png new file mode 100644 index 00000000000..2304ee1e83f Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_back.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_backhead.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_backhead.png new file mode 100644 index 00000000000..85cae0214b5 Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_backhead.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_binding.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_binding.png new file mode 100644 index 00000000000..2304ee1e83f Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_binding.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_front.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_front.png new file mode 100644 index 00000000000..48e2d91834d Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_front.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_fronthead.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_fronthead.png new file mode 100644 index 00000000000..48e2d91834d Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_fronthead.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_fronthead_broken.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_fronthead_broken.png new file mode 100644 index 00000000000..bab95c751d2 Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_fronthead_broken.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_handle.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_handle.png new file mode 100644 index 00000000000..8415119a2cb Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_handle.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_head.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_head.png new file mode 100644 index 00000000000..85cae0214b5 Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_head.png differ diff --git a/resources/assets/tinker/textures/items/battleaxe/_battleaxe_head_broken.png b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_head_broken.png new file mode 100644 index 00000000000..bab95c751d2 Binary files /dev/null and b/resources/assets/tinker/textures/items/battleaxe/_battleaxe_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/battlesign/_battlesign_handle.png b/resources/assets/tinker/textures/items/battlesign/_battlesign_handle.png new file mode 100644 index 00000000000..66be974d662 Binary files /dev/null and b/resources/assets/tinker/textures/items/battlesign/_battlesign_handle.png differ diff --git a/resources/assets/tinker/textures/items/battlesign/_battlesign_head.png b/resources/assets/tinker/textures/items/battlesign/_battlesign_head.png new file mode 100644 index 00000000000..6a1ab182bfa Binary files /dev/null and b/resources/assets/tinker/textures/items/battlesign/_battlesign_head.png differ diff --git a/resources/assets/tinker/textures/items/battlesign/_battlesign_head_broken.png b/resources/assets/tinker/textures/items/battlesign/_battlesign_head_broken.png new file mode 100644 index 00000000000..c3eb377e738 Binary files /dev/null and b/resources/assets/tinker/textures/items/battlesign/_battlesign_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/broadsword/_sword_accessory.png b/resources/assets/tinker/textures/items/broadsword/_sword_accessory.png new file mode 100644 index 00000000000..e9bf394469b Binary files /dev/null and b/resources/assets/tinker/textures/items/broadsword/_sword_accessory.png differ diff --git a/resources/assets/tinker/textures/items/broadsword/_sword_blade.png b/resources/assets/tinker/textures/items/broadsword/_sword_blade.png new file mode 100644 index 00000000000..dad910684c0 Binary files /dev/null and b/resources/assets/tinker/textures/items/broadsword/_sword_blade.png differ diff --git a/resources/assets/tinker/textures/items/broadsword/_sword_blade_broken.png b/resources/assets/tinker/textures/items/broadsword/_sword_blade_broken.png new file mode 100644 index 00000000000..b3429f0dea7 Binary files /dev/null and b/resources/assets/tinker/textures/items/broadsword/_sword_blade_broken.png differ diff --git a/resources/assets/tinker/textures/items/broadsword/_sword_handle.png b/resources/assets/tinker/textures/items/broadsword/_sword_handle.png new file mode 100644 index 00000000000..8cad4385391 Binary files /dev/null and b/resources/assets/tinker/textures/items/broadsword/_sword_handle.png differ diff --git a/resources/assets/tinker/textures/items/broadsword/copper_sword_blade.png.bla b/resources/assets/tinker/textures/items/broadsword/copper_sword_blade.png.bla new file mode 100644 index 00000000000..e08d9769f14 Binary files /dev/null and b/resources/assets/tinker/textures/items/broadsword/copper_sword_blade.png.bla differ diff --git a/resources/assets/tinker/textures/items/chisel/_chisel_handle.png b/resources/assets/tinker/textures/items/chisel/_chisel_handle.png new file mode 100644 index 00000000000..526973b5a8a Binary files /dev/null and b/resources/assets/tinker/textures/items/chisel/_chisel_handle.png differ diff --git a/resources/assets/tinker/textures/items/chisel/_chisel_head.png b/resources/assets/tinker/textures/items/chisel/_chisel_head.png new file mode 100644 index 00000000000..927362d357e Binary files /dev/null and b/resources/assets/tinker/textures/items/chisel/_chisel_head.png differ diff --git a/resources/assets/tinker/textures/items/chisel/_chisel_head_broken.png b/resources/assets/tinker/textures/items/chisel/_chisel_head_broken.png new file mode 100644 index 00000000000..6f750ccafd7 Binary files /dev/null and b/resources/assets/tinker/textures/items/chisel/_chisel_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/cleaver/_cleaver_guard.png b/resources/assets/tinker/textures/items/cleaver/_cleaver_guard.png new file mode 100644 index 00000000000..768d83e2dfe Binary files /dev/null and b/resources/assets/tinker/textures/items/cleaver/_cleaver_guard.png differ diff --git a/resources/assets/tinker/textures/items/cleaver/_cleaver_handle.png b/resources/assets/tinker/textures/items/cleaver/_cleaver_handle.png new file mode 100644 index 00000000000..cc1622874fe Binary files /dev/null and b/resources/assets/tinker/textures/items/cleaver/_cleaver_handle.png differ diff --git a/resources/assets/tinker/textures/items/cleaver/_cleaver_head.png b/resources/assets/tinker/textures/items/cleaver/_cleaver_head.png new file mode 100644 index 00000000000..a1a0367e991 Binary files /dev/null and b/resources/assets/tinker/textures/items/cleaver/_cleaver_head.png differ diff --git a/resources/assets/tinker/textures/items/cleaver/_cleaver_head_broken.png b/resources/assets/tinker/textures/items/cleaver/_cleaver_head_broken.png new file mode 100644 index 00000000000..b0d40799745 Binary files /dev/null and b/resources/assets/tinker/textures/items/cleaver/_cleaver_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/cleaver/_cleaver_shield.png b/resources/assets/tinker/textures/items/cleaver/_cleaver_shield.png new file mode 100644 index 00000000000..0fc295f2dfb Binary files /dev/null and b/resources/assets/tinker/textures/items/cleaver/_cleaver_shield.png differ diff --git a/resources/assets/tinker/textures/items/cutlass/_cutlass_blade.png b/resources/assets/tinker/textures/items/cutlass/_cutlass_blade.png new file mode 100644 index 00000000000..94030526415 Binary files /dev/null and b/resources/assets/tinker/textures/items/cutlass/_cutlass_blade.png differ diff --git a/resources/assets/tinker/textures/items/cutlass/_cutlass_blade_broken.png b/resources/assets/tinker/textures/items/cutlass/_cutlass_blade_broken.png new file mode 100644 index 00000000000..8afa7e8fc70 Binary files /dev/null and b/resources/assets/tinker/textures/items/cutlass/_cutlass_blade_broken.png differ diff --git a/resources/assets/tinker/textures/items/cutlass/_cutlass_guard.png b/resources/assets/tinker/textures/items/cutlass/_cutlass_guard.png new file mode 100644 index 00000000000..15c93a07eb0 Binary files /dev/null and b/resources/assets/tinker/textures/items/cutlass/_cutlass_guard.png differ diff --git a/resources/assets/tinker/textures/items/cutlass/_cutlass_handle.png b/resources/assets/tinker/textures/items/cutlass/_cutlass_handle.png new file mode 100644 index 00000000000..fb570ff2813 Binary files /dev/null and b/resources/assets/tinker/textures/items/cutlass/_cutlass_handle.png differ diff --git a/resources/assets/tinker/textures/items/dagger/_dagger_accessory.png b/resources/assets/tinker/textures/items/dagger/_dagger_accessory.png new file mode 100644 index 00000000000..da41e7070bf Binary files /dev/null and b/resources/assets/tinker/textures/items/dagger/_dagger_accessory.png differ diff --git a/resources/assets/tinker/textures/items/dagger/_dagger_blade.png b/resources/assets/tinker/textures/items/dagger/_dagger_blade.png new file mode 100644 index 00000000000..e6393ec12be Binary files /dev/null and b/resources/assets/tinker/textures/items/dagger/_dagger_blade.png differ diff --git a/resources/assets/tinker/textures/items/dagger/_dagger_blade_broken.png b/resources/assets/tinker/textures/items/dagger/_dagger_blade_broken.png new file mode 100644 index 00000000000..539c51d1ff9 Binary files /dev/null and b/resources/assets/tinker/textures/items/dagger/_dagger_blade_broken.png differ diff --git a/resources/assets/tinker/textures/items/dagger/_dagger_handle.png b/resources/assets/tinker/textures/items/dagger/_dagger_handle.png new file mode 100644 index 00000000000..d3b8c00ba5d Binary files /dev/null and b/resources/assets/tinker/textures/items/dagger/_dagger_handle.png differ diff --git a/resources/assets/tinker/textures/items/excavator/_excavator_binding.png b/resources/assets/tinker/textures/items/excavator/_excavator_binding.png new file mode 100644 index 00000000000..0e57f31727c Binary files /dev/null and b/resources/assets/tinker/textures/items/excavator/_excavator_binding.png differ diff --git a/resources/assets/tinker/textures/items/excavator/_excavator_grip.png b/resources/assets/tinker/textures/items/excavator/_excavator_grip.png new file mode 100644 index 00000000000..e83ad8f8577 Binary files /dev/null and b/resources/assets/tinker/textures/items/excavator/_excavator_grip.png differ diff --git a/resources/assets/tinker/textures/items/excavator/_excavator_handle.png b/resources/assets/tinker/textures/items/excavator/_excavator_handle.png new file mode 100644 index 00000000000..029162fa318 Binary files /dev/null and b/resources/assets/tinker/textures/items/excavator/_excavator_handle.png differ diff --git a/resources/assets/tinker/textures/items/excavator/_excavator_head.png b/resources/assets/tinker/textures/items/excavator/_excavator_head.png new file mode 100644 index 00000000000..a381db2a752 Binary files /dev/null and b/resources/assets/tinker/textures/items/excavator/_excavator_head.png differ diff --git a/resources/assets/tinker/textures/items/excavator/_excavator_head_broken.png b/resources/assets/tinker/textures/items/excavator/_excavator_head_broken.png new file mode 100644 index 00000000000..d00c62b4e3a Binary files /dev/null and b/resources/assets/tinker/textures/items/excavator/_excavator_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/frypan/_frypan_handle.png b/resources/assets/tinker/textures/items/frypan/_frypan_handle.png new file mode 100644 index 00000000000..247e549758e Binary files /dev/null and b/resources/assets/tinker/textures/items/frypan/_frypan_handle.png differ diff --git a/resources/assets/tinker/textures/items/frypan/_frypan_head.png b/resources/assets/tinker/textures/items/frypan/_frypan_head.png new file mode 100644 index 00000000000..da951a9870b Binary files /dev/null and b/resources/assets/tinker/textures/items/frypan/_frypan_head.png differ diff --git a/resources/assets/tinker/textures/items/frypan/_frypan_head_broken.png b/resources/assets/tinker/textures/items/frypan/_frypan_head_broken.png new file mode 100644 index 00000000000..4b7ad58195a Binary files /dev/null and b/resources/assets/tinker/textures/items/frypan/_frypan_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/hammer/_hammer_back.png b/resources/assets/tinker/textures/items/hammer/_hammer_back.png new file mode 100644 index 00000000000..6a698cc5fb1 Binary files /dev/null and b/resources/assets/tinker/textures/items/hammer/_hammer_back.png differ diff --git a/resources/assets/tinker/textures/items/hammer/_hammer_front.png b/resources/assets/tinker/textures/items/hammer/_hammer_front.png new file mode 100644 index 00000000000..ce18cc1d64d Binary files /dev/null and b/resources/assets/tinker/textures/items/hammer/_hammer_front.png differ diff --git a/resources/assets/tinker/textures/items/hammer/_hammer_handle.png b/resources/assets/tinker/textures/items/hammer/_hammer_handle.png new file mode 100644 index 00000000000..50cea420ebb Binary files /dev/null and b/resources/assets/tinker/textures/items/hammer/_hammer_handle.png differ diff --git a/resources/assets/tinker/textures/items/hammer/_hammer_handle_broken.png b/resources/assets/tinker/textures/items/hammer/_hammer_handle_broken.png new file mode 100644 index 00000000000..7fa2fbc7f8b Binary files /dev/null and b/resources/assets/tinker/textures/items/hammer/_hammer_handle_broken.png differ diff --git a/resources/assets/tinker/textures/items/hammer/_hammer_head.png b/resources/assets/tinker/textures/items/hammer/_hammer_head.png new file mode 100644 index 00000000000..77bd20ee044 Binary files /dev/null and b/resources/assets/tinker/textures/items/hammer/_hammer_head.png differ diff --git a/resources/assets/tinker/textures/items/longsword/_longsword_accessory.png b/resources/assets/tinker/textures/items/longsword/_longsword_accessory.png new file mode 100644 index 00000000000..58fb4d198be Binary files /dev/null and b/resources/assets/tinker/textures/items/longsword/_longsword_accessory.png differ diff --git a/resources/assets/tinker/textures/items/longsword/_longsword_blade.png b/resources/assets/tinker/textures/items/longsword/_longsword_blade.png new file mode 100644 index 00000000000..6aea58a1088 Binary files /dev/null and b/resources/assets/tinker/textures/items/longsword/_longsword_blade.png differ diff --git a/resources/assets/tinker/textures/items/longsword/_longsword_blade_broken.png b/resources/assets/tinker/textures/items/longsword/_longsword_blade_broken.png new file mode 100644 index 00000000000..2840cf80be2 Binary files /dev/null and b/resources/assets/tinker/textures/items/longsword/_longsword_blade_broken.png differ diff --git a/resources/assets/tinker/textures/items/longsword/_longsword_handle.png b/resources/assets/tinker/textures/items/longsword/_longsword_handle.png new file mode 100644 index 00000000000..8cad4385391 Binary files /dev/null and b/resources/assets/tinker/textures/items/longsword/_longsword_handle.png differ diff --git a/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_binding.png b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_binding.png new file mode 100644 index 00000000000..a33bc2b68bb Binary files /dev/null and b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_binding.png differ diff --git a/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_handle.png b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_handle.png new file mode 100644 index 00000000000..23f2aa9a4d2 Binary files /dev/null and b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_handle.png differ diff --git a/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_head.png b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_head.png new file mode 100644 index 00000000000..fc0ec766da5 Binary files /dev/null and b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_head.png differ diff --git a/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_head_broken.png b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_head_broken.png new file mode 100644 index 00000000000..98afdf70559 Binary files /dev/null and b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_shield.png b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_shield.png new file mode 100644 index 00000000000..205ec30fabf Binary files /dev/null and b/resources/assets/tinker/textures/items/lumberaxe/_lumberaxe_shield.png differ diff --git a/resources/assets/tinker/textures/items/mattock/_mattock_back.png b/resources/assets/tinker/textures/items/mattock/_mattock_back.png new file mode 100644 index 00000000000..0662b3ebca6 Binary files /dev/null and b/resources/assets/tinker/textures/items/mattock/_mattock_back.png differ diff --git a/resources/assets/tinker/textures/items/mattock/_mattock_handle.png b/resources/assets/tinker/textures/items/mattock/_mattock_handle.png new file mode 100644 index 00000000000..98010584557 Binary files /dev/null and b/resources/assets/tinker/textures/items/mattock/_mattock_handle.png differ diff --git a/resources/assets/tinker/textures/items/mattock/_mattock_head.png b/resources/assets/tinker/textures/items/mattock/_mattock_head.png new file mode 100644 index 00000000000..2f4b6427e5f Binary files /dev/null and b/resources/assets/tinker/textures/items/mattock/_mattock_head.png differ diff --git a/resources/assets/tinker/textures/items/mattock/_mattock_head_broken.png b/resources/assets/tinker/textures/items/mattock/_mattock_head_broken.png new file mode 100644 index 00000000000..4558a2f9253 Binary files /dev/null and b/resources/assets/tinker/textures/items/mattock/_mattock_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/parts/_arrowhead.png b/resources/assets/tinker/textures/items/parts/_arrowhead.png new file mode 100644 index 00000000000..3e475f25a27 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_arrowhead.png differ diff --git a/resources/assets/tinker/textures/items/parts/_axe_head.png b/resources/assets/tinker/textures/items/parts/_axe_head.png new file mode 100644 index 00000000000..dac58ef9bfd Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_axe_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_battlesign_head.png b/resources/assets/tinker/textures/items/parts/_battlesign_head.png new file mode 100644 index 00000000000..5a701f9ece7 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_battlesign_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_binding.png b/resources/assets/tinker/textures/items/parts/_binding.png new file mode 100644 index 00000000000..7037f530ffb Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_binding.png differ diff --git a/resources/assets/tinker/textures/items/parts/_chisel_head.png b/resources/assets/tinker/textures/items/parts/_chisel_head.png new file mode 100644 index 00000000000..c9923311569 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_chisel_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_chunk.png b/resources/assets/tinker/textures/items/parts/_chunk.png new file mode 100644 index 00000000000..127fd678344 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_chunk.png differ diff --git a/resources/assets/tinker/textures/items/parts/_crossbar.png b/resources/assets/tinker/textures/items/parts/_crossbar.png new file mode 100644 index 00000000000..37dcf856658 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_crossbar.png differ diff --git a/resources/assets/tinker/textures/items/parts/_excavator_head.png b/resources/assets/tinker/textures/items/parts/_excavator_head.png new file mode 100644 index 00000000000..437b151f3bc Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_excavator_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_frypan_head.png b/resources/assets/tinker/textures/items/parts/_frypan_head.png new file mode 100644 index 00000000000..acc96aaace1 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_frypan_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_full_guard.png b/resources/assets/tinker/textures/items/parts/_full_guard.png new file mode 100644 index 00000000000..b6aba6e18bb Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_full_guard.png differ diff --git a/resources/assets/tinker/textures/items/parts/_hammer_head.png b/resources/assets/tinker/textures/items/parts/_hammer_head.png new file mode 100644 index 00000000000..383ccc9e452 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_hammer_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_knife_blade.png b/resources/assets/tinker/textures/items/parts/_knife_blade.png new file mode 100644 index 00000000000..c50b4423008 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_knife_blade.png differ diff --git a/resources/assets/tinker/textures/items/parts/_large_guard.png b/resources/assets/tinker/textures/items/parts/_large_guard.png new file mode 100644 index 00000000000..ea148067f01 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_large_guard.png differ diff --git a/resources/assets/tinker/textures/items/parts/_large_sword_blade.png b/resources/assets/tinker/textures/items/parts/_large_sword_blade.png new file mode 100644 index 00000000000..2891cd18b4c Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_large_sword_blade.png differ diff --git a/resources/assets/tinker/textures/items/parts/_largeplate.png b/resources/assets/tinker/textures/items/parts/_largeplate.png new file mode 100644 index 00000000000..5b2a1a78337 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_largeplate.png differ diff --git a/resources/assets/tinker/textures/items/parts/_lumberaxe_head.png b/resources/assets/tinker/textures/items/parts/_lumberaxe_head.png new file mode 100644 index 00000000000..e1a0574381a Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_lumberaxe_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_medium_guard.png b/resources/assets/tinker/textures/items/parts/_medium_guard.png new file mode 100644 index 00000000000..1a1d94163f8 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_medium_guard.png differ diff --git a/resources/assets/tinker/textures/items/parts/_pickaxe_head.png b/resources/assets/tinker/textures/items/parts/_pickaxe_head.png new file mode 100644 index 00000000000..32b2946bcc6 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_pickaxe_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_rod.png b/resources/assets/tinker/textures/items/parts/_rod.png new file mode 100644 index 00000000000..bb6136748c8 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_rod.png differ diff --git a/resources/assets/tinker/textures/items/parts/_scythe_head.png b/resources/assets/tinker/textures/items/parts/_scythe_head.png new file mode 100644 index 00000000000..d700e1ee187 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_scythe_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_shovel_head.png b/resources/assets/tinker/textures/items/parts/_shovel_head.png new file mode 100644 index 00000000000..1d6687ede51 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_shovel_head.png differ diff --git a/resources/assets/tinker/textures/items/parts/_sword_blade.png b/resources/assets/tinker/textures/items/parts/_sword_blade.png new file mode 100644 index 00000000000..ab512fb97cb Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_sword_blade.png differ diff --git a/resources/assets/tinker/textures/items/parts/_toughbind.png b/resources/assets/tinker/textures/items/parts/_toughbind.png new file mode 100644 index 00000000000..6584e410749 Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_toughbind.png differ diff --git a/resources/assets/tinker/textures/items/parts/_toughrod.png b/resources/assets/tinker/textures/items/parts/_toughrod.png new file mode 100644 index 00000000000..b26e033078a Binary files /dev/null and b/resources/assets/tinker/textures/items/parts/_toughrod.png differ diff --git a/resources/assets/tinker/textures/items/pickaxe/_pickaxe_accessory.png b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_accessory.png new file mode 100644 index 00000000000..98fc5e33dd8 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_accessory.png differ diff --git a/resources/assets/tinker/textures/items/pickaxe/_pickaxe_handle.png b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_handle.png new file mode 100644 index 00000000000..9f15c92e6f5 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_handle.png differ diff --git a/resources/assets/tinker/textures/items/pickaxe/_pickaxe_head.png b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_head.png new file mode 100644 index 00000000000..e3ca4922450 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_head.png differ diff --git a/resources/assets/tinker/textures/items/pickaxe/_pickaxe_head_broken.png b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_head_broken.png new file mode 100644 index 00000000000..687a362534f Binary files /dev/null and b/resources/assets/tinker/textures/items/pickaxe/_pickaxe_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/pickmattock/_pickmattock_accessory.png b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_accessory.png new file mode 100644 index 00000000000..98fc5e33dd8 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_accessory.png differ diff --git a/resources/assets/tinker/textures/items/pickmattock/_pickmattock_back.png b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_back.png new file mode 100644 index 00000000000..0662b3ebca6 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_back.png differ diff --git a/resources/assets/tinker/textures/items/pickmattock/_pickmattock_handle.png b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_handle.png new file mode 100644 index 00000000000..98010584557 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_handle.png differ diff --git a/resources/assets/tinker/textures/items/pickmattock/_pickmattock_head.png b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_head.png new file mode 100644 index 00000000000..eb16562f262 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_head.png differ diff --git a/resources/assets/tinker/textures/items/pickmattock/_pickmattock_head_broken.png b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_head_broken.png new file mode 100644 index 00000000000..d49edbd19d2 Binary files /dev/null and b/resources/assets/tinker/textures/items/pickmattock/_pickmattock_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/rapier/_rapier_accessory.png b/resources/assets/tinker/textures/items/rapier/_rapier_accessory.png new file mode 100644 index 00000000000..9138fe342fe Binary files /dev/null and b/resources/assets/tinker/textures/items/rapier/_rapier_accessory.png differ diff --git a/resources/assets/tinker/textures/items/rapier/_rapier_blade.png b/resources/assets/tinker/textures/items/rapier/_rapier_blade.png new file mode 100644 index 00000000000..25950a5e5ec Binary files /dev/null and b/resources/assets/tinker/textures/items/rapier/_rapier_blade.png differ diff --git a/resources/assets/tinker/textures/items/rapier/_rapier_blade_broken.png b/resources/assets/tinker/textures/items/rapier/_rapier_blade_broken.png new file mode 100644 index 00000000000..46a37c6d2bf Binary files /dev/null and b/resources/assets/tinker/textures/items/rapier/_rapier_blade_broken.png differ diff --git a/resources/assets/tinker/textures/items/rapier/_rapier_handle.png b/resources/assets/tinker/textures/items/rapier/_rapier_handle.png new file mode 100644 index 00000000000..d078064dbbd Binary files /dev/null and b/resources/assets/tinker/textures/items/rapier/_rapier_handle.png differ diff --git a/resources/assets/tinker/textures/items/scythe/_scythe_accessory.png b/resources/assets/tinker/textures/items/scythe/_scythe_accessory.png new file mode 100644 index 00000000000..ae901d378a4 Binary files /dev/null and b/resources/assets/tinker/textures/items/scythe/_scythe_accessory.png differ diff --git a/resources/assets/tinker/textures/items/scythe/_scythe_binding.png b/resources/assets/tinker/textures/items/scythe/_scythe_binding.png new file mode 100644 index 00000000000..88bc26bb6cd Binary files /dev/null and b/resources/assets/tinker/textures/items/scythe/_scythe_binding.png differ diff --git a/resources/assets/tinker/textures/items/scythe/_scythe_handle.png b/resources/assets/tinker/textures/items/scythe/_scythe_handle.png new file mode 100644 index 00000000000..dec3feb1c2e Binary files /dev/null and b/resources/assets/tinker/textures/items/scythe/_scythe_handle.png differ diff --git a/resources/assets/tinker/textures/items/scythe/_scythe_head.png b/resources/assets/tinker/textures/items/scythe/_scythe_head.png new file mode 100644 index 00000000000..166b08c01e4 Binary files /dev/null and b/resources/assets/tinker/textures/items/scythe/_scythe_head.png differ diff --git a/resources/assets/tinker/textures/items/scythe/_scythe_head_broken.png b/resources/assets/tinker/textures/items/scythe/_scythe_head_broken.png new file mode 100644 index 00000000000..519fa0887b0 Binary files /dev/null and b/resources/assets/tinker/textures/items/scythe/_scythe_head_broken.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_bottom.png b/resources/assets/tinker/textures/items/shortbow/_bow_bottom.png new file mode 100644 index 00000000000..e10febd0ba2 Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_bottom.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_bottom_1.png b/resources/assets/tinker/textures/items/shortbow/_bow_bottom_1.png new file mode 100644 index 00000000000..e10febd0ba2 Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_bottom_1.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_bottom_2.png b/resources/assets/tinker/textures/items/shortbow/_bow_bottom_2.png new file mode 100644 index 00000000000..b01cd43b998 Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_bottom_2.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_bottom_3.png b/resources/assets/tinker/textures/items/shortbow/_bow_bottom_3.png new file mode 100644 index 00000000000..3d0832f59d4 Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_bottom_3.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_top.png b/resources/assets/tinker/textures/items/shortbow/_bow_top.png new file mode 100644 index 00000000000..6a77ec51ebf Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_top.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_top_1.png b/resources/assets/tinker/textures/items/shortbow/_bow_top_1.png new file mode 100644 index 00000000000..6a77ec51ebf Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_top_1.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_top_2.png b/resources/assets/tinker/textures/items/shortbow/_bow_top_2.png new file mode 100644 index 00000000000..dadb2abbce7 Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_top_2.png differ diff --git a/resources/assets/tinker/textures/items/shortbow/_bow_top_3.png b/resources/assets/tinker/textures/items/shortbow/_bow_top_3.png new file mode 100644 index 00000000000..e563ceefa3d Binary files /dev/null and b/resources/assets/tinker/textures/items/shortbow/_bow_top_3.png differ diff --git a/resources/assets/tinker/textures/items/shovel/_shovel_handle.png b/resources/assets/tinker/textures/items/shovel/_shovel_handle.png new file mode 100644 index 00000000000..39120542b2b Binary files /dev/null and b/resources/assets/tinker/textures/items/shovel/_shovel_handle.png differ diff --git a/resources/assets/tinker/textures/items/shovel/_shovel_head.png b/resources/assets/tinker/textures/items/shovel/_shovel_head.png new file mode 100644 index 00000000000..0de4f0aecb4 Binary files /dev/null and b/resources/assets/tinker/textures/items/shovel/_shovel_head.png differ diff --git a/resources/assets/tinker/textures/items/shovel/_shovel_head_broken.png b/resources/assets/tinker/textures/items/shovel/_shovel_head_broken.png new file mode 100644 index 00000000000..6853dfb3db0 Binary files /dev/null and b/resources/assets/tinker/textures/items/shovel/_shovel_head_broken.png differ diff --git a/src/main/java/tconstruct/library/tools/ToolCore.java b/src/main/java/tconstruct/library/tools/ToolCore.java index e8d6d77399f..100bb19526e 100644 --- a/src/main/java/tconstruct/library/tools/ToolCore.java +++ b/src/main/java/tconstruct/library/tools/ToolCore.java @@ -5,6 +5,7 @@ import cpw.mods.fml.relauncher.*; import java.util.*; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.*; @@ -13,9 +14,12 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.*; import net.minecraft.world.World; +import tconstruct.TConstruct; import tconstruct.library.*; import tconstruct.library.crafting.ToolBuilder; import tconstruct.library.modifier.*; +import tconstruct.library.util.TextureHelper; +import tconstruct.tools.TinkerTools; import tconstruct.tools.entity.FancyEntityItem; /** @@ -186,63 +190,31 @@ public void registerEffectPath (int index, String location) @Override public void registerIcons (IIconRegister iconRegister) { - headIcons.clear(); - brokenIcons.clear(); - handleIcons.clear(); - accessoryIcons.clear(); - extraIcons.clear(); - effectIcons.clear(); - Iterator iter = headStrings.entrySet().iterator(); - while (iter.hasNext()) - { - Map.Entry pairs = (Map.Entry) iter.next(); - headIcons.put((Integer) pairs.getKey(), iconRegister.registerIcon((String) pairs.getValue())); - } + addIcons(headStrings, headIcons, iconRegister, getIconSuffix(0)); + addIcons(brokenPartStrings, brokenIcons, iconRegister, getIconSuffix(1)); + addIcons(handleStrings, handleIcons, iconRegister, getIconSuffix(2)); + addIcons(accessoryStrings, accessoryIcons, iconRegister, getIconSuffix(3)); + addIcons(extraStrings, extraIcons, iconRegister, getIconSuffix(4)); - iter = brokenPartStrings.entrySet().iterator(); - while (iter.hasNext()) - { - Map.Entry pairs = (Map.Entry) iter.next(); - brokenIcons.put((Integer) pairs.getKey(), iconRegister.registerIcon((String) pairs.getValue())); - } - - iter = handleStrings.entrySet().iterator(); - while (iter.hasNext()) - { - Map.Entry pairs = (Map.Entry) iter.next(); - handleIcons.put((Integer) pairs.getKey(), iconRegister.registerIcon((String) pairs.getValue())); - } - - if (getPartAmount() > 2) - { - iter = accessoryStrings.entrySet().iterator(); - while (iter.hasNext()) - { - Map.Entry pairs = (Map.Entry) iter.next(); - accessoryIcons.put((Integer) pairs.getKey(), iconRegister.registerIcon((String) pairs.getValue())); - } - } + emptyIcon = iconRegister.registerIcon("tinker:blankface"); + } - if (getPartAmount() > 3) + private void addIcons(HashMap textures, HashMap icons, IIconRegister iconRegister, String standard) + { + icons.clear(); + for(Map.Entry entry : textures.entrySet()) { - iter = extraStrings.entrySet().iterator(); - while (iter.hasNext()) - { - Map.Entry pairs = (Map.Entry) iter.next(); - extraIcons.put((Integer) pairs.getKey(), iconRegister.registerIcon((String) pairs.getValue())); - } + if(TextureHelper.itemTextureExists(entry.getValue())) + icons.put(entry.getKey(), iconRegister.registerIcon(entry.getValue())); } - iter = effectStrings.entrySet().iterator(); - while (iter.hasNext()) - { - Map.Entry pairs = (Map.Entry) iter.next(); - effectIcons.put((Integer) pairs.getKey(), iconRegister.registerIcon((String) pairs.getValue())); + if(standard != null && !standard.isEmpty()) { + standard = "tinker:" + getDefaultFolder() + "/" + standard; + icons.put(-1, iconRegister.registerIcon(standard)); } - - emptyIcon = iconRegister.registerIcon("tinker:blankface"); } + @Override @SideOnly(Side.CLIENT) public IIcon getIconFromDamage (int meta) @@ -261,30 +233,25 @@ public IIcon getIcon (ItemStack stack, int renderPass) tags = stack.getTagCompound().getCompoundTag("InfiTool"); if (renderPass < getPartAmount()) { - if (renderPass == 0) // Handle - { - return handleIcons.get(tags.getInteger("RenderHandle")); - } - - else if (renderPass == 1) // Head + // Handle + if (renderPass == 0) + return getCorrectIcon(handleIcons, tags.getInteger("RenderHandle")); + // Head + else if (renderPass == 1) { if (tags.getBoolean("Broken")) - return (brokenIcons.get(tags.getInteger("RenderHead"))); + return getCorrectIcon(brokenIcons, tags.getInteger("RenderHead")); else - return (headIcons.get(tags.getInteger("RenderHead"))); - } - - else if (renderPass == 2) // Accessory - { - return (accessoryIcons.get(tags.getInteger("RenderAccessory"))); - } - - else if (renderPass == 3) // Extra - { - return (extraIcons.get(tags.getInteger("RenderExtra"))); + return getCorrectIcon(headIcons, tags.getInteger("RenderHead")); } + // Accessory + else if (renderPass == 2) + return getCorrectIcon(accessoryIcons, tags.getInteger("RenderAccessory")); + // Extra + else if (renderPass == 3) + return getCorrectIcon(extraIcons, tags.getInteger("RenderExtra")); } - + // Effects else { if (renderPass == getPartAmount()) @@ -328,6 +295,15 @@ else if (renderPass == getPartAmount() + 5) return emptyIcon; } + protected IIcon getCorrectIcon(Map icons, int id) + { + if(icons.containsKey(id)) + return icons.get(id); + + // default icon + return icons.get(-1); + } + /* Tags and information about the tool */ @Override @SideOnly(Side.CLIENT) @@ -565,7 +541,7 @@ public Item getExtraItem () public Item getHandleItem () { - return TConstructRegistry.getItem("toolRod");// TContent.toolRod; + return TinkerTools.toolRod; } /* Updating */ @@ -664,7 +640,6 @@ public float getDamageModifier () @Override public int getColorFromItemStack(ItemStack stack, int renderPass) { - NBTTagCompound tags = stack.getTagCompound(); if (tags != null) @@ -672,30 +647,33 @@ public int getColorFromItemStack(ItemStack stack, int renderPass) { tags = stack.getTagCompound().getCompoundTag("InfiTool"); if (renderPass < getPartAmount()) { - if (renderPass == 0 && tags.hasKey("HandleColor")) // Handle + switch(renderPass) { - return tags.getInteger("HandleColor"); - } - - else if (renderPass == 1 && tags.hasKey("HeadColor")) // Head - { - return tags.getInteger("HeadColor"); - } - - else if (renderPass == 2 && tags.hasKey("AccessoryColor")) // Accessory - { - return tags.getInteger("AccessoryColor"); - } - - else if (renderPass == 3 && tags.hasKey("ExtraColor")) // Extra - { - return tags.getInteger("ExtraColor"); + case 0: return getCorrectColor(stack, renderPass, tags, "Handle", handleIcons); + case 1: return getCorrectColor(stack, renderPass, tags, "Head", headIcons); + case 2: return getCorrectColor(stack, renderPass, tags, "Accessory", accessoryIcons); + case 3: return getCorrectColor(stack, renderPass, tags, "Extra", extraIcons); } } } return super.getColorFromItemStack(stack, renderPass); } + private int getCorrectColor(ItemStack stack, int renderPass, NBTTagCompound tags, String key, Map map) + { + // custom coloring + if(tags.hasKey(key + "Color")) + return tags.getInteger(key + "Color"); + + // custom texture? + Integer matId = tags.getInteger("Render" + key); + if(map.containsKey(matId)) + return super.getColorFromItemStack(stack, renderPass); + + // color default texture with material color + return TConstructRegistry.getMaterial(matId).primaryColor(); + } + @Override public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player) { diff --git a/src/main/java/tconstruct/library/util/TextureHelper.java b/src/main/java/tconstruct/library/util/TextureHelper.java new file mode 100644 index 00000000000..6394ddfe2f7 --- /dev/null +++ b/src/main/java/tconstruct/library/util/TextureHelper.java @@ -0,0 +1,54 @@ +package tconstruct.library.util; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.util.ResourceLocation; + +// Stolen from CofHLib RegistryUtil +public final class TextureHelper { + private TextureHelper() {} + + @SideOnly(Side.CLIENT) + public static boolean textureExists(ResourceLocation texture) { + + try { + Minecraft.getMinecraft().getResourceManager().getAllResources(texture); + return true; + } catch (Throwable t) { // pokemon! + return false; + } + } + + @SideOnly(Side.CLIENT) + public static boolean textureExists(String texture) { + + return textureExists(new ResourceLocation(texture)); + } + + @SideOnly(Side.CLIENT) + public static boolean blockTextureExists(String texture) { + + int i = texture.indexOf(':'); + + if (i > 0) { + texture = texture.substring(0, i) + ":textures/blocks/" + texture.substring(i + 1, texture.length()); + } else { + texture = "textures/blocks/" + texture; + } + return textureExists(texture + ".png"); + } + + @SideOnly(Side.CLIENT) + public static boolean itemTextureExists(String texture) { + + int i = texture.indexOf(':'); + + if (i > 0) { + texture = texture.substring(0, i) + ":textures/items/" + texture.substring(i + 1, texture.length()); + } else { + texture = "textures/items/" + texture; + } + return textureExists(texture + ".png"); + } +}