From 8594ba2cb56a8856d7db4e9d9fb48588a398bcd4 Mon Sep 17 00:00:00 2001 From: "Craig (Jeryn)" Date: Wed, 25 Dec 2024 11:11:22 +0000 Subject: [PATCH] Various changes (#413) --- LICENSE.MD | 4 +- build.gradle | 2 +- changelog.md | 56 +- .../tardis/JsonToAnimationDefinition.java | 219 - .../java/dev/jeryn/frame/tardis/Frame.java | 197 + .../tardis_refined/TardisRefined.java | 11 +- .../tardis_refined/client/ModelRegistry.java | 130 +- .../tardis_refined/client/ScreenHandler.java | 1 + .../tardis_refined/client/TRParticles.java | 3 +- .../tardis_refined/client/TRShaders.java | 81 + .../client/TardisClientData.java | 4 +- .../client/TardisClientLogic.java | 4 +- .../console/ConsoleModelCollection.java | 8 +- .../console/CopperConsoleModel.java | 13 +- .../console/CoralConsoleModel.java | 14 +- .../console/CrystalConsoleModel.java | 10 +- .../console/FactoryConsoleModel.java | 16 +- .../console/InitiativeConsoleModel.java | 15 +- .../blockentity/console/MystConsoleModel.java | 4 +- .../blockentity/console/NukaConsoleModel.java | 7 +- .../console/RefurbishedConsoleModel.java | 6 +- .../console/ToyotaConsoleModel.java | 15 +- .../console/VictorianConsoleModel.java | 2485 ++------ .../door/interior/DualInteriorDoorModel.java | 12 +- .../interior/DualTexInteriorDoorModel.java | 12 +- .../door/interior/PagodaDoorModel.java | 115 - .../door/interior/ShellDoorModel.java | 2 +- .../interior/SingleInteriorDoorModel.java | 10 +- .../interior/SingleTexInteriorDoorModel.java | 10 +- .../model/blockentity/life/ArsEggModel.java | 11 +- .../model/blockentity/shell/ShellModel.java | 2 +- .../shell/ShellModelCollection.java | 10 +- .../shell/shells/MysticShellModel.java | 7 +- .../model/pallidium/BedrockModelUtil.java | 5 + .../model/pallidium/ModelLayerManager.java | 18 +- .../client/overlays/ExteriorViewOverlay.java | 40 +- .../{ => particle}/ParticleGallifrey.java | 2 +- .../console/GlobalConsoleRenderer.java | 10 +- .../shell/GlobalShellRenderer.java | 24 +- .../entity/ControlEntityRenderer.java | 10 +- .../renderer/vortex/RenderTargetHelper.java | 15 +- .../client/renderer/vortex/ShellRenderer.java | 3 +- .../screen/ponder/PonderListScreen.java | 6 - .../screens/DesktopSelectionScreen.java | 7 +- .../screen/screens/HumSelectionScreen.java | 11 +- .../screen/screens/ShellSelectionScreen.java | 2 +- .../client/sounds/LoopingSoundGeneric.java | 10 +- .../door/GlobalDoorBlockEntity.java | 10 +- .../tardis/TardisLevelOperator.java | 3 +- .../ManipulatorCraftingIngredient.java | 25 +- .../ManipulatorCraftingRecipeSerializer.java | 7 +- .../ManipulatorRecipes.java | 10 +- .../common/dimension/DimensionHandler.java | 19 +- .../common/network/NetworkManager.java | 3 +- .../network/messages/hums/C2SChangeHum.java | 4 +- .../network/messages/sync/S2CSyncHums.java | 4 +- .../common/{ => soundscape}/hum/HumEntry.java | 2 +- .../{ => soundscape}/hum/TardisHums.java | 12 +- .../tardis/TardisArchitectureHandler.java | 21 +- .../common/tardis/TardisDesktops.java | 9 +- .../tardis/manager/TardisInteriorManager.java | 4 +- .../common/util/CodecJsonReloadListener.java | 13 +- .../common/util/DatapackHelper.java | 15 +- .../MergeableCodecJsonReloadListener.java | 14 +- .../common/util/MiscHelper.java | 46 +- .../common/util/TRTeleporter.java | 23 +- .../compat/portals/ImmersivePortals.java | 8 +- .../tardis_refined/constants/ModMessages.java | 4 +- .../tardis_refined/mixin/VillagerMixin.java | 102 +- .../patterns/ConsolePatterns.java | 28 +- .../patterns/PatternReloadListener.java | 5 +- .../tardis_refined/patterns/ShellPattern.java | 8 +- .../patterns/ShellPatterns.java | 27 +- .../registry/DeferredRegistry.java | 4 +- .../registry/TRItemRegistry.java | 3 +- .../registry/TRSoundRegistry.java | 3 +- .../villager/FlyTardisAtPOI.java | 39 +- .../tardis_refined/villager/VillagerDuck.java | 8 + .../animated/console/victorian/flight.json | 5458 ----------------- .../animated/console/victorian/idle.json | 1093 ---- .../console/copper/flight.json | 0 .../console/copper/idle.json | 0 .../console/coral/flight.json | 0 .../console/coral/idle.json | 0 .../console/crystal/flight.json | 0 .../console/crystal/idle.json | 0 .../console/factory/crash.json | 0 .../console/factory/flight.json | 0 .../console/factory/idle.json | 0 .../console/factory/power_off.json | 0 .../console/factory/power_on.json | 0 .../console/initiative/flight.json | 0 .../console/initiative/idle.json | 0 .../console/nuka/flight.json | 0 .../console/refurbished/flight.json | 0 .../console/refurbished/idle.json | 0 .../console/toyota/flight.json | 0 .../console/toyota/idle.json | 0 .../frame/console/victorian/crash.json | 1 + .../frame/console/victorian/flight.json | 1 + .../frame/console/victorian/idle.json | 1 + .../frame/console/victorian/power_off.json | 1 + .../frame/console/victorian/power_on.json | 1 + .../living/ars_egg/crashing.json | 0 .../living/ars_egg/swinging.json | 0 .../{animated => frame}/shell/myst/idle.json | 0 .../shaders/core/glow_shader.fsh | 29 + .../shaders/core/glow_shader.json | 31 + .../shaders/core/glow_shader.vsh | 35 + .../tardis_refined/shaders/core/nivis.json | 79 + .../shaders/core/nivis_fragment.fsh | 41 + .../shaders/core/nivis_vertex.vsh | 25 + .../tardis/interior_hums/hum_copper.ogg | Bin 0 -> 1882247 bytes .../sounds/tardis/interior_hums/hum_coral.ogg | Bin 563666 -> 604813 bytes .../model_layers/console/crystal.json | 1 + .../model_layers/console/initiative.json | 1 + .../model_layers/console/myst.json | 1 + .../model_layers/console/nuka.json | 1485 +---- .../model_layers/console/refurbished.json | 1 + .../model_layers/console/victorian.json | 1 + .../model_layers/door/briefcase_door.json | 1 + .../model_layers/door/growth_door.json | 1 + .../model_layers/door/half_baked_door.json | 1 + .../model_layers/door/lift_door.json | 16 +- .../model_layers/door/pagoda_door.json | 133 + .../model_layers/door/root_shell_door.json | 1 + .../model_layers/door/vending_door.json | 12 +- .../model_layers/growth/root_plant_five.json | 1 + .../model_layers/growth/root_plant_four.json | 1 + .../model_layers/growth/root_plant_one.json | 1 + .../model_layers/growth/root_plant_three.json | 1 + .../model_layers/growth/root_plant_two.json | 1 + .../model_layers/shell/big_ben_shell.json | 1 + .../model_layers/shell/briefcase_shell.json | 1 + .../model_layers/shell/castle_shell.json | 1 + .../model_layers/shell/drifter_shell.json | 1 + .../model_layers/shell/factory_shell.json | 1 + .../model_layers/shell/groening_shell.json | 1 + .../model_layers/shell/growth_shell.json | 1 + .../model_layers/shell/half_baked_shell.json | 1 + .../model_layers/shell/hieroglyph_shell.json | 1 + .../model_layers/shell/lift_shell.json | 1 + .../model_layers/shell/mystic_shell.json | 1 + .../model_layers/shell/nuka_shell.json | 1 + .../model_layers/shell/pagoda_shell.json | 1 + .../model_layers/shell/pathfinder_shell.json | 1 + .../model_layers/shell/phone_booth_shell.json | 1 + .../model_layers/shell/police_box_shell.json | 1 + .../model_layers/shell/portaloo_shell.json | 1 + .../model_layers/shell/present_shell.json | 1 + .../model_layers/shell/root_shell.json | 1 + .../model_layers/shell/vending_shell.json | 416 ++ .../technology/artron_pillar.json | 1 + .../tardis_refined/textures/black_portal.png | Bin 0 -> 1128 bytes .../console/victorian/victorian_console.png | Bin 8486 -> 13029 bytes .../victorian_console_bronze_age.png | Bin 0 -> 13139 bytes .../victorian/victorian_console_emissive.png | Bin 3507 -> 3508 bytes .../shell/big_ben/big_ben_emissive.png | Bin 0 -> 1839 bytes .../shell/big_ben/gothic_emissive.png | Bin 0 -> 1829 bytes .../blockentity/shell/lift/lift_interior.png | Bin 2920 -> 2933 bytes .../shell/pagoda/pagoda_interior.png | Bin 1212 -> 2457 bytes .../blockentity/shell/police_box/barbie.png | Bin 0 -> 5390 bytes .../shell/police_box/barbie_emissive.png | Bin 0 -> 624 bytes .../shell/police_box/barbie_interior.png | Bin 0 -> 3928 bytes .../blockentity/shell/police_box/fourteen.png | Bin 0 -> 4742 bytes .../shell/police_box/fourteen_emissive.png | Bin 0 -> 2521 bytes .../shell/police_box/fourteen_interior.png | Bin 0 -> 3243 bytes .../shell/vending/vending_interior.png | Bin 2004 -> 1450 bytes .../tardis_refined/worldgen/biome/tardis.json | 2 +- .../resources/tardis_refined.accesswidener | 65 +- .../client/fabric/ModelRegistryImpl.java | 33 + .../fabric/TardisRefinedFabric.java | 5 +- .../fabric/TardisRefinedFabricClient.java | 4 +- .../fabric/events/ModEvents.java | 9 + .../common/data/HumProvider.java | 18 +- .../common/data/LangProviderEnglish.java | 7 +- .../common/data/RecipeProvider.java | 4 + .../common/data/ShellPatternProvider.java | 9 +- .../common/data/SoundProvider.java | 1 + .../tardis_refined/neoforge/ClientModBus.java | 12 +- .../tardis_refined/neoforge/CommonBus.java | 2 +- 181 files changed, 2433 insertions(+), 10772 deletions(-) delete mode 100644 common/src/main/java/dev/jeryn/anim/tardis/JsonToAnimationDefinition.java create mode 100644 common/src/main/java/dev/jeryn/frame/tardis/Frame.java create mode 100644 common/src/main/java/whocraft/tardis_refined/client/TRShaders.java delete mode 100644 common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/PagodaDoorModel.java rename common/src/main/java/whocraft/tardis_refined/client/{ => particle}/ParticleGallifrey.java (97%) rename common/src/main/java/whocraft/tardis_refined/common/{ => soundscape}/hum/HumEntry.java (98%) rename common/src/main/java/whocraft/tardis_refined/common/{ => soundscape}/hum/TardisHums.java (95%) create mode 100644 common/src/main/java/whocraft/tardis_refined/villager/VillagerDuck.java delete mode 100644 common/src/main/resources/assets/tardis_refined/animated/console/victorian/flight.json delete mode 100644 common/src/main/resources/assets/tardis_refined/animated/console/victorian/idle.json rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/copper/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/copper/idle.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/coral/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/coral/idle.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/crystal/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/crystal/idle.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/factory/crash.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/factory/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/factory/idle.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/factory/power_off.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/factory/power_on.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/initiative/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/initiative/idle.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/nuka/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/refurbished/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/refurbished/idle.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/toyota/flight.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/console/toyota/idle.json (100%) create mode 100644 common/src/main/resources/assets/tardis_refined/frame/console/victorian/crash.json create mode 100644 common/src/main/resources/assets/tardis_refined/frame/console/victorian/flight.json create mode 100644 common/src/main/resources/assets/tardis_refined/frame/console/victorian/idle.json create mode 100644 common/src/main/resources/assets/tardis_refined/frame/console/victorian/power_off.json create mode 100644 common/src/main/resources/assets/tardis_refined/frame/console/victorian/power_on.json rename common/src/main/resources/assets/tardis_refined/{animated => frame}/living/ars_egg/crashing.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/living/ars_egg/swinging.json (100%) rename common/src/main/resources/assets/tardis_refined/{animated => frame}/shell/myst/idle.json (100%) create mode 100644 common/src/main/resources/assets/tardis_refined/shaders/core/glow_shader.fsh create mode 100644 common/src/main/resources/assets/tardis_refined/shaders/core/glow_shader.json create mode 100644 common/src/main/resources/assets/tardis_refined/shaders/core/glow_shader.vsh create mode 100644 common/src/main/resources/assets/tardis_refined/shaders/core/nivis.json create mode 100644 common/src/main/resources/assets/tardis_refined/shaders/core/nivis_fragment.fsh create mode 100644 common/src/main/resources/assets/tardis_refined/shaders/core/nivis_vertex.vsh create mode 100644 common/src/main/resources/assets/tardis_refined/sounds/tardis/interior_hums/hum_copper.ogg create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/console/crystal.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/console/initiative.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/console/myst.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/console/refurbished.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/console/victorian.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/door/briefcase_door.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/door/growth_door.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/door/half_baked_door.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/door/pagoda_door.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/door/root_shell_door.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/growth/root_plant_five.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/growth/root_plant_four.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/growth/root_plant_one.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/growth/root_plant_three.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/growth/root_plant_two.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/big_ben_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/briefcase_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/castle_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/drifter_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/factory_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/groening_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/growth_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/half_baked_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/hieroglyph_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/lift_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/mystic_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/nuka_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/pagoda_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/pathfinder_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/phone_booth_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/police_box_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/portaloo_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/present_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/root_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/shell/vending_shell.json create mode 100644 common/src/main/resources/assets/tardis_refined/tardis_refined/model_layers/technology/artron_pillar.json create mode 100644 common/src/main/resources/assets/tardis_refined/textures/black_portal.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/console/victorian/victorian_console_bronze_age.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/big_ben/big_ben_emissive.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/big_ben/gothic_emissive.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/police_box/barbie.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/police_box/barbie_emissive.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/police_box/barbie_interior.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/police_box/fourteen.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/police_box/fourteen_emissive.png create mode 100644 common/src/main/resources/assets/tardis_refined/textures/blockentity/shell/police_box/fourteen_interior.png diff --git a/LICENSE.MD b/LICENSE.MD index aed8dcb63..3f09b052c 100644 --- a/LICENSE.MD +++ b/LICENSE.MD @@ -149,8 +149,8 @@ or other kind of organization that you work for, plus all its affiliates. **Affiliates** means the other organizations than an -organization has controlEntity over, is under the controlEntity of, or is -under common controlEntity with. +organization has control over, is under the control of, or is +under common control with. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies diff --git a/build.gradle b/build.gradle index 7cc39cb5b..70a17d057 100644 --- a/build.gradle +++ b/build.gradle @@ -66,7 +66,7 @@ allprojects { maven { url 'https://jitpack.io' } flatDir { - dirs '../modlibs' + dirs '../mods' } diff --git a/changelog.md b/changelog.md index 01cf4caf0..b58d23522 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,4 @@ -# Version 2.1.0 +# Version 2.1.0 (UPCOMING) ![TARDIS Refined](https://wiki.tardisrefined.net/TARDIS-Refined-Wiki/tardis_refined_v2.png) @@ -12,8 +12,10 @@ - Bug fix: relogging causes TARDIS Dance events to not occur [#387](https://github.com/WhoCraft/TardisRefined/issues/387) - Bug fix: [Incompatibility] Tardis refined dimensions fail to load with Dimension Threads [#374](https://github.com/WhoCraft/TardisRefined/issues/374) - Bug fix: Console cannot be removed/changed with the console configurator outside the TARDIS dimension [#380](https://github.com/WhoCraft/TardisRefined/issues/380) -- Bug fix: Fixed a bug where the overlay keybinds always rendered the default key +- Bug fix: Fixed a bug where the overlay keybindings always rendered the default key - Bug fix: Fixed a bug where a new TARDIS would believe it was at 0,0,0 +- Bug fix: Fixed a bug where users would be burned alive when using temperature mods +- Bug fix: [Incompatibility] Shearing Tardis crashes the game with Valkyrien Skies installed [#324](https://github.com/WhoCraft/TardisRefined/issues/324) #### Enhancements - Enhancement: Added Adventure Mode @@ -25,14 +27,15 @@ - Enhancement: Speed up downwards descent for Gravity Shaft - Enhancement: Improved UI for Gravity Shaft - Enhancement: Colored various texts on Key item -- Enhancement: Alarm now sounds when Fuel is below 5% and the TARDIS is not fueling+ - Enhancement: Bulkhead doors now have some variants, changed via the Pattern Manipulator - Enhancement: Alarm now sounds when Fuel is below 5% and the TARDIS is not fueling +- Enhancement: Fixed Coral Hum sound not looping as intended +- Enhancement: Right-clicking the Astral Manipulator will now show all possible crafting recipes #### Additions -- Added Item: Mallet +- Added Item: Mallet - Added Villager: Pilot (POI: Console) -- Added Interior: Useable Terraformed +- Added Interior: Useable Terraformed - "Added" Shell: Half Baked - Added Vortex: Clouds - Added Vortex: Flow @@ -56,9 +59,13 @@ - Added Vortex: Non-Binary Flag - Added Vortex: Agender Flag - Added Vortex: Gay Flag +- Added Shell Pattern (Police Box): Barbie +- Added Shell Pattern (Police Box): Fourteen +- Added Interior Hum: Copper #### Textures, Models & Animations - Texture: Updated all Factory Console Variants +- Texture: Big Ben Shell now glows on clock face - Model: Updated Coral Console Model - Model: Updated Victorian Console Model - Model: Updated Factory Console Model @@ -79,17 +86,42 @@ Mod Pack creators can now enable adventure mode in the server config - this will activate a mode where players have to visit a dimension and sample it in order to have their TARDIS travel there - Mod Pack creators can also add levels to automatically be sampled by a TARDIS #### Compatibility Notes -- [Trinkets](https://wiki.tardisrefined.net/extendedinventorymods.html#trinkets) -- [Curios](https://wiki.tardisrefined.net/extendedinventorymods.html#curios) -- [Diagonal Windows](https://wiki.tardisrefined.net/diagonal-blocks-windows-walls.html#diagonal-walls) +- [Trinkets](ExtendedInventoryMods.md#trinkets) +- [Curios](ExtendedInventoryMods.md#curios) +- [Diagonal Windows](Diagonal-Blocks-Windows-Walls.md) #### Technical changes -- Most animations for Consoles are now loaded from JSON -- Some models for Consoles are now loaded from JSON +- Most animations for Consoles are now loaded from JSON via Frame +- Some models for Consoles are now loaded from JSON via Frame +- Most models for Interior Doors are now loaded from JSON via Frame +- Glowing within the mod is now handled via Shaders +- Snow effect within the mod is handled via Shaders +- Vigorous Logging is now implemented Mod wide to help pinpoint issues +- Manipulator Crafting can now use tags (still slightly WIP but useable) #### NOTE -- Upon updating to this version, your previous: ``Return Location``, ``Current Location`` and ``Target Location`` will be reset -This will not lead to any other data loss and your TARDIS will be exactly where you left it, take off once and you will be all sorted. This was a required change to resolve some issues +- Upon updating to this version, your previous: ``Return Location``, ``Current Location`` and ``Target Location`` will be reset + This will not lead to any other data loss and your TARDIS will be exactly where you left it, take off once and you will be all sorted. This was a required change to resolve some issues + +### Special Thanks +Can't do it all ourselves, can we? + +#### Edrax +- Vortex Rendering +- User interface rendering + +#### MuttDud +- Fixed Coral Hum sound not looping as intended + +#### River Thomas & Govert +- [Valkyrien Skies Compatibility](ValkyrienSkies.md) + +#### Lucraft +- Assistance with JSON Model Loader + +#### nanuwo +- Fix blockstates being incorrect when attempting to render Astral Manipulator recipes + diff --git a/common/src/main/java/dev/jeryn/anim/tardis/JsonToAnimationDefinition.java b/common/src/main/java/dev/jeryn/anim/tardis/JsonToAnimationDefinition.java deleted file mode 100644 index e4c881d54..000000000 --- a/common/src/main/java/dev/jeryn/anim/tardis/JsonToAnimationDefinition.java +++ /dev/null @@ -1,219 +0,0 @@ -package dev.jeryn.anim.tardis; - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.google.gson.stream.JsonReader; -import net.minecraft.client.animation.AnimationChannel; -import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; -import net.minecraft.client.model.HierarchicalModel; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.ResourceManager; -import org.joml.Vector3f; -import whocraft.tardis_refined.TardisRefined; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.*; - -import static net.minecraft.client.animation.AnimationChannel.Interpolations.CATMULLROM; -import static net.minecraft.client.animation.AnimationChannel.Interpolations.LINEAR; -import static net.minecraft.client.animation.AnimationChannel.Targets.*; - -/** - *

JsonToAnimationDefinition

- * - *

This file magically allows me to load JSON based animations to a AnimationDefinition

- *

It was a nightmare to get correct

- *

All Rights Reserved

- * - *

Credits

- * - * - * @version 1.0 - * @since 2024-12-01 - */ -public class JsonToAnimationDefinition { - - public static ModelPart findPart(HierarchicalModel hierarchicalModel, String string) { - System.out.println(string + " " + hierarchicalModel.getClass()); - return hierarchicalModel.root().getAllParts().filter((modelPart) -> modelPart.hasChild(string)).findFirst().map((modelPart) -> modelPart.getChild(string)).get(); - } - - public static final AnimationChannel.Interpolation SNAP_TO = (destination, progress, keyFrames, startIndex, endIndex, scaleFactor) -> { - Vector3f startVector = keyFrames[startIndex].target(); - Vector3f endVector = keyFrames[endIndex].target(); - return startVector.lerp(endVector, 0, destination).mul(scaleFactor); - }; - - - public static AnimationDefinition loadAnimation(ResourceManager resourceManager, ResourceLocation resourceLocation) { - - JsonObject animationJson = loadJsonFromResource(resourceManager, resourceLocation); - JsonArray animations = animationJson.getAsJsonArray("animations"); - - if(animationJson == null || animations.isEmpty() || animations.isJsonNull()){ - TardisRefined.LOGGER.info("The specified animation '{}' does not exist?", resourceLocation); - } - - float animationLength = animationJson.get("length").getAsFloat(); - - AnimationDefinition.Builder animationDefinition = AnimationDefinition.Builder.withLength(animationLength); - - boolean looping = animationJson.get("looping").getAsBoolean(); - - if(looping){ - animationDefinition.looping(); - } - - for (JsonElement boneEntry : animations.getAsJsonArray()) { - JsonObject boneData = boneEntry.getAsJsonObject(); - - List rotationKeyframes = new ArrayList<>(); - List positionKeyframes = new ArrayList<>(); - List scaleKeyframes = new ArrayList<>(); - - String boneName = boneData.get("bone").getAsString(); - - if(boneData.get("target").getAsString().equals("rotation")){ - rotationKeyframes = parseKeyframes(boneData, ROTATION); - } - - if(boneData.get("target").getAsString().equals("position")){ - positionKeyframes = parseKeyframes(boneData, POSITION); - } - - if(boneData.get("target").getAsString().equals("scale")){ - scaleKeyframes = parseKeyframes(boneData, SCALE); - } - - - - AnimationChannel positionChannel = positionKeyframes.isEmpty() ? null : new AnimationChannel(POSITION, positionKeyframes.toArray(new Keyframe[0])); - AnimationChannel rotationChannel = rotationKeyframes.isEmpty() ? null : new AnimationChannel(ROTATION, rotationKeyframes.toArray(new Keyframe[0])); - AnimationChannel scaleChannel = scaleKeyframes.isEmpty() ? null : new AnimationChannel(SCALE, scaleKeyframes.toArray(new Keyframe[0])); - - if (positionChannel != null) { - animationDefinition.addAnimation(boneName, positionChannel); - } - if (rotationChannel != null) { - animationDefinition.addAnimation(boneName, rotationChannel); - } - - if (scaleChannel != null) { - animationDefinition.addAnimation(boneName, scaleChannel); - } - - - } - - return animationDefinition.build(); - } - - private static List parseKeyframes(JsonElement transformationData, AnimationChannel.Target targetType) { - List keyframes = new ArrayList<>(); - - if(transformationData == null) return keyframes; - - JsonObject jsonObject = transformationData.getAsJsonObject(); - - if (!jsonObject.has("keyframes") || !jsonObject.get("keyframes").isJsonArray()) { - return keyframes; - } - - JsonArray keyframesArray = jsonObject.getAsJsonArray("keyframes"); - for (JsonElement keyframeElement : keyframesArray) { - if (!keyframeElement.isJsonObject()) continue; - - JsonObject keyframeObject = keyframeElement.getAsJsonObject(); - - // Parse the individual keyframe details - float timestamp = keyframeObject.has("timestamp") ? keyframeObject.get("timestamp").getAsFloat() : 0.0f; - JsonArray targetArray = keyframeObject.has("target") ? keyframeObject.getAsJsonArray("target") : null; - AnimationChannel.Interpolation interpolation = keyframeObject.has("interpolation") ? getInterpolation(keyframeObject.get("interpolation").getAsString()) : getInterpolation("linear"); - - Vector3f vector3f; - - if (targetArray != null && targetArray.size() == 3) { - vector3f = new Vector3f( - targetArray.get(0).getAsFloat(), - targetArray.get(1).getAsFloat(), - targetArray.get(2).getAsFloat() - ); - } else { - continue; // Skip this keyframe if target is invalid - } - - - // Create a new Keyframe object and add it to the list - Keyframe keyframe = new Keyframe(timestamp, Objects.requireNonNull(targetToVector(targetType, vector3f)), interpolation); - keyframes.add(keyframe); - } - // Log the total number of keyframes parsed - TardisRefined.LOGGER.debug("({} + {}) Total keyframes parsed: {}", targetToString(targetType), jsonObject.get("bone").getAsString(), keyframes.size()); - - return keyframes; - } - - - private static String targetToString(AnimationChannel.Target target){ - if(target == POSITION){ - return "Position"; - } - - if(target == ROTATION){ - return "Rotation"; - } - - if(target == SCALE){ - return "Scale"; - } - - return null; // We should never get here - } - - private static Vector3f targetToVector(AnimationChannel.Target target, Vector3f vector3f){ - if(target == POSITION){ - return KeyframeAnimations.posVec(vector3f.x, vector3f.y, vector3f.z); - } - - if(target == ROTATION){ - return KeyframeAnimations.degreeVec(vector3f.x, vector3f.y, vector3f.z); - } - - if(target == SCALE){ - return KeyframeAnimations.scaleVec(vector3f.x, vector3f.y, vector3f.z); - } - - return null; // We should never get here - } - - private static AnimationChannel.Interpolation getInterpolation(String easingType) { - return switch (easingType) { - case "linear" -> LINEAR; - case "catmullrom" -> CATMULLROM; - default -> SNAP_TO; - }; - } - - - - public static JsonObject loadJsonFromResource(ResourceManager resourceManager, ResourceLocation resourceLocation) { - try { - TardisRefined.LOGGER.info("Loading Animation: {}", resourceLocation); - InputStream inputStream = resourceManager.getResource(resourceLocation).get().open(); - JsonReader reader = new JsonReader(new InputStreamReader(inputStream)); - return JsonParser.parseReader(reader).getAsJsonObject(); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } -} \ No newline at end of file diff --git a/common/src/main/java/dev/jeryn/frame/tardis/Frame.java b/common/src/main/java/dev/jeryn/frame/tardis/Frame.java new file mode 100644 index 000000000..4fa2f3765 --- /dev/null +++ b/common/src/main/java/dev/jeryn/frame/tardis/Frame.java @@ -0,0 +1,197 @@ +package dev.jeryn.frame.tardis; + +import com.google.gson.*; +import com.google.gson.stream.JsonReader; +import net.minecraft.client.Minecraft; +import net.minecraft.client.animation.*; +import net.minecraft.client.model.HierarchicalModel; +import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.joml.Vector3f; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.*; + +import static net.minecraft.client.animation.AnimationChannel.Interpolations.*; +import static net.minecraft.client.animation.AnimationChannel.Targets.*; + +/** + *

Frame

+ * + *

Allows loading JSON-based animations into an AnimationDefinition.

+ *

Developed by Jeryn

+ * + * @version 2.1 + * @since 2024-12-01 + */ +public class Frame { + + private static final Logger LOGGER = LogManager.getLogger("TardisRefined/FrameByJeryn"); + + public static final AnimationChannel.Interpolation SNAP_TO = (destination, progress, keyFrames, startIndex, endIndex, scaleFactor) -> { + Vector3f startVector = keyFrames[startIndex].target(); + Vector3f endVector = keyFrames[endIndex].target(); + return startVector.lerp(endVector, 0, destination).mul(scaleFactor); + }; + + public static AnimationDefinition loadAnimation(ResourceLocation resourceLocation) { + return loadAnimation(Minecraft.getInstance().getResourceManager(), resourceLocation); + } + + public static AnimationDefinition loadAnimation(ResourceManager resourceManager, ResourceLocation resourceLocation) { + if(resourceManager == null) return null; + JsonObject animationJson = loadJsonFromResource(resourceManager, resourceLocation); + + validateAnimationJson(animationJson, resourceLocation); + + float animationLength = animationJson.get("length").getAsFloat(); + boolean looping = animationJson.has("looping") && animationJson.get("looping").getAsBoolean(); + + AnimationDefinition.Builder animationDefinition = AnimationDefinition.Builder.withLength(animationLength); + if (looping) animationDefinition.looping(); + + JsonArray animations = animationJson.getAsJsonArray("animations"); + for (JsonElement boneEntry : animations) { + if (!boneEntry.isJsonObject()) { + LOGGER.warn("Skipping invalid bone entry in animation: {}", resourceLocation); + continue; + } + + JsonObject boneData = boneEntry.getAsJsonObject(); + String boneName = boneData.get("bone").getAsString(); + String target = boneData.get("target").getAsString(); + + List keyframes = parseKeyframes(boneData, targetToAnimationTarget(target)); + if (keyframes.isEmpty()) continue; + + animationDefinition.addAnimation( + boneName, + new AnimationChannel(targetToAnimationTarget(target), keyframes.toArray(new Keyframe[0])) + ); + } + + return animationDefinition.build(); + } + + private static void validateAnimationJson(JsonObject animationJson, ResourceLocation resourceLocation) { + if (animationJson == null || !animationJson.has("animations") || animationJson.getAsJsonArray("animations").isEmpty()) { + LOGGER.error("Invalid or missing animation JSON: {}", resourceLocation); + throw new IllegalArgumentException("Invalid or missing animation JSON: " + resourceLocation); + } + } + + private static AnimationChannel.Target targetToAnimationTarget(String target) { + return switch (target.toLowerCase()) { + case "rotation" -> ROTATION; + case "position" -> POSITION; + case "scale" -> SCALE; + default -> throw new IllegalArgumentException("Unknown animation target: " + target); + }; + } + + private static List parseKeyframes(JsonObject boneData, AnimationChannel.Target targetType) { + if (!boneData.has("keyframes") || !boneData.get("keyframes").isJsonArray()) { + return Collections.emptyList(); + } + + JsonArray keyframesArray = boneData.getAsJsonArray("keyframes"); + List keyframes = new ArrayList<>(keyframesArray.size()); + + for (JsonElement keyframeElement : keyframesArray) { + if (!keyframeElement.isJsonObject()) continue; + + JsonObject keyframeObject = keyframeElement.getAsJsonObject(); + float timestamp = keyframeObject.has("timestamp") ? keyframeObject.get("timestamp").getAsFloat() : 0.0f; + + JsonArray targetArray = keyframeObject.getAsJsonArray("target"); + if (targetArray == null || targetArray.size() != 3) { + LOGGER.warn("Invalid target array for keyframe at timestamp: {}", timestamp); + continue; + } + + Vector3f vector3f = new Vector3f( + targetArray.get(0).getAsFloat(), + targetArray.get(1).getAsFloat(), + targetArray.get(2).getAsFloat() + ); + + AnimationChannel.Interpolation interpolation = keyframeObject.has("interpolation") + ? getInterpolation(keyframeObject.get("interpolation").getAsString()) + : LINEAR; + + keyframes.add(new Keyframe( + timestamp, + targetToVector(targetType, vector3f), + interpolation + )); + } + + LOGGER.debug("Parsed {} keyframes for bone: {}, target: {}", keyframes.size(), boneData.get("bone").getAsString(), targetToString(targetType)); + return keyframes; + } + + /*Helper method for logging purposes*/ + private static String targetToString(AnimationChannel.Target target) { + if (target.equals(POSITION)) { + return "Position"; + } else if (target.equals(ROTATION)) { + return "Rotation"; + } else if (target.equals(SCALE)) { + return "Scale"; + } + throw new IllegalArgumentException("Unexpected target: " + target); // This should never happen + } + + private static Vector3f targetToVector(AnimationChannel.Target target, Vector3f vector3f){ + if(target == POSITION){ + return KeyframeAnimations.posVec(vector3f.x, vector3f.y, vector3f.z); + } + + if(target == ROTATION){ + return KeyframeAnimations.degreeVec(vector3f.x, vector3f.y, vector3f.z); + } + + if(target == SCALE){ + return KeyframeAnimations.scaleVec(vector3f.x, vector3f.y, vector3f.z); + } + + return null; // We should never get here + } + + private static AnimationChannel.Interpolation getInterpolation(String easingType) { + return switch (easingType.toLowerCase()) { + case "linear" -> LINEAR; + case "catmullrom" -> CATMULLROM; + default -> SNAP_TO; + }; + } + + public static JsonObject loadJsonFromResource(ResourceManager resourceManager, ResourceLocation resourceLocation) { + LOGGER.info("Loading animation: {}", resourceLocation); + + return resourceManager.getResource(resourceLocation).map(resource -> { + try (JsonReader reader = new JsonReader(new InputStreamReader(resource.open()))) { + return JsonParser.parseReader(reader).getAsJsonObject(); + } catch (IOException e) { + LOGGER.error("Error reading animation: {}", resourceLocation, e); + throw new RuntimeException(e); + } + }).orElseThrow(() -> { + LOGGER.error("Animation not found: {}", resourceLocation); + return new IllegalArgumentException("Animation not found: " + resourceLocation); + }); + } + + public static ModelPart findPart(HierarchicalModel model, String partName) { + return model.root() + .getAllParts() + .filter(part -> part.hasChild(partName)) + .findFirst() + .map(part -> part.getChild(partName)) + .orElseThrow(() -> new IllegalArgumentException("Part not found: " + partName)); + } +} diff --git a/common/src/main/java/whocraft/tardis_refined/TardisRefined.java b/common/src/main/java/whocraft/tardis_refined/TardisRefined.java index 2971a51c7..1278e0435 100644 --- a/common/src/main/java/whocraft/tardis_refined/TardisRefined.java +++ b/common/src/main/java/whocraft/tardis_refined/TardisRefined.java @@ -2,15 +2,14 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.mojang.logging.LogUtils; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; import net.minecraft.util.LowerCaseEnumTypeAdapterFactory; -import org.slf4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import whocraft.tardis_refined.client.TRParticles; import whocraft.tardis_refined.common.VortexRegistry; -import whocraft.tardis_refined.registry.TRUpgrades; -import whocraft.tardis_refined.common.hum.TardisHums; +import whocraft.tardis_refined.common.soundscape.hum.TardisHums; import whocraft.tardis_refined.common.network.TardisNetwork; import whocraft.tardis_refined.common.network.messages.sync.S2CSyncConsolePatterns; import whocraft.tardis_refined.common.network.messages.sync.S2CSyncDesktops; @@ -21,7 +20,6 @@ import whocraft.tardis_refined.common.tardis.themes.ShellTheme; import whocraft.tardis_refined.common.world.ChunkGenerators; import whocraft.tardis_refined.common.world.Features; -import whocraft.tardis_refined.registry.TRARSStructurePieceRegistry; import whocraft.tardis_refined.patterns.ConsolePatterns; import whocraft.tardis_refined.patterns.ShellPatterns; import whocraft.tardis_refined.registry.*; @@ -30,8 +28,7 @@ public class TardisRefined { public static final String MODID = "tardis_refined"; public static final String NAME = "Tardis Refined"; - public static final String PLATFORM_ERROR = "Something has gone critically wrong with platform definitions. Please contact the mod author."; - public static final Logger LOGGER = LogUtils.getLogger(); + public static Logger LOGGER = LogManager.getLogger(NAME); public static Gson GSON = new GsonBuilder() .disableHtmlEscaping() diff --git a/common/src/main/java/whocraft/tardis_refined/client/ModelRegistry.java b/common/src/main/java/whocraft/tardis_refined/client/ModelRegistry.java index 26880d97e..634eba281 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/ModelRegistry.java +++ b/common/src/main/java/whocraft/tardis_refined/client/ModelRegistry.java @@ -18,47 +18,46 @@ public class ModelRegistry { - // Root Plants - Sorry in advance. - public static ModelLayerLocation ROOT_PLANT_STATE_ONE; - public static ModelLayerLocation ROOT_PLANT_STATE_TWO; - public static ModelLayerLocation ROOT_PLANT_STATE_THREE; - public static ModelLayerLocation ROOT_PLANT_STATE_FOUR; - public static ModelLayerLocation ROOT_PLANT_STATE_FIVE; + public static ModelLayerLocation ROOT_PLANT_STATE_ONE = createLocation("root_plant_one", "growth"); + public static ModelLayerLocation ROOT_PLANT_STATE_TWO = createLocation("root_plant_two", "growth"); + public static ModelLayerLocation ROOT_PLANT_STATE_THREE = createLocation("root_plant_three", "growth"); + public static ModelLayerLocation ROOT_PLANT_STATE_FOUR = createLocation("root_plant_four", "growth"); + public static ModelLayerLocation ROOT_PLANT_STATE_FIVE = createLocation("root_plant_five", "growth"); public static ModelLayerLocation FACTORY_CONSOLE = console("factory"); - public static ModelLayerLocation NUKA_CONSOLE; + public static ModelLayerLocation NUKA_CONSOLE = console("nuka"); public static ModelLayerLocation CORAL_CONSOLE = console("coral"); - public static ModelLayerLocation COPPER_CONSOLE = console( "copper"); - + public static ModelLayerLocation COPPER_CONSOLE = console("copper"); public static ModelLayerLocation TOYOTA_CONSOLE = console("toyota"); - public static ModelLayerLocation CRYSTAL_CONSOLE; - public static ModelLayerLocation VICTORIAN_CONSOLE; - public static ModelLayerLocation MYST_CONSOLE; - public static ModelLayerLocation INITIATIVE_CONSOLE; - public static ModelLayerLocation REFURBISHED_CONSOLE; - - public static ModelLayerLocation ROOT_SHELL; - public static ModelLayerLocation FACTORY_SHELL; - public static ModelLayerLocation POLICE_BOX_SHELL; - public static ModelLayerLocation PHONE_BOOTH_SHELL; - public static ModelLayerLocation MYSTIC_SHELL; - public static ModelLayerLocation DRIFTER_SHELL; - public static ModelLayerLocation PRESENT_SHELL; - public static ModelLayerLocation VENDING_SHELL; - public static ModelLayerLocation BRIEFCASE_SHELL; - public static ModelLayerLocation GROENING_SHELL; - public static ModelLayerLocation BIG_BEN_SHELL; - public static ModelLayerLocation NUKA_SHELL; - public static ModelLayerLocation GROWTH_SHELL; - public static ModelLayerLocation PORTALOO_SHELL; - public static ModelLayerLocation PAGODA_SHELL; - public static ModelLayerLocation LIFT_SHELL; - public static ModelLayerLocation HIEROGLYPH_SHELL; - public static ModelLayerLocation CASTLE_SHELL; - public static ModelLayerLocation PATHFINDER_SHELL; - public static ModelLayerLocation HALF_BAKED_SHELL; - - public static ModelLayerLocation ROOT_SHELL_DOOR; + public static ModelLayerLocation CRYSTAL_CONSOLE = console("crystal"); + public static ModelLayerLocation VICTORIAN_CONSOLE = console("victorian"); + public static ModelLayerLocation MYST_CONSOLE = console("myst"); + public static ModelLayerLocation INITIATIVE_CONSOLE = console("initiative"); + public static ModelLayerLocation REFURBISHED_CONSOLE = console("refurbished"); + + + public static ModelLayerLocation ROOT_SHELL = shell("root_shell"); + public static ModelLayerLocation FACTORY_SHELL = shell("factory_shell"); + public static ModelLayerLocation POLICE_BOX_SHELL = shell("police_box_shell"); + public static ModelLayerLocation PHONE_BOOTH_SHELL = shell("phone_booth_shell"); + public static ModelLayerLocation MYSTIC_SHELL = shell("mystic_shell"); + public static ModelLayerLocation DRIFTER_SHELL = shell("drifter_shell"); + public static ModelLayerLocation PRESENT_SHELL = shell("present_shell"); + public static ModelLayerLocation VENDING_SHELL = shell("vending_shell"); + public static ModelLayerLocation BRIEFCASE_SHELL = shell("briefcase_shell"); + public static ModelLayerLocation GROENING_SHELL = shell("groening_shell"); + public static ModelLayerLocation BIG_BEN_SHELL = shell("big_ben_shell"); + public static ModelLayerLocation NUKA_SHELL = shell("nuka_shell"); + public static ModelLayerLocation GROWTH_SHELL = shell("growth_shell"); + public static ModelLayerLocation PORTALOO_SHELL = shell("portaloo_shell"); + public static ModelLayerLocation PAGODA_SHELL = shell("pagoda_shell"); + public static ModelLayerLocation LIFT_SHELL = shell("lift_shell"); + public static ModelLayerLocation HIEROGLYPH_SHELL = shell("hieroglyph_shell"); + public static ModelLayerLocation CASTLE_SHELL = shell("castle_shell"); + public static ModelLayerLocation PATHFINDER_SHELL = shell("pathfinder_shell"); + public static ModelLayerLocation HALF_BAKED_SHELL = shell("half_baked_shell"); + + public static ModelLayerLocation ROOT_SHELL_DOOR = interiorDoor("root_shell_door"); public static ModelLayerLocation FACTORY_DOOR = interiorDoor("factory_door"); public static ModelLayerLocation POLICE_BOX_DOOR = interiorDoor("police_box_door"); public static ModelLayerLocation DRIFTER_DOOR = interiorDoor("drifter_door"); @@ -66,9 +65,9 @@ public class ModelRegistry { public static ModelLayerLocation PHONE_BOOTH_DOOR = interiorDoor("phone_booth_door"); public static ModelLayerLocation PRESENT_DOOR = interiorDoor("present_door"); public static ModelLayerLocation GROENING_DOOR = interiorDoor("groening_door"); - public static ModelLayerLocation BRIEFCASE_DOOR; - public static ModelLayerLocation GROWTH_DOOR; - public static ModelLayerLocation PAGODA_DOOR; + public static ModelLayerLocation BRIEFCASE_DOOR = interiorDoor("briefcase_door"); + public static ModelLayerLocation GROWTH_DOOR = interiorDoor("growth_door"); + public static ModelLayerLocation PAGODA_DOOR = interiorDoor("pagoda_door"); public static ModelLayerLocation HIEROGLYPH_DOOR = interiorDoor("hieroglyph_door"); public static ModelLayerLocation CASTLE_DOOR = interiorDoor("castle_door"); public static ModelLayerLocation NUKA_DOOR = interiorDoor("nuka_door"); @@ -77,11 +76,12 @@ public class ModelRegistry { public static ModelLayerLocation LIFT_DOOR = interiorDoor("lift_door"); public static ModelLayerLocation PATHFINDER_DOOR = interiorDoor("pathfinder_door"); public static ModelLayerLocation BIG_BEN_DOOR = interiorDoor("big_ben_door"); - public static ModelLayerLocation HALF_BAKED_DOOR; + public static ModelLayerLocation HALF_BAKED_DOOR = interiorDoor("half_baked_door"); public static ModelLayerLocation ARS_EGG = createLocation("ars_egg", "living"); public static ModelLayerLocation BULK_HEAD_DOOR = interiorDoor("bulk_head_door"); - public static ModelLayerLocation ARTRON_PILLAR; + + public static ModelLayerLocation ARTRON_PILLAR = createLocation("artron_pillar", "technology"); private static ModelLayerLocation interiorDoor(String name) { return createLocation(name, "door"); @@ -91,52 +91,16 @@ private static ModelLayerLocation console(String name) { return createLocation(name, "console"); } + private static ModelLayerLocation shell(String name) { + return createLocation(name, "shell"); + } + + private static ModelLayerLocation createLocation(String name, String layer) { return new ModelLayerLocation(new ResourceLocation(MODID, name), layer); } public static void init() { - ROOT_PLANT_STATE_ONE = register(new ModelLayerLocation(new ResourceLocation(MODID, "root_plant_one"), "root_plant_one"), RootPlantStateOneModel::createBodyLayer); - ROOT_PLANT_STATE_TWO = register(new ModelLayerLocation(new ResourceLocation(MODID, "root_plant_two"), "root_plant_two"), RootPlantStateTwoModel::createBodyLayer); - ROOT_PLANT_STATE_THREE = register(new ModelLayerLocation(new ResourceLocation(MODID, "root_plant_three"), "root_plant_three"), RootPlantStateThreeModel::createBodyLayer); - ROOT_PLANT_STATE_FOUR = register(new ModelLayerLocation(new ResourceLocation(MODID, "root_plant_four"), "root_plant_four"), RootPlantStateFourModel::createBodyLayer); - ROOT_PLANT_STATE_FIVE = register(new ModelLayerLocation(new ResourceLocation(MODID, "root_plant_five"), "root_plant_five"), RootPlantStateFiveModel::createBodyLayer); - - NUKA_CONSOLE = register(new ModelLayerLocation(new ResourceLocation(MODID, "nuka_console"), "nuka_console"), NukaConsoleModel::createBodyLayer); - CRYSTAL_CONSOLE = register(new ModelLayerLocation(new ResourceLocation(MODID, "crystal_console"), "crystal_console"), CrystalConsoleModel::createBodyLayer); - VICTORIAN_CONSOLE = register(new ModelLayerLocation(new ResourceLocation(MODID, "victorian_console"), "victorian_console"), VictorianConsoleModel::createBodyLayer); - MYST_CONSOLE = register(new ModelLayerLocation(new ResourceLocation(MODID, "myst_console"), "myst_console"), MystConsoleModel::createBodyLayer); - INITIATIVE_CONSOLE = register(new ModelLayerLocation(new ResourceLocation(MODID, "initiative_console"), "initiative_console"), InitiativeConsoleModel::createBodyLayer); - REFURBISHED_CONSOLE = register(new ModelLayerLocation(new ResourceLocation(MODID, "refurbished_console"), "refurbished_console"), RefurbishedConsoleModel::createBodyLayer); - - ROOT_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "root_shell"), "root_shell"), RootShellModel::createBodyLayer); - FACTORY_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "factory_shell"), "factory_shell"), FactoryShellModel::createBodyLayer); - POLICE_BOX_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "police_box_shell"), "police_box_shell"), PoliceBoxModel::createBodyLayer); - PHONE_BOOTH_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "phone_booth_shell"), "phone_booth_shell"), PhoneBoothModel::createBodyLayer); - MYSTIC_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "mystic_shell"), "mystic_shell"), MysticShellModel::createBodyLayer); - DRIFTER_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "drifter_shell"), "drifter_shell"), DrifterShellModel::createBodyLayer); - PRESENT_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "present_shell"), "present_shell"), PresentShellModel::createBodyLayer); - VENDING_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "vending_shell"), "vending_shell"), VendingMachineShellModel::createBodyLayer); - BRIEFCASE_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "briefcase_shell"), "briefcase_shell"), BriefcaseShellModel::createBodyLayer); - GROENING_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "groening_shell"), "groening_shell"), GroeningShellModel::createBodyLayer); - BIG_BEN_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "big_ben_shell"), "big_ben_shell"), BigBenShellModel::createBodyLayer); - NUKA_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "nuka_shell"), "nuka_shell"), NukaShellModel::createBodyLayer); - GROWTH_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "growth_shell"), "growth_shell"), GrowthShellModel::createBodyLayer); - PORTALOO_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "portaloo_shell"), "portaloo_shell"), PortalooShellModel::createBodyLayer); - PAGODA_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "pagoda_shell"), "pagoda_shell"), PagodaShellModel::createBodyLayer); - LIFT_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "lift_shell"), "lift_shell"), LiftShellModel::createBodyLayer); - HIEROGLYPH_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "hieroglyph_shell"), "hieroglyph_shell"), HieroglyphModel::createBodyLayer); - CASTLE_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "castle_shell"), "castle_shell"), CastleShellModel::createBodyLayer); - PATHFINDER_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "pathfinder_shell"), "pathfinder_shell"), PathfinderShellModel::createBodyLayer); - HALF_BAKED_SHELL = register(new ModelLayerLocation(new ResourceLocation(MODID, "half_baked_shell"), "half_baked_shell"), HalfBakedShellModel::createBodyLayer); - - - ROOT_SHELL_DOOR = register(new ModelLayerLocation(new ResourceLocation(MODID, "root_shell_door"), "root_shell_door"), RootShellDoorModel::createBodyLayer); - BRIEFCASE_DOOR = register(new ModelLayerLocation(new ResourceLocation(MODID, "briefcase_door"), "briefcase_door"), BriefcaseDoorModel::createBodyLayer); - GROWTH_DOOR = register(new ModelLayerLocation(new ResourceLocation(MODID, "growth_door"), "growth_door"), GrowthDoorModel::createBodyLayer); - PAGODA_DOOR = register(new ModelLayerLocation(new ResourceLocation(MODID, "pagoda_door"), "pagoda_door"), PagodaDoorModel::createBodyLayer); - HALF_BAKED_DOOR = register(new ModelLayerLocation(new ResourceLocation(MODID, "half_baked_door"), "half_baked_door"), HalfBakedDoorModel::createBodyLayer); - ARTRON_PILLAR = register(new ModelLayerLocation(new ResourceLocation(MODID, "artron_pillar"), "artron_pillar"), ArtronPillarBlockModel::createBodyLayer); } diff --git a/common/src/main/java/whocraft/tardis_refined/client/ScreenHandler.java b/common/src/main/java/whocraft/tardis_refined/client/ScreenHandler.java index 2e0e872ae..2554981f5 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/ScreenHandler.java +++ b/common/src/main/java/whocraft/tardis_refined/client/ScreenHandler.java @@ -53,6 +53,7 @@ public static void setEditCoordinatesScreen(TardisWaypoint waypoint) { Minecraft.getInstance().setScreen(new WaypointManageScreen(waypoint)); } + @Environment(EnvType.CLIENT) public static void openMonitorScreen(boolean desktopGenerating, CompoundTag upgradeHandlerNbt, TardisNavLocation currentLocation, TardisNavLocation targetLocation, ResourceLocation currentShellTheme) { if (desktopGenerating) { diff --git a/common/src/main/java/whocraft/tardis_refined/client/TRParticles.java b/common/src/main/java/whocraft/tardis_refined/client/TRParticles.java index 142e9994c..5a189b8a7 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/TRParticles.java +++ b/common/src/main/java/whocraft/tardis_refined/client/TRParticles.java @@ -5,6 +5,7 @@ import net.minecraft.core.particles.SimpleParticleType; import net.minecraft.core.registries.Registries; import whocraft.tardis_refined.TardisRefined; +import whocraft.tardis_refined.common.util.PlatformWarning; import whocraft.tardis_refined.registry.DeferredRegistry; import whocraft.tardis_refined.registry.RegistrySupplier; @@ -18,7 +19,7 @@ public class TRParticles { @ExpectPlatform public static SimpleParticleType getParticleType() { - throw new RuntimeException(TardisRefined.PLATFORM_ERROR); + throw new RuntimeException(PlatformWarning.addWarning(TRParticles.class)); } } diff --git a/common/src/main/java/whocraft/tardis_refined/client/TRShaders.java b/common/src/main/java/whocraft/tardis_refined/client/TRShaders.java new file mode 100644 index 000000000..1e531ebc1 --- /dev/null +++ b/common/src/main/java/whocraft/tardis_refined/client/TRShaders.java @@ -0,0 +1,81 @@ +package whocraft.tardis_refined.client; + +import com.google.common.collect.ImmutableList; +import com.mojang.blaze3d.vertex.VertexFormat; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderStateShard; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.ShaderInstance; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.phys.Vec3; +import org.apache.commons.lang3.tuple.Triple; + +import java.util.List; +import java.util.Objects; + +import static com.mojang.blaze3d.vertex.DefaultVertexFormat.NEW_ENTITY; +import static net.minecraft.client.renderer.RenderStateShard.*; + +public class TRShaders { + public static ShaderInstance GLOW_SHADER; + public static ShaderInstance SNOW_SHADER; + + public static RenderType translucentWithSnow(ResourceLocation texture, boolean show) { + ResourceLocation snowTexture = new ResourceLocation("minecraft", "textures/block/snow.png"); + + if (!show) return RenderType.entityTranslucent(texture); + + // Create an ImmutableList of Triple for the textures + ImmutableList> textureList = ImmutableList.of( + Triple.of(texture, false, false), + Triple.of(snowTexture, false, false) + ); + + RenderType.CompositeState state = RenderType.CompositeState.builder() + .setShaderState(new RenderStateShard.ShaderStateShard(() -> TRShaders.SNOW_SHADER)) + .setTextureState(new RenderStateShard.MultiTextureStateShard(textureList)) + .setTransparencyState(RenderStateShard.TRANSLUCENT_TRANSPARENCY) + .setCullState(NO_CULL) + .setLightmapState(LIGHTMAP) + .createCompositeState(false); + + return RenderType.create( + "nivis", + NEW_ENTITY, + VertexFormat.Mode.QUADS, + 256, + true, + false, + state + ); + } + + + + public static RenderType glow(ResourceLocation texture, float intensity) { + + RenderType.CompositeState state = RenderType.CompositeState.builder() + .setShaderState(new RenderStateShard.ShaderStateShard(() -> { + ShaderInstance glowShader = TRShaders.GLOW_SHADER; + Objects.requireNonNull(glowShader.getUniform("GlowIntensity")).set(intensity); + return glowShader; + })) + .setTextureState(new RenderStateShard.TextureStateShard(texture, false, false)) + .setTransparencyState(RenderStateShard.ADDITIVE_TRANSPARENCY) + .setWriteMaskState(COLOR_WRITE) + .createCompositeState(true); + + return RenderType.create( + "glowing_texture", + NEW_ENTITY, + VertexFormat.Mode.QUADS, + 256, + true, + false, + state + ); + } + + + +} diff --git a/common/src/main/java/whocraft/tardis_refined/client/TardisClientData.java b/common/src/main/java/whocraft/tardis_refined/client/TardisClientData.java index 373b06de9..31b7a696a 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/TardisClientData.java +++ b/common/src/main/java/whocraft/tardis_refined/client/TardisClientData.java @@ -7,8 +7,8 @@ import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import whocraft.tardis_refined.common.VortexRegistry; -import whocraft.tardis_refined.common.hum.HumEntry; -import whocraft.tardis_refined.common.hum.TardisHums; +import whocraft.tardis_refined.common.soundscape.hum.HumEntry; +import whocraft.tardis_refined.common.soundscape.hum.TardisHums; import whocraft.tardis_refined.common.network.messages.sync.S2CSyncTardisClientData; import whocraft.tardis_refined.common.tardis.themes.ShellTheme; import whocraft.tardis_refined.constants.NbtConstants; diff --git a/common/src/main/java/whocraft/tardis_refined/client/TardisClientLogic.java b/common/src/main/java/whocraft/tardis_refined/client/TardisClientLogic.java index e3e9a9a64..f679754cf 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/TardisClientLogic.java +++ b/common/src/main/java/whocraft/tardis_refined/client/TardisClientLogic.java @@ -22,7 +22,7 @@ import whocraft.tardis_refined.common.GravityUtil; import whocraft.tardis_refined.common.capability.player.TardisPlayerInfo; import whocraft.tardis_refined.common.capability.tardis.TardisLevelOperator; -import whocraft.tardis_refined.common.hum.HumEntry; +import whocraft.tardis_refined.common.soundscape.hum.HumEntry; import whocraft.tardis_refined.common.util.ClientHelper; import whocraft.tardis_refined.common.util.TardisHelper; import whocraft.tardis_refined.registry.TRDimensionTypes; @@ -221,7 +221,7 @@ private static void handleTardisLoopingSounds(TardisClientData clientData, Playe //Play hums, and use the dedicated HumSoundManager to stop and start sounds HumEntry humEntry = clientData.getHumEntry(); if (isThisTardis && humEntry != null && !humEntry.getSoundEventId().toString().equals(HumSoundManager.getCurrentRawSound().getLocation().toString()) || !soundManager.isActive(HumSoundManager.getCurrentHumSound())) { - HumSoundManager.playHum(SoundEvent.createVariableRangeEvent(humEntry.getSoundEventId()), player, targetLevel); + HumSoundManager.playHum(SoundEvent.createFixedRangeEvent(humEntry.getSoundEventId(), 1F), player, targetLevel); } //Hum ambient sounds diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ConsoleModelCollection.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ConsoleModelCollection.java index 3e0908707..76dff366c 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ConsoleModelCollection.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ConsoleModelCollection.java @@ -3,7 +3,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.model.geom.EntityModelSet; import net.minecraft.resources.ResourceLocation; -import whocraft.tardis_refined.TardisRefined; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import whocraft.tardis_refined.client.ModelRegistry; import java.util.ArrayList; @@ -57,6 +58,9 @@ public void registerModels(EntityModelSet context) { } + public static Logger LOGGER = LogManager.getLogger("TardisRefined/ConsoleModelCollection"); + + /** * Get the associated console model from a console theme. * @@ -69,7 +73,7 @@ public ConsoleUnit getConsoleModel(ResourceLocation themeId) { return consoleModel; } } - TardisRefined.LOGGER.warn("Could not find model for {}, did you bind it?", themeId); + LOGGER.warn("Could not find model for {}, did you bind it?", themeId); return null; } } diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CopperConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CopperConsoleModel.java index 2e17b0408..754aebc0c 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CopperConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CopperConsoleModel.java @@ -3,16 +3,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; @@ -27,8 +22,8 @@ public class CopperConsoleModel extends HierarchicalModel implements ConsoleUnit { - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/copper/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/copper/flight.json")); + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/copper/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation(new ResourceLocation(TardisRefined.MODID, "frame/console/copper/flight.json")); private static final ResourceLocation COPPER_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/copper/copper_console.png"); @@ -65,7 +60,7 @@ public CopperConsoleModel(ModelPart root) { this.south_left = root.getChild("south_left"); this.west = root.getChild("west"); this.throttle = north_right.getChild("bone203").getChild("bone213").getChild("main_lever_control2"); - this.handbrake = JsonToAnimationDefinition.findPart(this, "lever_control8"); + this.handbrake = Frame.findPart(this, "lever_control8"); } diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CoralConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CoralConsoleModel.java index cb5f12d39..35dfa9037 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CoralConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CoralConsoleModel.java @@ -2,16 +2,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; @@ -26,9 +21,8 @@ public class CoralConsoleModel extends HierarchicalModel implements ConsoleUnit { - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/coral/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/coral/flight.json")); - + public static final AnimationDefinition IDLE = Frame.loadAnimation(new ResourceLocation(TardisRefined.MODID, "frame/console/coral/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation(new ResourceLocation(TardisRefined.MODID, "frame/console/coral/flight.json")); private static final ResourceLocation CORAL_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/coral/coral_console.png"); private final ModelPart throttle; @@ -42,7 +36,7 @@ public CoralConsoleModel(ModelPart root) { this.base_console = root.getChild("base_console"); this.throttle = base_console.getChild("controls").getChild("borders").getChild("bone23").getChild("bone17").getChild("throttle"); this.anim_parts = root.getChild("anim_parts"); - this.handbrake = JsonToAnimationDefinition.findPart(this, "handbrake"); + this.handbrake = Frame.findPart(this, "handbrake"); } diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CrystalConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CrystalConsoleModel.java index 877a7339f..b2641610e 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CrystalConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/CrystalConsoleModel.java @@ -7,7 +7,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; import net.minecraft.client.animation.AnimationDefinition; import net.minecraft.client.model.HierarchicalModel; @@ -27,8 +27,8 @@ public class CrystalConsoleModel extends HierarchicalModel implements ConsoleUnit { - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/crystal/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/crystal/flight.json")); + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/crystal/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/crystal/flight.json")); private static final ResourceLocation CRYSTAL_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/crystal/crystal_console.png"); @@ -50,8 +50,8 @@ public CrystalConsoleModel(ModelPart root) { this.controls = root.getChild("controls"); this.spinninglight = root.getChild("spinninglight"); this.bb_main = root.getChild("bb_main"); - this.throttle = JsonToAnimationDefinition.findPart(this, "large_lever_control_throttle"); - this.handbrake = JsonToAnimationDefinition.findPart(this, "large_lever3_control"); + this.throttle = Frame.findPart(this, "large_lever_control_throttle"); + this.handbrake = Frame.findPart(this, "large_lever3_control"); } public static LayerDefinition createBodyLayer() { diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/FactoryConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/FactoryConsoleModel.java index b86978ff8..fdf27ed05 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/FactoryConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/FactoryConsoleModel.java @@ -2,19 +2,17 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; import net.minecraft.client.animation.AnimationDefinition; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; import whocraft.tardis_refined.TRConfig; import whocraft.tardis_refined.TardisRefined; import whocraft.tardis_refined.client.TardisClientData; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; import whocraft.tardis_refined.common.block.console.GlobalConsoleBlock; import whocraft.tardis_refined.common.blockentity.console.GlobalConsoleBlockEntity; import whocraft.tardis_refined.common.tardis.manager.TardisPilotingManager; @@ -22,11 +20,11 @@ public class FactoryConsoleModel extends HierarchicalModel implements ConsoleUnit { - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/factory/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/factory/flight.json")); - public static final AnimationDefinition CRASH = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/factory/crash.json")); - public static final AnimationDefinition POWER_ON = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/factory/power_on.json")); - public static final AnimationDefinition POWER_OFF = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/factory/power_off.json")); + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/factory/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/factory/flight.json")); + public static final AnimationDefinition CRASH = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/factory/crash.json")); + public static final AnimationDefinition POWER_ON = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/factory/power_on.json")); + public static final AnimationDefinition POWER_OFF = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/factory/power_off.json")); private static final ResourceLocation FACTORY_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/factory/factory_console.png"); @@ -37,7 +35,7 @@ public class FactoryConsoleModel extends HierarchicalModel implements ConsoleUni public FactoryConsoleModel(ModelPart root) { this.root = root; - this.throttleLever = JsonToAnimationDefinition.findPart(this, "lever2"); + this.throttleLever = Frame.findPart(this, "lever2"); this.handbrake = (ModelPart) getAnyDescendantWithName("lever3").get(); } diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/InitiativeConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/InitiativeConsoleModel.java index e35998589..a4d4a0df6 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/InitiativeConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/InitiativeConsoleModel.java @@ -2,11 +2,9 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.model.geom.PartPose; @@ -17,7 +15,6 @@ import whocraft.tardis_refined.TRConfig; import whocraft.tardis_refined.TardisRefined; import whocraft.tardis_refined.client.TardisClientData; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; import whocraft.tardis_refined.common.block.console.GlobalConsoleBlock; import whocraft.tardis_refined.common.blockentity.console.GlobalConsoleBlockEntity; import whocraft.tardis_refined.common.tardis.manager.TardisPilotingManager; @@ -25,8 +22,8 @@ public class InitiativeConsoleModel extends HierarchicalModel implements ConsoleUnit { - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/initiative/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/initiative/flight.json")); + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/initiative/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/initiative/flight.json")); private static final ResourceLocation INITIATIVE_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/initiative/initiative_console.png"); @@ -37,9 +34,9 @@ public class InitiativeConsoleModel extends HierarchicalModel implements Console public InitiativeConsoleModel(ModelPart root) { this.root = root; - this.throttle = JsonToAnimationDefinition.findPart(this, "bone178"); - this.rotor_on = JsonToAnimationDefinition.findPart(this, "rotor_on"); - this.handbrake = JsonToAnimationDefinition.findPart(this, "bone185"); + this.throttle = Frame.findPart(this, "bone178"); + this.rotor_on = Frame.findPart(this, "rotor_on"); + this.handbrake = Frame.findPart(this, "bone185"); } public static LayerDefinition createBodyLayer() { diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/MystConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/MystConsoleModel.java index c4bda339a..7af343468 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/MystConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/MystConsoleModel.java @@ -2,7 +2,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; @@ -52,7 +52,7 @@ public MystConsoleModel(ModelPart root) { this.controls = root.getChild("controls"); this.rotor = root.getChild("rotor"); this.throttle_control = controls.getChild("south").getChild("bone120").getChild("throttle_control"); - this.handbrake = JsonToAnimationDefinition.findPart(this, "door_control"); + this.handbrake = Frame.findPart(this, "door_control"); } public static LayerDefinition createBodyLayer() { diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/NukaConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/NukaConsoleModel.java index b082c5651..c09592299 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/NukaConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/NukaConsoleModel.java @@ -2,12 +2,9 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.model.geom.PartPose; @@ -26,7 +23,7 @@ public class NukaConsoleModel extends HierarchicalModel implements ConsoleUnit { - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/nuka/flight.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/nuka/flight.json")); private static final ResourceLocation NUKA_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/nuka/nuka_console.png"); diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/RefurbishedConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/RefurbishedConsoleModel.java index 8720caf7f..0fc90447b 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/RefurbishedConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/RefurbishedConsoleModel.java @@ -2,6 +2,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; import net.minecraft.client.animation.AnimationDefinition; import net.minecraft.client.model.HierarchicalModel; @@ -14,7 +15,6 @@ import whocraft.tardis_refined.TRConfig; import whocraft.tardis_refined.TardisRefined; import whocraft.tardis_refined.client.TardisClientData; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; import whocraft.tardis_refined.common.block.console.GlobalConsoleBlock; import whocraft.tardis_refined.common.blockentity.console.GlobalConsoleBlockEntity; import whocraft.tardis_refined.common.tardis.manager.TardisPilotingManager; @@ -27,8 +27,8 @@ public class RefurbishedConsoleModel extends HierarchicalModel implements Consol private final ModelPart throttle; private final ModelPart handbrake; - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/refurbished/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/refurbished/flight.json")); + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/refurbished/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/refurbished/flight.json")); public RefurbishedConsoleModel(ModelPart root) { diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ToyotaConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ToyotaConsoleModel.java index 9aa58758e..8fdc74a73 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ToyotaConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/ToyotaConsoleModel.java @@ -2,16 +2,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.Level; @@ -25,8 +20,8 @@ public class ToyotaConsoleModel extends HierarchicalModel implements ConsoleUnit { - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/toyota/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/toyota/flight.json")); + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/toyota/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/toyota/flight.json")); private static final ResourceLocation TOYOTA_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/toyota/toyota_console.png"); @@ -36,8 +31,8 @@ public class ToyotaConsoleModel extends HierarchicalModel implements ConsoleUnit public ToyotaConsoleModel(ModelPart root) { this.bone181 = root.getChild("bone181"); - this.throttle = JsonToAnimationDefinition.findPart(this, "bone198"); - this.handbrake = JsonToAnimationDefinition.findPart(this, "bone202"); + this.throttle = Frame.findPart(this, "bone198"); + this.handbrake = Frame.findPart(this, "bone202"); } diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/VictorianConsoleModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/VictorianConsoleModel.java index 261c8d689..11e668550 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/VictorianConsoleModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/console/VictorianConsoleModel.java @@ -3,12 +3,9 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.model.geom.PartPose; @@ -26,2183 +23,700 @@ public class VictorianConsoleModel extends HierarchicalModel implements ConsoleUnit { -/* - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/victorian/idle.json")); - public static final AnimationDefinition FLIGHT = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/console/victorian/flight.json")); -*/ - - - public static final AnimationDefinition IDLE = AnimationDefinition.Builder.withLength(10f).looping() - .addAnimation("bone186", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.68f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.72f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.8f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.84f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.92f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.96f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.28f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.32f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.68f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.72f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone188", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(1.36f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.4f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.08f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.44f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.48f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.88f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.92f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.96f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.32f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.36f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone189", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.52f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.52f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone190", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone191", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.6f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone192", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(6.08f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.48f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.52f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone193", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.84f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.88f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone194", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.08f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone195", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.12f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.16f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.68f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.84f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone196", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.52f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone197", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.24f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone200", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.36f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone198", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.36f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone199", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(5.24f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.28f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.6f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone201", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(3.92f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.28f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.32f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone203", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone204", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, 360f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone205", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, -720f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone206", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(3f, KeyframeAnimations.degreeVec(0f, 172.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6f, KeyframeAnimations.degreeVec(0f, -62.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(8.72f, KeyframeAnimations.degreeVec(0f, 107.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone207", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.6f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.44f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.44f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.8f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone208", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.32f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.36f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.6f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone209", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.32f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.36f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.44f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.48f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone210", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone211", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone212", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone213", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone214", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone215", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone216", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone217", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone218", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone219", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone220", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone221", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone222", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.12f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.16f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone223", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.08f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.08f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone224", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(4.08f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.08f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.12f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone227", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone228", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2.28f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.32f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone229", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(4.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.68f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone230", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(0f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(3f, KeyframeAnimations.scaleVec(2.6f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(5.96f, KeyframeAnimations.scaleVec(1.5f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(7.64f, KeyframeAnimations.scaleVec(2.2f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(9.28f, KeyframeAnimations.scaleVec(1.4f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(0f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone231", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.84f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.88f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.28f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.32f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.24f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.28f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone232", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, -720f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone234", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(2.6f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.64f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.08f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.12f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.2f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.24f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.68f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.72f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.48f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.52f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.96f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone235", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.24f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.28f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.88f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.92f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.44f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.48f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.48f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.52f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.16f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone236", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.2f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.36f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.2f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone237", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone238", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.28f, KeyframeAnimations.scaleVec(1f, 0.42f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone239", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone240", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone241", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.28f, KeyframeAnimations.scaleVec(1f, 0.42f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone242", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.28f, KeyframeAnimations.scaleVec(1f, 0.42f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR))).build(); - public static final AnimationDefinition FLIGHT = AnimationDefinition.Builder.withLength(10f).looping() - .addAnimation("bone186", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone188", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(2f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone189", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.48f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.52f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.44f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.48f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone190", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone191", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone192", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.44f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.36f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone193", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.84f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.88f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone194", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.08f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone195", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.12f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.16f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.12f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.68f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.84f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone196", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.52f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone197", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.24f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone200", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1.36f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone198", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.36f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone199", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(5.24f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.28f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.6f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone201", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(3.92f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.28f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.32f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone203", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone204", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, 1080f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone205", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, -720f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone206", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, -1080f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone207", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.6f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.44f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.44f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.8f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone208", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.32f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.36f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.2f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.16f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.48f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.52f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.08f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.52f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.24f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.28f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.8f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.84f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.76f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone209", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.32f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.36f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.44f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.48f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone210", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone211", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone212", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone213", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone214", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone215", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone216", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone217", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone218", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone219", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone220", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 7f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone221", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 1f, 0.025f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone222", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone223", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(1f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone224", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.96f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone227", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.72f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone228", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(2.28f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.32f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.56f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone229", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(4.6f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.68f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone230", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(0f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(3f, KeyframeAnimations.scaleVec(2.6f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(5.96f, KeyframeAnimations.scaleVec(1.5f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(7.64f, KeyframeAnimations.scaleVec(2.2f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(9.28f, KeyframeAnimations.scaleVec(1.4f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(0f, 1f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone231", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.44f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.32f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.36f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.32f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.36f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.4f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.44f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.32f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.36f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.52f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.56f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.64f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.68f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.24f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9.28f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone232", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, -720f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone234", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.48f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.52f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.48f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.52f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.96f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.6f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.64f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.48f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.52f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.2f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.24f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.68f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.72f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.2f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.24f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.68f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.72f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.48f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.52f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.96f, KeyframeAnimations.scaleVec(1.04f, 1.06f, 1.06f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(9f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone235", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.04f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.8f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.84f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.84f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.88f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.64f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2.68f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.88f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(3.92f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.44f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.48f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.04f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.08f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.84f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.88f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.48f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(6.52f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.16f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.2f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone236", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(0.2f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.36f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5.4f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.16f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.2f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.72f, KeyframeAnimations.posVec(0f, 0.05f, 0f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8.76f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone237", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone238", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.28f, KeyframeAnimations.scaleVec(1f, 0.42f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone239", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone240", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.4f, 1f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone241", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.28f, KeyframeAnimations.scaleVec(1f, 0.42f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone242", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(0f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.28f, KeyframeAnimations.scaleVec(1f, 0.42f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.2f, KeyframeAnimations.scaleVec(1f, 1.01f, 1f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.scaleVec(1f, 0.6f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("upper_rotor", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(1.56f, KeyframeAnimations.posVec(0f, 1.505f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(2.52f, KeyframeAnimations.posVec(0f, 4.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(4f, KeyframeAnimations.posVec(0f, 2.565f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(5f, KeyframeAnimations.posVec(0f, -0.7f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.52f, KeyframeAnimations.posVec(0f, 1.58f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(7.52f, KeyframeAnimations.posVec(0f, 4.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(9.04f, KeyframeAnimations.posVec(0f, 2.54f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("lower_rotor", - new AnimationChannel(AnimationChannel.Targets.POSITION, - new Keyframe(0f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(1.6f, KeyframeAnimations.posVec(0f, -1.68f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(2.52f, KeyframeAnimations.posVec(0f, -4.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(3.92f, KeyframeAnimations.posVec(0f, -2.69f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(5f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.6f, KeyframeAnimations.posVec(0f, -1.68f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(7.52f, KeyframeAnimations.posVec(0f, -4.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(8.92f, KeyframeAnimations.posVec(0f, -2.69f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.posVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone243", - new AnimationChannel(AnimationChannel.Targets.SCALE, - new Keyframe(1f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(1.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(2f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(4.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(5f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.04f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(7.96f, KeyframeAnimations.scaleVec(1.05f, 1.05f, 1.05f), - AnimationChannel.Interpolations.LINEAR), - new Keyframe(8f, KeyframeAnimations.scaleVec(1f, 1f, 1f), - AnimationChannel.Interpolations.LINEAR))) - .addAnimation("bone245", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(2.6f, KeyframeAnimations.degreeVec(0f, 110f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(5.32f, KeyframeAnimations.degreeVec(0f, 57.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(7.84f, KeyframeAnimations.degreeVec(0f, 107.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(9.4f, KeyframeAnimations.degreeVec(0f, 2.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM))) - .addAnimation("bone244", - new AnimationChannel(AnimationChannel.Targets.ROTATION, - new Keyframe(0f, KeyframeAnimations.degreeVec(0f, -90f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(1.16f, KeyframeAnimations.degreeVec(0f, -90f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(2.6f, KeyframeAnimations.degreeVec(0f, -10f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(4.4f, KeyframeAnimations.degreeVec(0f, -147.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(6.48f, KeyframeAnimations.degreeVec(0f, 115f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(9.16f, KeyframeAnimations.degreeVec(0f, -37.5f, 0f), - AnimationChannel.Interpolations.CATMULLROM), - new Keyframe(10f, KeyframeAnimations.degreeVec(0f, 0f, 0f), - AnimationChannel.Interpolations.CATMULLROM))).build(); + + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/victorian/idle.json")); + public static final AnimationDefinition FLIGHT = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/victorian/flight.json")); + public static final AnimationDefinition CRASH = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/victorian/crash.json")); + public static final AnimationDefinition POWER_ON = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/victorian/power_on.json")); + public static final AnimationDefinition POWER_OFF = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/console/victorian/power_off.json")); private static final ResourceLocation VICTORIAN_TEXTURE = new ResourceLocation(TardisRefined.MODID, "textures/blockentity/console/victorian/victorian_console.png"); private final ModelPart root; - private final ModelPart upper_rotor; - private final ModelPart lower_rotor; - private final ModelPart controls; - private final ModelPart base_console; private final ModelPart throttle_control; public VictorianConsoleModel(ModelPart root) { this.root = root; - this.upper_rotor = root.getChild("upper_rotor"); - this.lower_rotor = root.getChild("lower_rotor"); - this.controls = root.getChild("controls"); - this.base_console = root.getChild("base_console"); - this.throttle_control = this.controls.getChild("south_left").getChild("bone185").getChild("bone187"); + this.throttle_control = Frame.findPart(this, "bone187"); } public static LayerDefinition createBodyLayer() { MeshDefinition meshdefinition = new MeshDefinition(); PartDefinition partdefinition = meshdefinition.getRoot(); - PartDefinition upper_rotor = partdefinition.addOrReplaceChild("upper_rotor", CubeListBuilder.create(), PartPose.offset(0.0F, 21.0F, 0.0F)); + PartDefinition controls = partdefinition.addOrReplaceChild("controls", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); - PartDefinition bone133 = upper_rotor.addOrReplaceChild("bone133", CubeListBuilder.create().texOffs(9, 60).addBox(-1.0F, -21.0F, -4.825F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -33.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition north = controls.addOrReplaceChild("north", CubeListBuilder.create(), PartPose.offset(0.0F, -7.0F, 0.0F)); - PartDefinition bone134 = bone133.addOrReplaceChild("bone134", CubeListBuilder.create().texOffs(9, 60).addBox(-1.0F, -23.0F, -4.825F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone176 = north.addOrReplaceChild("bone176", CubeListBuilder.create().texOffs(73, 38).addBox(-2.5F, -0.7333F, -10.0271F, 5.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(90, 42).addBox(-1.5F, -0.0833F, -5.0271F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(82, 32).addBox(-2.5F, -0.0833F, -8.0271F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(17, 70).addBox(2.5F, -0.0833F, -9.5271F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(17, 70).mirror().addBox(-5.5F, -0.0833F, -9.5271F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(87, 49).addBox(-1.0F, -0.4833F, -4.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone135 = bone134.addOrReplaceChild("bone135", CubeListBuilder.create().texOffs(9, 60).addBox(-1.0F, -21.0F, -4.825F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone176_r1 = bone176.addOrReplaceChild("bone176_r1", CubeListBuilder.create().texOffs(69, 81).addBox(-2.5F, -1.5F, 0.0F, 5.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.25F, -0.7333F, -9.0271F, -0.8727F, 0.0F, 0.0F)); - PartDefinition bone136 = bone135.addOrReplaceChild("bone136", CubeListBuilder.create().texOffs(9, 60).addBox(-1.0F, -23.0F, -4.825F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone163 = bone176.addOrReplaceChild("bone163", CubeListBuilder.create().texOffs(86, 35).addBox(-1.0F, 0.725F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(-0.5F, -0.8333F, -3.0271F)); - PartDefinition bone137 = bone136.addOrReplaceChild("bone137", CubeListBuilder.create().texOffs(9, 60).addBox(-1.0F, -21.0F, -4.825F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone165 = bone176.addOrReplaceChild("bone165", CubeListBuilder.create().texOffs(88, 39).addBox(-1.0F, 0.725F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.5F, -0.8333F, -3.0271F)); - PartDefinition bone138 = bone137.addOrReplaceChild("bone138", CubeListBuilder.create().texOffs(9, 60).addBox(-1.0F, -23.0F, -4.825F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone164 = bone176.addOrReplaceChild("bone164", CubeListBuilder.create().texOffs(86, 35).addBox(-1.0F, 0.725F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.5F, -0.8333F, -4.0271F, 0.0F, 3.1416F, 0.0F)); - PartDefinition bone163 = upper_rotor.addOrReplaceChild("bone163", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -40.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone166 = bone176.addOrReplaceChild("bone166", CubeListBuilder.create().texOffs(88, 39).addBox(-1.0F, 0.725F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.5F, -0.8333F, -4.0271F, 0.0F, 3.1416F, 0.0F)); - PartDefinition bone163_r1 = bone163.addOrReplaceChild("bone163_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone234 = bone176.addOrReplaceChild("bone234", CubeListBuilder.create(), PartPose.offset(-3.5F, 0.0167F, -2.0271F)); - PartDefinition bone164 = bone163.addOrReplaceChild("bone164", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone177_r1 = bone234.addOrReplaceChild("bone177_r1", CubeListBuilder.create().texOffs(72, 58).addBox(-6.5F, -3.5F, 0.0F, 7.0F, 4.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, -0.3491F, 0.5672F, -0.3054F)); - PartDefinition bone164_r1 = bone164.addOrReplaceChild("bone164_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone127 = bone234.addOrReplaceChild("bone127", CubeListBuilder.create(), PartPose.offset(-2.8824F, -1.5544F, 2.4674F)); - PartDefinition bone165 = bone164.addOrReplaceChild("bone165", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone178_r1 = bone127.addOrReplaceChild("bone178_r1", CubeListBuilder.create().texOffs(0, 91).addBox(-6.25F, -3.0F, -0.5F, 6.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.8824F, 1.5544F, -2.4674F, -0.3491F, 0.5672F, -0.3054F)); - PartDefinition bone165_r1 = bone165.addOrReplaceChild("bone165_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone128 = bone234.addOrReplaceChild("bone128", CubeListBuilder.create(), PartPose.offset(-2.8824F, -1.5544F, 2.4674F)); - PartDefinition bone166 = bone165.addOrReplaceChild("bone166", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone179_r1 = bone128.addOrReplaceChild("bone179_r1", CubeListBuilder.create().texOffs(0, 94).addBox(-6.25F, -3.0F, -0.5F, 6.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.8824F, 1.5544F, -2.4674F, -0.3491F, 0.5672F, -0.3054F)); - PartDefinition bone166_r1 = bone166.addOrReplaceChild("bone166_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone135 = bone176.addOrReplaceChild("bone135", CubeListBuilder.create().texOffs(80, 53).addBox(-2.0F, -0.5F, -1.0F, 4.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.4167F, -0.7771F)); - PartDefinition bone167 = bone166.addOrReplaceChild("bone167", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone136 = bone176.addOrReplaceChild("bone136", CubeListBuilder.create().texOffs(93, 53).addBox(-2.0F, -0.5F, -1.0F, 4.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.3917F, -0.7771F)); - PartDefinition bone167_r1 = bone167.addOrReplaceChild("bone167_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone178 = bone176.addOrReplaceChild("bone178", CubeListBuilder.create().texOffs(24, 63).addBox(-0.5F, -1.0F, -0.5F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(0, 51).addBox(-1.0F, -0.5F, -0.25F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.2333F, -3.5271F, 0.0F, -0.3927F, 0.0F)); - PartDefinition bone168 = bone167.addOrReplaceChild("bone168", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone175 = bone176.addOrReplaceChild("bone175", CubeListBuilder.create().texOffs(9, 87).addBox(-1.0F, -0.9F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(90, 61).addBox(-0.5F, -1.4F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(-4.0F, 0.4167F, -5.5271F)); - PartDefinition bone168_r1 = bone168.addOrReplaceChild("bone168_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone175_r1 = bone175.addOrReplaceChild("bone175_r1", CubeListBuilder.create().texOffs(0, 67).addBox(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); - PartDefinition lower_rotor = partdefinition.addOrReplaceChild("lower_rotor", CubeListBuilder.create(), PartPose.offset(0.0F, 27.0F, 0.0F)); + PartDefinition bone193 = bone175.addOrReplaceChild("bone193", CubeListBuilder.create().texOffs(27, 85).addBox(-4.5F, -22.6559F, -13.2736F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(4.0F, 21.2809F, 12.7736F)); - PartDefinition bone127 = lower_rotor.addOrReplaceChild("bone127", CubeListBuilder.create().texOffs(0, 60).addBox(-1.0F, -18.0F, -4.325F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -18.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone177 = bone176.addOrReplaceChild("bone177", CubeListBuilder.create().texOffs(9, 87).mirror().addBox(-1.0F, -0.9F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(90, 61).mirror().addBox(-0.5F, -1.4F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(4.0F, 0.4167F, -5.5271F)); - PartDefinition bone128 = bone127.addOrReplaceChild("bone128", CubeListBuilder.create().texOffs(0, 60).addBox(-1.0F, -20.0F, -4.325F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone177_r2 = bone177.addOrReplaceChild("bone177_r2", CubeListBuilder.create().texOffs(0, 67).mirror().addBox(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); - PartDefinition bone129 = bone128.addOrReplaceChild("bone129", CubeListBuilder.create().texOffs(0, 60).addBox(-1.0F, -18.0F, -4.325F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone194 = bone177.addOrReplaceChild("bone194", CubeListBuilder.create().texOffs(27, 85).mirror().addBox(3.5F, -22.6559F, -13.2736F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(-4.0F, 21.2809F, 12.7736F)); - PartDefinition bone130 = bone129.addOrReplaceChild("bone130", CubeListBuilder.create().texOffs(0, 60).addBox(-1.0F, -20.0F, -4.325F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition north_right = controls.addOrReplaceChild("north_right", CubeListBuilder.create().texOffs(56, 39).addBox(-7.5F, -9.1F, -19.5236F, 6.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)) + .texOffs(73, 27).addBox(-6.5F, -9.15F, -19.5236F, 4.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(67, 0).addBox(2.5F, -9.4F, -19.2736F, 5.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -7.0F, 0.0F, 0.0F, 1.0472F, 0.0F)); - PartDefinition bone131 = bone130.addOrReplaceChild("bone131", CubeListBuilder.create().texOffs(0, 60).addBox(-1.0F, -18.0F, -4.325F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone181 = north_right.addOrReplaceChild("bone181", CubeListBuilder.create().texOffs(78, 85).addBox(-1.0F, -0.4833F, -2.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(26, 39).addBox(-3.5F, -0.4833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(26, 39).mirror().addBox(1.5F, -0.4833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(0, 73).addBox(-3.0F, -0.7333F, -5.5271F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(83, 89).addBox(-4.0F, -0.7333F, -5.5271F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(83, 89).addBox(-1.0F, -0.4833F, -10.5271F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(83, 89).mirror().addBox(0.0F, -0.4833F, -10.5271F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(0, 73).mirror().addBox(-3.0F, -0.4833F, -8.0271F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(0, 73).mirror().addBox(-7.5F, -0.4833F, -10.5271F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(0, 73).addBox(1.5F, -0.4833F, -10.5271F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(82, 81).addBox(-6.25F, -0.3333F, -8.0271F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(40, 39).addBox(3.5F, -0.0833F, -7.7771F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone132 = bone131.addOrReplaceChild("bone132", CubeListBuilder.create().texOffs(0, 60).addBox(-1.0F, -20.0F, -4.325F, 2.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone255 = bone181.addOrReplaceChild("bone255", CubeListBuilder.create().texOffs(38, 49).addBox(-2.5F, -0.5F, -0.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(81, 0).addBox(-2.5F, -0.25F, -3.0F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(81, 0).addBox(-7.0F, -0.25F, -5.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(38, 49).addBox(2.0F, -0.25F, -5.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -0.2333F, -4.5271F)); - PartDefinition bone157 = lower_rotor.addOrReplaceChild("bone157", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -22.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone256 = bone181.addOrReplaceChild("bone256", CubeListBuilder.create().texOffs(81, 0).addBox(-2.5F, -0.5F, -0.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(78, 63).addBox(-2.5F, -0.25F, -3.0F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(38, 49).addBox(-7.0F, -0.25F, -5.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(78, 63).addBox(2.0F, -0.25F, -5.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -0.2333F, -4.5271F)); - PartDefinition bone157_r1 = bone157.addOrReplaceChild("bone157_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone257 = bone181.addOrReplaceChild("bone257", CubeListBuilder.create().texOffs(82, 21).addBox(-2.5F, -0.5F, -0.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(82, 21).addBox(-2.5F, -0.25F, -3.0F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(38, 49).addBox(-7.0F, -0.25F, -5.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(38, 49).addBox(2.0F, -0.25F, -5.5F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -0.2333F, -4.5271F)); - PartDefinition bone158 = bone157.addOrReplaceChild("bone158", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone232 = bone181.addOrReplaceChild("bone232", CubeListBuilder.create(), PartPose.offset(0.0F, -0.0833F, -1.5271F)); - PartDefinition bone158_r1 = bone158.addOrReplaceChild("bone158_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone178_r2 = bone232.addOrReplaceChild("bone178_r2", CubeListBuilder.create().texOffs(19, 79).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.6545F, 0.0F)); - PartDefinition bone159 = bone158.addOrReplaceChild("bone159", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone245 = bone181.addOrReplaceChild("bone245", CubeListBuilder.create(), PartPose.offset(2.5F, -0.0833F, -2.0271F)); - PartDefinition bone159_r1 = bone159.addOrReplaceChild("bone159_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone179_r2 = bone245.addOrReplaceChild("bone179_r2", CubeListBuilder.create().texOffs(19, 79).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 1.0472F, 0.0F)); - PartDefinition bone160 = bone159.addOrReplaceChild("bone160", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone244 = bone181.addOrReplaceChild("bone244", CubeListBuilder.create(), PartPose.offset(-2.5F, -0.0833F, -2.0271F)); - PartDefinition bone160_r1 = bone160.addOrReplaceChild("bone160_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone179_r3 = bone244.addOrReplaceChild("bone179_r3", CubeListBuilder.create().texOffs(19, 79).mirror().addBox(-0.75F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -2.5744F, 0.0F)); - PartDefinition bone161 = bone160.addOrReplaceChild("bone161", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone258 = bone181.addOrReplaceChild("bone258", CubeListBuilder.create().texOffs(13, 59).addBox(0.0F, -1.75F, -0.25F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-5.0F, -0.3025F, -6.5271F, -0.3491F, 0.0F, 0.0F)); - PartDefinition bone161_r1 = bone161.addOrReplaceChild("bone161_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone259 = bone181.addOrReplaceChild("bone259", CubeListBuilder.create().texOffs(13, 59).addBox(0.0F, -1.75F, -0.25F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-5.0F, -0.3025F, -7.5271F, -0.3491F, 0.0F, 0.0F)); - PartDefinition bone162 = bone161.addOrReplaceChild("bone162", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone192 = bone181.addOrReplaceChild("bone192", CubeListBuilder.create().texOffs(44, 54).addBox(-2.75F, -25.7809F, -10.7736F, 1.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(24, 59).addBox(-3.25F, -26.7809F, -11.0236F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(7.0F, 22.6975F, 4.4965F)); - PartDefinition bone162_r1 = bone162.addOrReplaceChild("bone162_r1", CubeListBuilder.create().texOffs(69, 21).addBox(-3.0F, -0.5F, -1.0F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -4.2F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone233 = bone192.addOrReplaceChild("bone233", CubeListBuilder.create(), PartPose.offset(-2.75F, -23.2809F, -10.2736F)); - PartDefinition controls = partdefinition.addOrReplaceChild("controls", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); + PartDefinition bone184_r1 = bone233.addOrReplaceChild("bone184_r1", CubeListBuilder.create().texOffs(47, 0).addBox(0.0F, -3.0F, -0.5F, 1.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, -0.6109F, 0.0F, 0.0F)); - PartDefinition north = controls.addOrReplaceChild("north", CubeListBuilder.create(), PartPose.offset(0.0F, -7.0F, 0.0F)); + PartDefinition bone182 = north_right.addOrReplaceChild("bone182", CubeListBuilder.create().texOffs(13, 59).addBox(0.0F, -1.75F, -0.25F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-5.75F, -8.75F, -16.7736F, -0.3491F, 0.0F, 0.0F)); + + PartDefinition bone249 = north_right.addOrReplaceChild("bone249", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.75F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-4.25F, -8.75F, -16.7736F, -0.4363F, 0.0F, 0.0F)); - PartDefinition bone176 = north.addOrReplaceChild("bone176", CubeListBuilder.create().texOffs(31, 72).addBox(-2.5F, -0.7333F, -10.0271F, 5.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(15, 76).addBox(-1.5F, -0.0833F, -5.0271F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(40, 34).addBox(-2.0F, -0.0833F, -7.2771F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(84, 20).addBox(-1.5F, -0.0833F, -1.5271F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(81, 51).addBox(2.5F, -0.0833F, -9.5271F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(81, 51).mirror().addBox(-5.5F, -0.0833F, -9.5271F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(46, 83).addBox(-1.0F, -0.4833F, -4.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + PartDefinition bone250 = north_right.addOrReplaceChild("bone250", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.75F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-4.25F, -8.75F, -17.7736F, -0.4363F, 0.0F, 0.0F)); - PartDefinition bone177_r1 = bone176.addOrReplaceChild("bone177_r1", CubeListBuilder.create().texOffs(0, 86).addBox(-6.5F, -3.0F, 0.0F, 7.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-3.5F, 0.0167F, -2.0271F, -0.3491F, 0.5672F, -0.3054F)); + PartDefinition bone251 = north_right.addOrReplaceChild("bone251", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.75F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-4.25F, -8.75F, -18.7736F, -0.4363F, 0.0F, 0.0F)); - PartDefinition bone176_r1 = bone176.addOrReplaceChild("bone176_r1", CubeListBuilder.create().texOffs(75, 25).addBox(-2.5F, -1.5F, 0.0F, 5.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.25F, -0.7333F, -9.0271F, -0.8727F, 0.0F, 0.0F)); + PartDefinition bone252 = north_right.addOrReplaceChild("bone252", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.75F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-2.75F, -8.75F, -18.7736F, -0.4363F, 0.0F, 0.0F)); - PartDefinition bone178 = bone176.addOrReplaceChild("bone178", CubeListBuilder.create().texOffs(31, 67).addBox(-0.5F, -1.0F, -0.5F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(59, 11).addBox(-1.0F, -0.5F, -0.25F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.9833F, -3.5271F, 0.0F, -0.3927F, 0.0F)); + PartDefinition bone253 = north_right.addOrReplaceChild("bone253", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.75F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-2.75F, -8.75F, -17.7736F, -0.4363F, 0.0F, 0.0F)); - PartDefinition bone175 = bone176.addOrReplaceChild("bone175", CubeListBuilder.create().texOffs(26, 83).addBox(-1.0F, -0.9F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(71, 83).addBox(-0.5F, -1.4F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(-4.0F, 0.4167F, -5.5271F)); + PartDefinition bone254 = north_right.addOrReplaceChild("bone254", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.75F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-2.75F, -8.75F, -16.7736F, -0.4363F, 0.0F, 0.0F)); - PartDefinition bone175_r1 = bone175.addOrReplaceChild("bone175_r1", CubeListBuilder.create().texOffs(66, 7).addBox(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + PartDefinition bone236 = north_right.addOrReplaceChild("bone236", CubeListBuilder.create().texOffs(13, 59).addBox(0.0F, -1.75F, -0.25F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-5.75F, -8.75F, -17.7736F, -0.3491F, 0.0F, 0.0F)); - PartDefinition bone177 = bone176.addOrReplaceChild("bone177", CubeListBuilder.create().texOffs(26, 83).mirror().addBox(-1.0F, -0.9F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(71, 83).mirror().addBox(-0.5F, -1.4F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(4.0F, 0.4167F, -5.5271F)); + PartDefinition bone248 = north_right.addOrReplaceChild("bone248", CubeListBuilder.create().texOffs(13, 59).addBox(0.0F, -1.75F, -0.25F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-5.75F, -8.75F, -18.7736F, -0.3491F, 0.0F, 0.0F)); - PartDefinition bone177_r2 = bone177.addOrReplaceChild("bone177_r2", CubeListBuilder.create().texOffs(66, 7).mirror().addBox(-2.0F, -0.5F, -2.0F, 4.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + PartDefinition bone272 = north_right.addOrReplaceChild("bone272", CubeListBuilder.create().texOffs(87, 85).addBox(-1.5F, -1.25F, 0.0F, 3.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(5.0F, -9.4F, -18.5236F)); - PartDefinition north_right = controls.addOrReplaceChild("north_right", CubeListBuilder.create().texOffs(59, 57).addBox(2.5F, -9.5F, -19.7736F, 5.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)) - .texOffs(66, 43).addBox(-7.5F, -9.9F, -19.2736F, 5.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(79, 6).addBox(-7.0F, -11.4F, -17.7736F, 4.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -7.0F, 0.0F, 0.0F, 1.0472F, 0.0F)); + PartDefinition bone238 = north_right.addOrReplaceChild("bone238", CubeListBuilder.create().texOffs(87, 85).mirror().addBox(-1.5F, -1.25F, 0.0F, 3.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(5.0F, -9.65F, -17.7736F)); - PartDefinition bone181 = north_right.addOrReplaceChild("bone181", CubeListBuilder.create().texOffs(82, 11).addBox(-1.0F, -0.4833F, -2.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(66, 68).addBox(-3.0F, -0.4833F, -5.5271F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(66, 68).mirror().addBox(-3.0F, -0.4833F, -8.0271F, 6.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(56, 29).addBox(-6.0F, -0.0833F, -10.2771F, 9.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(0, 78).addBox(3.5F, -0.0833F, -10.2771F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(53, 81).mirror().addBox(1.5F, -0.0833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(62, 63).mirror().addBox(2.0F, -0.4833F, -2.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(53, 81).addBox(-3.5F, -0.0833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(47, 0).addBox(-4.5F, -0.0833F, -5.5271F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(77, 75).addBox(-6.25F, -0.0833F, -8.0271F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(66, 77).addBox(-6.5F, -0.1833F, -8.2771F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(76, 72).addBox(-4.5F, -0.5833F, -4.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(40, 39).addBox(3.5F, -0.0833F, -7.7771F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)) - .texOffs(62, 63).addBox(-3.0F, -0.4833F, -2.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + PartDefinition bone239 = north_right.addOrReplaceChild("bone239", CubeListBuilder.create(), PartPose.offset(5.0F, -9.4F, -17.2736F)); - PartDefinition bone179_r1 = bone181.addOrReplaceChild("bone179_r1", CubeListBuilder.create().texOffs(18, 64).mirror().addBox(-0.75F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.5F, -0.0833F, -2.0271F, 0.0F, -2.5744F, 0.0F)); + PartDefinition bone180_r1 = bone239.addOrReplaceChild("bone180_r1", CubeListBuilder.create().texOffs(85, 7).addBox(-1.5F, -1.5F, 0.25F, 3.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, -0.0873F)); - PartDefinition bone179_r2 = bone181.addOrReplaceChild("bone179_r2", CubeListBuilder.create().texOffs(18, 64).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.5F, -0.0833F, -2.0271F, 0.0F, 1.0472F, 0.0F)); + PartDefinition south_right = controls.addOrReplaceChild("south_right", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -7.0F, 0.0F, 0.0F, 2.0944F, 0.0F)); - PartDefinition bone178_r1 = bone181.addOrReplaceChild("bone178_r1", CubeListBuilder.create().texOffs(18, 64).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.0833F, -1.5271F, 0.0F, -0.6545F, 0.0F)); + PartDefinition bone183 = south_right.addOrReplaceChild("bone183", CubeListBuilder.create().texOffs(21, 49).addBox(-1.5F, -0.0833F, -5.0271F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(47, 0).addBox(-3.5F, -0.4833F, -10.2771F, 7.0F, 1.0F, 5.0F, new CubeDeformation(0.0F)) + .texOffs(84, 12).addBox(-1.0F, -0.0833F, -2.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(69, 51).addBox(-0.5F, -0.4833F, -1.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(82, 72).mirror().addBox(-6.25F, -0.5833F, -9.5271F, 2.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(82, 72).addBox(4.25F, -0.5833F, -9.5271F, 2.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone182 = bone181.addOrReplaceChild("bone182", CubeListBuilder.create().texOffs(56, 23).addBox(-0.625F, -1.5F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(35, 83).addBox(-0.375F, -2.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(4.125F, -0.0833F, -4.7771F, -0.6981F, 0.0F, 0.0F)); + PartDefinition bone246 = bone183.addOrReplaceChild("bone246", CubeListBuilder.create().texOffs(85, 24).addBox(-0.75F, -1.0F, -1.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(1.5F, -0.5083F, -7.7771F)); - PartDefinition south_right = controls.addOrReplaceChild("south_right", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -7.0F, 0.0F, 0.0F, 2.0944F, 0.0F)); + PartDefinition bone247 = bone183.addOrReplaceChild("bone247", CubeListBuilder.create().texOffs(90, 89).addBox(-0.25F, -0.5F, -1.25F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(90, 89).addBox(1.75F, -0.5F, -1.25F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(90, 89).addBox(1.75F, -0.5F, -3.25F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(90, 89).addBox(-0.25F, -0.5F, -3.25F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(-2.5F, -0.5083F, -6.2771F)); - PartDefinition bone183 = south_right.addOrReplaceChild("bone183", CubeListBuilder.create().texOffs(66, 72).addBox(-1.5F, -0.0833F, -5.0271F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(38, 54).addBox(-3.5F, -0.4833F, -10.2771F, 7.0F, 1.0F, 5.0F, new CubeDeformation(0.0F)) - .texOffs(0, 50).addBox(-2.75F, -0.5833F, -7.0271F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(0, 50).addBox(0.75F, -0.5833F, -7.0271F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(81, 66).addBox(0.75F, -0.5833F, -9.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(39, 76).addBox(-0.5F, -0.5833F, -7.0271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(0, 82).addBox(-1.0F, -0.0833F, -2.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(82, 0).addBox(-1.0F, -0.7333F, -4.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(0, 46).addBox(2.25F, -0.4833F, -3.5271F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.25F)) - .texOffs(0, 46).mirror().addBox(-3.25F, -0.4833F, -3.5271F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.25F)).mirror(false) - .texOffs(76, 30).mirror().addBox(-6.25F, -0.0833F, -9.5271F, 2.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(76, 30).addBox(4.25F, -0.0833F, -9.5271F, 2.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - - PartDefinition bone181_r1 = bone183.addOrReplaceChild("bone181_r1", CubeListBuilder.create().texOffs(81, 70).addBox(-1.0F, -0.5F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.75F, -0.4833F, -8.5271F, 0.0F, -0.4363F, 0.0F)); - - PartDefinition bone184_r1 = bone183.addOrReplaceChild("bone184_r1", CubeListBuilder.create().texOffs(38, 54).addBox(-0.5F, -2.0F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(75, 18).addBox(1.0F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(75, 18).addBox(-2.5F, -1.0F, 0.0F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.25F, -0.5833F, -6.5271F, -0.6981F, 0.0F, 0.0F)); + PartDefinition bone235 = bone183.addOrReplaceChild("bone235", CubeListBuilder.create().texOffs(73, 32).addBox(-3.25F, -22.7059F, -18.0236F, 2.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)) + .texOffs(69, 66).addBox(-8.0F, -22.7059F, -18.0236F, 4.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offset(4.5F, 22.1975F, 7.9965F)); + + PartDefinition bone133 = bone183.addOrReplaceChild("bone133", CubeListBuilder.create().texOffs(0, 87).addBox(-1.0F, -0.5F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -0.2333F, -3.5271F)); + + PartDefinition bone134 = bone183.addOrReplaceChild("bone134", CubeListBuilder.create().texOffs(70, 90).addBox(-1.0F, -1.0F, -1.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.2667F, -3.5271F)); + + PartDefinition bone260 = bone183.addOrReplaceChild("bone260", CubeListBuilder.create().texOffs(76, 89).mirror().addBox(-3.25F, -0.75F, -1.5F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.25F)).mirror(false) + .texOffs(76, 89).addBox(2.25F, -0.75F, -1.5F, 1.0F, 1.0F, 2.0F, new CubeDeformation(0.25F)), PartPose.offsetAndRotation(0.0F, 0.0167F, -2.0271F, -0.2618F, 0.0F, 0.0F)); PartDefinition south = controls.addOrReplaceChild("south", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -7.0F, 0.0F, 0.0F, 3.1416F, 0.0F)); - PartDefinition bone184 = south.addOrReplaceChild("bone184", CubeListBuilder.create().texOffs(50, 14).addBox(-3.5F, -0.4833F, -10.2771F, 7.0F, 1.0F, 5.0F, new CubeDeformation(0.0F)) - .texOffs(47, 4).addBox(-2.5F, -0.8833F, -6.7771F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(16, 49).addBox(-2.0F, -0.4833F, -2.5271F, 4.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(74, 48).addBox(1.75F, 0.1667F, -4.2771F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.25F)) - .texOffs(74, 48).mirror().addBox(-2.75F, 0.1667F, -4.2771F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.25F)).mirror(false) - .texOffs(75, 79).addBox(-1.0F, -1.2333F, -4.5271F, 2.0F, 2.0F, 2.0F, new CubeDeformation(-0.25F)) - .texOffs(62, 81).mirror().addBox(-6.25F, -0.0833F, -9.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(62, 81).addBox(4.25F, -0.0833F, -9.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + PartDefinition bone184 = south.addOrReplaceChild("bone184", CubeListBuilder.create().texOffs(47, 0).addBox(-3.5F, -0.4833F, -10.2771F, 7.0F, 1.0F, 5.0F, new CubeDeformation(0.0F)) + .texOffs(74, 48).addBox(0.0F, -1.4833F, -9.2771F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(90, 70).addBox(-1.375F, -0.9833F, -9.2771F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(90, 70).addBox(-2.625F, -0.9833F, -9.2771F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(82, 66).addBox(-3.25F, -0.5833F, -8.0271F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(49, 80).addBox(-2.0F, -0.4833F, -2.5271F, 4.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(0, 29).mirror().addBox(-3.5F, -0.5833F, -4.2771F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(0, 29).addBox(1.5F, -0.5833F, -4.2771F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(21, 49).addBox(-1.5F, -0.0833F, -5.0271F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(34, 89).addBox(4.25F, -0.5834F, -9.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(18, 85).addBox(4.25F, -1.0833F, -9.5271F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(34, 89).mirror().addBox(-6.25F, -0.5834F, -9.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(18, 85).mirror().addBox(-6.25F, -1.0833F, -9.5271F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + + PartDefinition bone183_r1 = bone184.addOrReplaceChild("bone183_r1", CubeListBuilder.create().texOffs(58, 88).addBox(-1.0F, -1.0F, -1.0F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.5F, -0.5833F, -7.7771F, 0.0F, -0.6109F, 0.0F)); + + PartDefinition bone222 = bone184.addOrReplaceChild("bone222", CubeListBuilder.create().texOffs(0, 59).addBox(-0.75F, -1.0F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(86, 16).addBox(-1.25F, -1.0F, -0.75F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-2.25F, -1.0833F, -7.2771F, 0.0F, -0.48F, 0.0F)); + + PartDefinition bone223 = bone184.addOrReplaceChild("bone223", CubeListBuilder.create().texOffs(0, 59).addBox(-0.75F, -1.0F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(86, 16).addBox(-1.25F, -1.0F, -0.75F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.75F, -0.3333F, -7.2771F, 0.0F, 0.829F, 0.0F)); + + PartDefinition bone168 = bone184.addOrReplaceChild("bone168", CubeListBuilder.create(), PartPose.offset(2.5F, -0.8333F, -3.7771F)); - PartDefinition bone182_r1 = bone184.addOrReplaceChild("bone182_r1", CubeListBuilder.create().texOffs(0, 28).addBox(-0.25F, -2.0F, 0.0F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.25F, -0.0833F, -3.7771F, 0.0F, -0.5672F, 0.0F)); + PartDefinition bone182_r1 = bone168.addOrReplaceChild("bone182_r1", CubeListBuilder.create().texOffs(89, 57).addBox(-0.25F, -1.0F, 0.0F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.6109F, 0.0F)); - PartDefinition bone181_r2 = bone184.addOrReplaceChild("bone181_r2", CubeListBuilder.create().texOffs(0, 28).mirror().addBox(-1.75F, -2.0F, 0.0F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.25F, -0.0833F, -3.7771F, 0.0F, 0.5672F, 0.0F)); + PartDefinition bone167 = bone184.addOrReplaceChild("bone167", CubeListBuilder.create(), PartPose.offset(-2.5F, -0.8333F, -3.7771F)); - PartDefinition bone183_r1 = bone184.addOrReplaceChild("bone183_r1", CubeListBuilder.create().texOffs(58, 54).addBox(-1.5F, -1.0F, 0.0F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-1.5F, -0.3833F, -9.5271F, -0.6981F, 0.0F, 0.0F)); + PartDefinition bone183_r2 = bone167.addOrReplaceChild("bone183_r2", CubeListBuilder.create().texOffs(89, 57).mirror().addBox(-1.75F, -1.0F, 0.0F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.6109F, 0.0F)); - PartDefinition bone182_r2 = bone184.addOrReplaceChild("bone182_r2", CubeListBuilder.create().texOffs(71, 51).addBox(-1.5F, -0.5F, -1.5F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(1.5F, -0.8833F, -8.2771F, 0.0F, -0.0873F, 0.0F)); + PartDefinition bone131 = bone184.addOrReplaceChild("bone131", CubeListBuilder.create().texOffs(60, 83).addBox(-1.0F, -1.0F, -1.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0167F, -3.7771F)); + + PartDefinition bone132 = bone184.addOrReplaceChild("bone132", CubeListBuilder.create().texOffs(70, 90).addBox(-1.0F, -1.0F, -1.0F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0167F, -3.7771F)); PartDefinition south_left = controls.addOrReplaceChild("south_left", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -7.0F, 0.0F, 0.0F, -2.0944F, 0.0F)); - PartDefinition bone185 = south_left.addOrReplaceChild("bone185", CubeListBuilder.create().texOffs(62, 63).addBox(-3.0F, -0.4833F, -2.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(53, 81).addBox(-3.5F, -0.0833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(53, 81).mirror().addBox(1.5F, -0.0833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(62, 63).mirror().addBox(2.0F, -0.4833F, -2.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(53, 81).mirror().addBox(-1.0F, -0.0833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(56, 21).addBox(-1.5F, -0.0833F, -10.0271F, 3.0F, 1.0F, 6.0F, new CubeDeformation(0.0F)) - .texOffs(70, 13).addBox(-6.0F, -0.0833F, -10.0271F, 4.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(32, 49).addBox(2.5F, -0.4833F, -9.5271F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(55, 77).mirror().addBox(2.0F, -0.0833F, -6.0271F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(55, 77).addBox(-5.0F, -0.0833F, -6.0271F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(16, 46).addBox(-3.5F, -0.5833F, -5.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(16, 46).mirror().addBox(2.5F, -0.5833F, -5.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(62, 63).mirror().addBox(-0.5F, -0.4833F, -2.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + PartDefinition bone185 = south_left.addOrReplaceChild("bone185", CubeListBuilder.create().texOffs(13, 73).addBox(-5.0F, -0.2333F, -10.0271F, 3.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)) + .texOffs(59, 58).addBox(-1.5F, -0.4833F, -10.0271F, 3.0F, 1.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(0, 59).addBox(-1.25F, -0.5833F, -10.2771F, 3.0F, 1.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(90, 89).addBox(-3.5F, -0.7333F, -9.2771F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(90, 89).addBox(-3.5F, -0.7333F, -7.7771F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(26, 39).addBox(-3.5F, -0.4833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(26, 39).mirror().addBox(1.5F, -0.4833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(26, 39).mirror().addBox(-1.0F, -0.4833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(69, 85).addBox(3.0F, -1.4833F, -9.0271F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(82, 77).mirror().addBox(2.0F, -0.0833F, -5.5271F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(82, 77).addBox(-5.0F, -0.0833F, -5.5271F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + + PartDefinition bone204 = bone185.addOrReplaceChild("bone204", CubeListBuilder.create(), PartPose.offset(-2.5F, -0.0833F, -2.0271F)); + + PartDefinition bone181_r1 = bone204.addOrReplaceChild("bone181_r1", CubeListBuilder.create().texOffs(19, 79).mirror().addBox(-0.75F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 2.3562F, 0.0F)); + + PartDefinition bone205 = bone185.addOrReplaceChild("bone205", CubeListBuilder.create(), PartPose.offset(0.0F, -0.0833F, -2.0271F)); + + PartDefinition bone182_r2 = bone205.addOrReplaceChild("bone182_r2", CubeListBuilder.create().texOffs(19, 79).mirror().addBox(-0.75F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 2.3562F, 0.0F)); + + PartDefinition bone206 = bone185.addOrReplaceChild("bone206", CubeListBuilder.create(), PartPose.offset(2.5F, -0.0833F, -2.0271F)); + + PartDefinition bone183_r3 = bone206.addOrReplaceChild("bone183_r3", CubeListBuilder.create().texOffs(19, 79).mirror().addBox(-0.75F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 2.3562F, 0.0F)); - PartDefinition bone181_r3 = bone185.addOrReplaceChild("bone181_r3", CubeListBuilder.create().texOffs(18, 64).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.0833F, -2.0271F, 0.0F, 1.0472F, 0.0F)); + PartDefinition bone207 = bone185.addOrReplaceChild("bone207", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.5F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.25F, -0.4833F, -5.0271F, -0.6981F, 0.0F, 0.0F)); - PartDefinition bone184_r2 = bone185.addOrReplaceChild("bone184_r2", CubeListBuilder.create().texOffs(0, 24).addBox(-0.75F, -2.0F, 0.0F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.0833F, -8.5271F, -0.6981F, 0.0F, 0.0F)); + PartDefinition bone208 = bone185.addOrReplaceChild("bone208", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.5F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.25F, -0.4833F, -6.0271F, -0.6981F, 0.0F, 0.0F)); - PartDefinition bone185_r1 = bone185.addOrReplaceChild("bone185_r1", CubeListBuilder.create().texOffs(0, 14).addBox(-0.75F, -1.5F, 0.0F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-3.0F, -0.0833F, -8.0271F, -0.6981F, 0.0F, 0.0F)); + PartDefinition bone209 = bone185.addOrReplaceChild("bone209", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.5F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.25F, -0.4833F, -7.0271F, -0.6981F, 0.0F, 0.0F)); - PartDefinition bone181_r4 = bone185.addOrReplaceChild("bone181_r4", CubeListBuilder.create().texOffs(18, 64).mirror().addBox(-0.75F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.5F, -0.0833F, -2.0271F, 0.0F, 2.3562F, 0.0F)); + PartDefinition bone224 = bone185.addOrReplaceChild("bone224", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.5F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.25F, -0.4833F, -8.0271F, -0.6981F, 0.0F, 0.0F)); - PartDefinition bone180_r1 = bone185.addOrReplaceChild("bone180_r1", CubeListBuilder.create().texOffs(18, 64).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.5F, -0.0833F, -2.0271F, 0.0F, 1.0472F, 0.0F)); + PartDefinition bone225 = bone185.addOrReplaceChild("bone225", CubeListBuilder.create().texOffs(17, 90).addBox(-0.25F, -1.5F, 0.0F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.25F, -0.4833F, -9.0271F, -0.6981F, 0.0F, 0.0F)); - PartDefinition bone187 = bone185.addOrReplaceChild("bone187", CubeListBuilder.create().texOffs(0, 18).addBox(-1.0F, -4.0F, -0.5F, 2.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(50, 14).addBox(-0.5F, -3.0F, 0.0F, 1.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(4.0F, -0.4833F, -8.0271F, -0.829F, 0.0F, 0.0F)); + PartDefinition bone187 = bone185.addOrReplaceChild("bone187", CubeListBuilder.create(), PartPose.offsetAndRotation(4.0F, -1.4833F, -8.0271F, 0.0F, 0.5236F, 0.0F)); + + PartDefinition bone185_r1 = bone187.addOrReplaceChild("bone185_r1", CubeListBuilder.create().texOffs(26, 34).addBox(-0.25F, -0.9F, 0.0F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.1F, -0.25F, 0.0873F, 0.0F, 0.0F)); + + PartDefinition bone190 = bone185.addOrReplaceChild("bone190", CubeListBuilder.create().texOffs(82, 3).addBox(-3.5F, -22.8808F, -9.7736F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(-1.25F, 22.6975F, 3.9965F)); + + PartDefinition bone189 = bone185.addOrReplaceChild("bone189", CubeListBuilder.create().texOffs(82, 3).mirror().addBox(0.5F, -22.8808F, -9.7736F, 3.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(1.25F, 22.6975F, 3.9965F)); PartDefinition north_left = controls.addOrReplaceChild("north_left", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -7.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone179 = north_left.addOrReplaceChild("bone179", CubeListBuilder.create().texOffs(66, 63).addBox(-1.5F, -0.0833F, -10.0271F, 5.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(39, 79).addBox(2.5F, -1.0833F, -9.7771F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(39, 79).mirror().addBox(-1.5F, -1.0833F, -9.7771F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(8, 79).addBox(4.0F, -0.0833F, -10.0271F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(8, 79).addBox(-3.0F, -0.0833F, -10.0271F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(82, 0).addBox(-6.0F, -0.7333F, -9.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(74, 56).addBox(-6.5F, -0.0833F, -10.0271F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(82, 11).addBox(-1.0F, -0.4833F, -2.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(38, 61).addBox(-4.0F, -0.4833F, -5.2771F, 8.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(56, 33).addBox(-4.0F, -0.4833F, -6.7771F, 8.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(62, 63).addBox(-3.0F, -0.4833F, -2.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) - .texOffs(53, 81).addBox(-3.5F, -0.0833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(53, 81).mirror().addBox(1.5F, -0.0833F, -3.0271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(62, 63).mirror().addBox(2.0F, -0.4833F, -2.5271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + PartDefinition bone179 = north_left.addOrReplaceChild("bone179", CubeListBuilder.create().texOffs(56, 45).addBox(-3.0F, -0.2333F, -10.5271F, 6.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)) + .texOffs(47, 7).addBox(0.0F, -0.3333F, -10.2771F, 2.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(67, 90).addBox(-1.5F, -2.8333F, -9.2771F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(39, 73).addBox(-1.25F, -1.8333F, -8.7771F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(25, 88).addBox(-2.0F, -0.4833F, -9.7771F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(35, 78).addBox(3.5F, -0.0083F, -10.5271F, 1.0F, 1.0F, 4.0F, new CubeDeformation(0.0F)) + .texOffs(90, 70).addBox(-5.5F, -0.5833F, -9.0271F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(59, 54).addBox(-4.0F, -0.4833F, -5.2771F, 8.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(59, 54).addBox(-4.0F, -0.4833F, -6.7771F, 8.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(26, 39).addBox(-3.5F, -0.2333F, -2.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) + .texOffs(26, 39).mirror().addBox(1.5F, -0.2333F, -2.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false) + .texOffs(26, 39).mirror().addBox(-1.0F, -0.2333F, -2.5271F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); + + PartDefinition bone191 = bone179.addOrReplaceChild("bone191", CubeListBuilder.create().texOffs(84, 44).addBox(2.5F, -22.8058F, -17.2736F, 1.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(1.25F, 22.6975F, 6.7465F)); + + PartDefinition bone162 = bone179.addOrReplaceChild("bone162", CubeListBuilder.create().texOffs(9, 79).addBox(-1.5F, -0.5F, -1.5F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(-5.0F, 0.4167F, -8.5271F)); + + PartDefinition bone161 = bone179.addOrReplaceChild("bone161", CubeListBuilder.create().texOffs(19, 92).addBox(-1.5F, -0.5F, -1.5F, 3.0F, 1.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(-5.0F, 0.4167F, -8.5271F)); + + PartDefinition bone138 = bone179.addOrReplaceChild("bone138", CubeListBuilder.create().texOffs(95, 64).mirror().addBox(-1.5F, -0.5F, -0.5F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(-2.0F, -0.0083F, -4.2771F)); - PartDefinition bone181_r5 = bone179.addOrReplaceChild("bone181_r5", CubeListBuilder.create().texOffs(18, 60).addBox(0.75F, -1.75F, -0.25F, 1.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(-0.25F, -0.2333F, -8.5271F, -0.3491F, 0.0F, 0.0F)); + PartDefinition bone160 = bone179.addOrReplaceChild("bone160", CubeListBuilder.create().texOffs(95, 66).mirror().addBox(-0.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(0.0F, -0.0083F, -4.2771F)); - PartDefinition bone180_r2 = bone179.addOrReplaceChild("bone180_r2", CubeListBuilder.create().texOffs(18, 64).mirror().addBox(-0.75F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-2.5F, -0.0833F, -2.0271F, 0.0F, 2.3562F, 0.0F)); + PartDefinition bone137 = bone179.addOrReplaceChild("bone137", CubeListBuilder.create().texOffs(95, 64).addBox(-1.5F, -0.5F, -0.5F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(2.0F, -0.0083F, -4.2771F)); - PartDefinition bone179_r3 = bone179.addOrReplaceChild("bone179_r3", CubeListBuilder.create().texOffs(18, 64).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(2.5F, -0.0833F, -2.0271F, 0.0F, 1.0472F, 0.0F)); + PartDefinition bone158 = bone179.addOrReplaceChild("bone158", CubeListBuilder.create().texOffs(95, 64).mirror().addBox(-1.5F, -0.5F, -0.5F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(-2.0F, -0.0083F, -5.7771F)); - PartDefinition bone178_r2 = bone179.addOrReplaceChild("bone178_r2", CubeListBuilder.create().texOffs(18, 64).addBox(-0.25F, -0.5F, -0.75F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.0833F, -1.5271F, 0.0F, -0.6545F, 0.0F)); + PartDefinition bone157 = bone179.addOrReplaceChild("bone157", CubeListBuilder.create().texOffs(95, 66).mirror().addBox(-0.5F, -0.5F, -0.5F, 1.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(0.0F, -0.0083F, -5.7771F)); - PartDefinition bone180 = bone179.addOrReplaceChild("bone180", CubeListBuilder.create().texOffs(83, 16).addBox(0.0F, -23.5309F, -16.2736F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)) - .texOffs(82, 82).addBox(-0.5F, -23.5309F, -16.7736F, 2.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(-0.25F, 23.1975F, 6.9965F)); + PartDefinition bone159 = bone179.addOrReplaceChild("bone159", CubeListBuilder.create().texOffs(95, 64).addBox(-1.5F, -0.5F, -0.5F, 3.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(2.0F, -0.0083F, -5.7771F)); + + PartDefinition bone130 = bone179.addOrReplaceChild("bone130", CubeListBuilder.create(), PartPose.offset(-2.5F, -0.7333F, -1.5271F)); + + PartDefinition bone186_r1 = bone130.addOrReplaceChild("bone186_r1", CubeListBuilder.create().texOffs(0, 14).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + + PartDefinition bone185_r2 = bone130.addOrReplaceChild("bone185_r2", CubeListBuilder.create().texOffs(0, 14).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + + PartDefinition bone129 = bone179.addOrReplaceChild("bone129", CubeListBuilder.create(), PartPose.offset(0.0F, -0.7333F, -1.5271F)); + + PartDefinition bone185_r3 = bone129.addOrReplaceChild("bone185_r3", CubeListBuilder.create().texOffs(0, 14).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + + PartDefinition bone184_r2 = bone129.addOrReplaceChild("bone184_r2", CubeListBuilder.create().texOffs(0, 14).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + + PartDefinition bone195 = bone179.addOrReplaceChild("bone195", CubeListBuilder.create(), PartPose.offset(2.5F, -0.7333F, -1.5271F)); + + PartDefinition bone184_r3 = bone195.addOrReplaceChild("bone184_r3", CubeListBuilder.create().texOffs(0, 14).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + + PartDefinition bone183_r4 = bone195.addOrReplaceChild("bone183_r4", CubeListBuilder.create().texOffs(0, 14).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + + PartDefinition bone188 = bone179.addOrReplaceChild("bone188", CubeListBuilder.create(), PartPose.offset(-2.5F, -0.7333F, -1.5271F)); + + PartDefinition bone184_r4 = bone188.addOrReplaceChild("bone184_r4", CubeListBuilder.create().texOffs(0, 24).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + + PartDefinition bone183_r5 = bone188.addOrReplaceChild("bone183_r5", CubeListBuilder.create().texOffs(0, 24).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + + PartDefinition bone180 = bone179.addOrReplaceChild("bone180", CubeListBuilder.create(), PartPose.offset(0.0F, -0.7333F, -1.5271F)); + + PartDefinition bone182_r3 = bone180.addOrReplaceChild("bone182_r3", CubeListBuilder.create().texOffs(56, 23).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + + PartDefinition bone181_r2 = bone180.addOrReplaceChild("bone181_r2", CubeListBuilder.create().texOffs(56, 23).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); + + PartDefinition bone186 = bone179.addOrReplaceChild("bone186", CubeListBuilder.create(), PartPose.offset(2.5F, -0.7333F, -1.5271F)); + + PartDefinition bone183_r6 = bone186.addOrReplaceChild("bone183_r6", CubeListBuilder.create().texOffs(0, 46).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, 0.7854F, 0.0F)); + + PartDefinition bone182_r4 = bone186.addOrReplaceChild("bone182_r4", CubeListBuilder.create().texOffs(0, 46).addBox(-1.0F, -2.0F, 0.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.7854F, 0.0F)); PartDefinition base_console = partdefinition.addOrReplaceChild("base_console", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); PartDefinition bone61 = base_console.addOrReplaceChild("bone61", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -8.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone61_r1 = bone61.addOrReplaceChild("bone61_r1", CubeListBuilder.create().texOffs(23, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); + PartDefinition bone61_r1 = bone61.addOrReplaceChild("bone61_r1", CubeListBuilder.create().texOffs(29, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); PartDefinition bone62 = bone61.addOrReplaceChild("bone62", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone62_r1 = bone62.addOrReplaceChild("bone62_r1", CubeListBuilder.create().texOffs(23, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); + PartDefinition bone62_r1 = bone62.addOrReplaceChild("bone62_r1", CubeListBuilder.create().texOffs(29, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); PartDefinition bone63 = bone62.addOrReplaceChild("bone63", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone63_r1 = bone63.addOrReplaceChild("bone63_r1", CubeListBuilder.create().texOffs(23, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); + PartDefinition bone63_r1 = bone63.addOrReplaceChild("bone63_r1", CubeListBuilder.create().texOffs(29, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); PartDefinition bone64 = bone63.addOrReplaceChild("bone64", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone64_r1 = bone64.addOrReplaceChild("bone64_r1", CubeListBuilder.create().texOffs(23, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); + PartDefinition bone64_r1 = bone64.addOrReplaceChild("bone64_r1", CubeListBuilder.create().texOffs(29, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); PartDefinition bone65 = bone64.addOrReplaceChild("bone65", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone65_r1 = bone65.addOrReplaceChild("bone65_r1", CubeListBuilder.create().texOffs(23, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); + PartDefinition bone65_r1 = bone65.addOrReplaceChild("bone65_r1", CubeListBuilder.create().texOffs(29, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); PartDefinition bone66 = bone65.addOrReplaceChild("bone66", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone66_r1 = bone66.addOrReplaceChild("bone66_r1", CubeListBuilder.create().texOffs(23, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); + PartDefinition bone66_r1 = bone66.addOrReplaceChild("bone66_r1", CubeListBuilder.create().texOffs(29, 49).addBox(0.0F, -11.0F, 0.0F, 1.0F, 11.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 1.0F, -6.85F, 0.9599F, 0.0F, 0.0F)); - PartDefinition bone145 = base_console.addOrReplaceChild("bone145", CubeListBuilder.create().texOffs(46, 72).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -6.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone145 = base_console.addOrReplaceChild("bone145", CubeListBuilder.create().texOffs(0, 77).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -6.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone146 = bone145.addOrReplaceChild("bone146", CubeListBuilder.create().texOffs(46, 72).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone146 = bone145.addOrReplaceChild("bone146", CubeListBuilder.create().texOffs(0, 77).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone147 = bone146.addOrReplaceChild("bone147", CubeListBuilder.create().texOffs(46, 72).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone147 = bone146.addOrReplaceChild("bone147", CubeListBuilder.create().texOffs(0, 77).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone148 = bone147.addOrReplaceChild("bone148", CubeListBuilder.create().texOffs(46, 72).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone148 = bone147.addOrReplaceChild("bone148", CubeListBuilder.create().texOffs(0, 77).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone149 = bone148.addOrReplaceChild("bone149", CubeListBuilder.create().texOffs(46, 72).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone149 = bone148.addOrReplaceChild("bone149", CubeListBuilder.create().texOffs(0, 77).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone150 = bone149.addOrReplaceChild("bone150", CubeListBuilder.create().texOffs(46, 72).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone150 = bone149.addOrReplaceChild("bone150", CubeListBuilder.create().texOffs(0, 77).addBox(-1.0F, -7.0F, -7.6F, 2.0F, 7.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone31 = base_console.addOrReplaceChild("bone31", CubeListBuilder.create().texOffs(28, 76).addBox(-1.5F, -4.0F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -2.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone31 = base_console.addOrReplaceChild("bone31", CubeListBuilder.create().texOffs(75, 14).addBox(-1.5F, -3.975F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -2.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone32 = bone31.addOrReplaceChild("bone32", CubeListBuilder.create().texOffs(28, 76).addBox(-1.5F, -4.0F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone32 = bone31.addOrReplaceChild("bone32", CubeListBuilder.create().texOffs(75, 14).addBox(-1.5F, -3.975F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone33 = bone32.addOrReplaceChild("bone33", CubeListBuilder.create().texOffs(28, 76).addBox(-1.5F, -4.0F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone33 = bone32.addOrReplaceChild("bone33", CubeListBuilder.create().texOffs(75, 14).addBox(-1.5F, -3.975F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone34 = bone33.addOrReplaceChild("bone34", CubeListBuilder.create().texOffs(28, 76).addBox(-1.5F, -4.0F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone34 = bone33.addOrReplaceChild("bone34", CubeListBuilder.create().texOffs(75, 14).addBox(-1.5F, -3.975F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone35 = bone34.addOrReplaceChild("bone35", CubeListBuilder.create().texOffs(28, 76).addBox(-1.5F, -4.0F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone35 = bone34.addOrReplaceChild("bone35", CubeListBuilder.create().texOffs(75, 14).addBox(-1.5F, -3.975F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone36 = bone35.addOrReplaceChild("bone36", CubeListBuilder.create().texOffs(28, 76).addBox(-1.5F, -4.0F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone36 = bone35.addOrReplaceChild("bone36", CubeListBuilder.create().texOffs(75, 14).addBox(-1.5F, -3.975F, -8.6F, 3.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone151 = base_console.addOrReplaceChild("bone151", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -2.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone151_r1 = bone151.addOrReplaceChild("bone151_r1", CubeListBuilder.create().texOffs(55, 63).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); + PartDefinition bone151_r1 = bone151.addOrReplaceChild("bone151_r1", CubeListBuilder.create().texOffs(51, 64).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); PartDefinition bone152 = bone151.addOrReplaceChild("bone152", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone152_r1 = bone152.addOrReplaceChild("bone152_r1", CubeListBuilder.create().texOffs(55, 63).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); + PartDefinition bone152_r1 = bone152.addOrReplaceChild("bone152_r1", CubeListBuilder.create().texOffs(51, 64).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); PartDefinition bone153 = bone152.addOrReplaceChild("bone153", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone153_r1 = bone153.addOrReplaceChild("bone153_r1", CubeListBuilder.create().texOffs(55, 63).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); + PartDefinition bone153_r1 = bone153.addOrReplaceChild("bone153_r1", CubeListBuilder.create().texOffs(51, 64).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); PartDefinition bone154 = bone153.addOrReplaceChild("bone154", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone154_r1 = bone154.addOrReplaceChild("bone154_r1", CubeListBuilder.create().texOffs(55, 63).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); + PartDefinition bone154_r1 = bone154.addOrReplaceChild("bone154_r1", CubeListBuilder.create().texOffs(51, 64).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); PartDefinition bone155 = bone154.addOrReplaceChild("bone155", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone155_r1 = bone155.addOrReplaceChild("bone155_r1", CubeListBuilder.create().texOffs(55, 63).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); + PartDefinition bone155_r1 = bone155.addOrReplaceChild("bone155_r1", CubeListBuilder.create().texOffs(51, 64).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); PartDefinition bone156 = bone155.addOrReplaceChild("bone156", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone156_r1 = bone156.addOrReplaceChild("bone156_r1", CubeListBuilder.create().texOffs(55, 63).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); + PartDefinition bone156_r1 = bone156.addOrReplaceChild("bone156_r1", CubeListBuilder.create().texOffs(51, 64).addBox(-1.0F, 0.0F, -2.0F, 1.0F, 9.0F, 4.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -4.0F, -8.6F, -0.8727F, 0.0F, 0.0F)); - PartDefinition bone43 = base_console.addOrReplaceChild("bone43", CubeListBuilder.create().texOffs(81, 46).addBox(-1.0F, -2.0F, -22.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone43 = base_console.addOrReplaceChild("bone43", CubeListBuilder.create().texOffs(13, 61).addBox(-1.0F, -2.025F, -22.725F, 2.0F, 2.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(56, 21).addBox(-0.5F, -2.35F, -23.075F, 1.0F, 3.0F, 7.0F, new CubeDeformation(-0.25F)), PartPose.offsetAndRotation(0.0F, -14.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone44 = bone43.addOrReplaceChild("bone44", CubeListBuilder.create().texOffs(81, 46).addBox(-1.0F, -2.0F, -22.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone44 = bone43.addOrReplaceChild("bone44", CubeListBuilder.create().texOffs(13, 61).addBox(-1.0F, -2.025F, -22.725F, 2.0F, 2.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(56, 21).addBox(-0.5F, -2.35F, -23.075F, 1.0F, 3.0F, 7.0F, new CubeDeformation(-0.25F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone45 = bone44.addOrReplaceChild("bone45", CubeListBuilder.create().texOffs(81, 46).addBox(-1.0F, -2.0F, -22.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone45 = bone44.addOrReplaceChild("bone45", CubeListBuilder.create().texOffs(13, 61).addBox(-1.0F, -2.025F, -22.725F, 2.0F, 2.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(56, 21).addBox(-0.5F, -2.35F, -23.075F, 1.0F, 3.0F, 7.0F, new CubeDeformation(-0.25F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone46 = bone45.addOrReplaceChild("bone46", CubeListBuilder.create().texOffs(81, 46).addBox(-1.0F, -2.0F, -22.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone46 = bone45.addOrReplaceChild("bone46", CubeListBuilder.create().texOffs(13, 61).addBox(-1.0F, -2.025F, -22.725F, 2.0F, 2.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(56, 21).addBox(-0.5F, -2.35F, -23.075F, 1.0F, 3.0F, 7.0F, new CubeDeformation(-0.25F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone47 = bone46.addOrReplaceChild("bone47", CubeListBuilder.create().texOffs(81, 46).addBox(-1.0F, -2.0F, -22.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone47 = bone46.addOrReplaceChild("bone47", CubeListBuilder.create().texOffs(13, 61).addBox(-1.0F, -2.025F, -22.725F, 2.0F, 2.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(56, 21).addBox(-0.5F, -2.35F, -23.075F, 1.0F, 3.0F, 7.0F, new CubeDeformation(-0.25F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone48 = bone47.addOrReplaceChild("bone48", CubeListBuilder.create().texOffs(81, 46).addBox(-1.0F, -2.0F, -22.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone48 = bone47.addOrReplaceChild("bone48", CubeListBuilder.create().texOffs(13, 61).addBox(-1.0F, -2.025F, -22.725F, 2.0F, 2.0F, 6.0F, new CubeDeformation(0.0F)) + .texOffs(56, 21).addBox(-0.5F, -2.35F, -23.075F, 1.0F, 3.0F, 7.0F, new CubeDeformation(-0.25F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone7 = base_console.addOrReplaceChild("bone7", CubeListBuilder.create().texOffs(81, 41).addBox(-1.0F, -2.0F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone7 = base_console.addOrReplaceChild("bone7", CubeListBuilder.create().texOffs(51, 84).addBox(-1.0F, -1.975F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone8 = bone7.addOrReplaceChild("bone8", CubeListBuilder.create().texOffs(81, 41).addBox(-1.0F, -2.0F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone8 = bone7.addOrReplaceChild("bone8", CubeListBuilder.create().texOffs(51, 84).addBox(-1.0F, -1.975F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone9 = bone8.addOrReplaceChild("bone9", CubeListBuilder.create().texOffs(81, 41).addBox(-1.0F, -2.0F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone9 = bone8.addOrReplaceChild("bone9", CubeListBuilder.create().texOffs(51, 84).addBox(-1.0F, -1.975F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone10 = bone9.addOrReplaceChild("bone10", CubeListBuilder.create().texOffs(81, 41).addBox(-1.0F, -2.0F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone10 = bone9.addOrReplaceChild("bone10", CubeListBuilder.create().texOffs(51, 84).addBox(-1.0F, -1.975F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone11 = bone10.addOrReplaceChild("bone11", CubeListBuilder.create().texOffs(81, 41).addBox(-1.0F, -2.0F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone11 = bone10.addOrReplaceChild("bone11", CubeListBuilder.create().texOffs(51, 84).addBox(-1.0F, -1.975F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone12 = bone11.addOrReplaceChild("bone12", CubeListBuilder.create().texOffs(81, 41).addBox(-1.0F, -2.0F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone12 = bone11.addOrReplaceChild("bone12", CubeListBuilder.create().texOffs(51, 84).addBox(-1.0F, -1.975F, -9.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone49 = base_console.addOrReplaceChild("bone49", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -6.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone49_r1 = bone49.addOrReplaceChild("bone49_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); + PartDefinition bone50_r1 = bone49.addOrReplaceChild("bone50_r1", CubeListBuilder.create().texOffs(40, 24).addBox(-0.5F, -0.35F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(-0.25F)) + .texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); PartDefinition bone50 = bone49.addOrReplaceChild("bone50", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone50_r1 = bone50.addOrReplaceChild("bone50_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); + PartDefinition bone50_r2 = bone50.addOrReplaceChild("bone50_r2", CubeListBuilder.create().texOffs(40, 24).addBox(-0.5F, -0.35F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(-0.25F)) + .texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); PartDefinition bone51 = bone50.addOrReplaceChild("bone51", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone51_r1 = bone51.addOrReplaceChild("bone51_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); + PartDefinition bone50_r3 = bone51.addOrReplaceChild("bone50_r3", CubeListBuilder.create().texOffs(40, 24).addBox(-0.5F, -0.35F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(-0.25F)) + .texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); PartDefinition bone52 = bone51.addOrReplaceChild("bone52", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone52_r1 = bone52.addOrReplaceChild("bone52_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); + PartDefinition bone50_r4 = bone52.addOrReplaceChild("bone50_r4", CubeListBuilder.create().texOffs(40, 24).addBox(-0.5F, -0.35F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(-0.25F)) + .texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); PartDefinition bone53 = bone52.addOrReplaceChild("bone53", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone53_r1 = bone53.addOrReplaceChild("bone53_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); + PartDefinition bone50_r5 = bone53.addOrReplaceChild("bone50_r5", CubeListBuilder.create().texOffs(40, 24).addBox(-0.5F, -0.35F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(-0.25F)) + .texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); PartDefinition bone54 = bone53.addOrReplaceChild("bone54", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone54_r1 = bone54.addOrReplaceChild("bone54_r1", CubeListBuilder.create().texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); + PartDefinition bone50_r6 = bone54.addOrReplaceChild("bone50_r6", CubeListBuilder.create().texOffs(40, 24).addBox(-0.5F, -0.35F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(-0.25F)) + .texOffs(22, 34).addBox(-1.0F, 0.0F, 0.0F, 2.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.0F, -17.075F, 0.6283F, 0.0F, 0.0F)); PartDefinition bone19 = base_console.addOrReplaceChild("bone19", CubeListBuilder.create(), PartPose.offset(0.0F, -7.0F, 0.0F)); PartDefinition bone55 = bone19.addOrReplaceChild("bone55", CubeListBuilder.create().texOffs(0, 0).addBox(-8.5F, 0.0167F, -11.0271F, 17.0F, 1.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone55_r1 = bone55.addOrReplaceChild("bone55_r1", CubeListBuilder.create().texOffs(40, 24).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); + PartDefinition bone55_r1 = bone55.addOrReplaceChild("bone55_r1", CubeListBuilder.create().texOffs(40, 39).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); - PartDefinition bone55_r2 = bone55.addOrReplaceChild("bone55_r2", CubeListBuilder.create().texOffs(40, 24).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); + PartDefinition bone55_r2 = bone55.addOrReplaceChild("bone55_r2", CubeListBuilder.create().texOffs(40, 39).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); PartDefinition bone20 = bone19.addOrReplaceChild("bone20", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone21 = bone20.addOrReplaceChild("bone21", CubeListBuilder.create().texOffs(0, 0).addBox(-8.5F, 0.0167F, -11.0271F, 17.0F, 1.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone21_r1 = bone21.addOrReplaceChild("bone21_r1", CubeListBuilder.create().texOffs(40, 24).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); + PartDefinition bone21_r1 = bone21.addOrReplaceChild("bone21_r1", CubeListBuilder.create().texOffs(40, 39).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); - PartDefinition bone21_r2 = bone21.addOrReplaceChild("bone21_r2", CubeListBuilder.create().texOffs(40, 24).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); + PartDefinition bone21_r2 = bone21.addOrReplaceChild("bone21_r2", CubeListBuilder.create().texOffs(40, 39).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); PartDefinition bone22 = bone20.addOrReplaceChild("bone22", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone23 = bone22.addOrReplaceChild("bone23", CubeListBuilder.create().texOffs(0, 0).addBox(-8.5F, 0.0167F, -11.0271F, 17.0F, 1.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone23_r1 = bone23.addOrReplaceChild("bone23_r1", CubeListBuilder.create().texOffs(40, 24).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); + PartDefinition bone23_r1 = bone23.addOrReplaceChild("bone23_r1", CubeListBuilder.create().texOffs(40, 39).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); - PartDefinition bone23_r2 = bone23.addOrReplaceChild("bone23_r2", CubeListBuilder.create().texOffs(40, 24).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); + PartDefinition bone23_r2 = bone23.addOrReplaceChild("bone23_r2", CubeListBuilder.create().texOffs(40, 39).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); PartDefinition bone24 = bone22.addOrReplaceChild("bone24", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone56 = bone24.addOrReplaceChild("bone56", CubeListBuilder.create().texOffs(0, 0).addBox(-8.5F, 0.0167F, -11.0271F, 17.0F, 1.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone56_r1 = bone56.addOrReplaceChild("bone56_r1", CubeListBuilder.create().texOffs(40, 24).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); + PartDefinition bone56_r1 = bone56.addOrReplaceChild("bone56_r1", CubeListBuilder.create().texOffs(40, 39).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); - PartDefinition bone56_r2 = bone56.addOrReplaceChild("bone56_r2", CubeListBuilder.create().texOffs(40, 24).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); + PartDefinition bone56_r2 = bone56.addOrReplaceChild("bone56_r2", CubeListBuilder.create().texOffs(40, 39).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); PartDefinition bone57 = bone24.addOrReplaceChild("bone57", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone58 = bone57.addOrReplaceChild("bone58", CubeListBuilder.create().texOffs(0, 0).addBox(-8.5F, 0.0167F, -11.0271F, 17.0F, 1.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone58_r1 = bone58.addOrReplaceChild("bone58_r1", CubeListBuilder.create().texOffs(40, 24).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); + PartDefinition bone58_r1 = bone58.addOrReplaceChild("bone58_r1", CubeListBuilder.create().texOffs(40, 39).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); - PartDefinition bone58_r2 = bone58.addOrReplaceChild("bone58_r2", CubeListBuilder.create().texOffs(40, 24).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); + PartDefinition bone58_r2 = bone58.addOrReplaceChild("bone58_r2", CubeListBuilder.create().texOffs(40, 39).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); PartDefinition bone59 = bone57.addOrReplaceChild("bone59", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone60 = bone59.addOrReplaceChild("bone60", CubeListBuilder.create().texOffs(0, 0).addBox(-8.5F, 0.0167F, -11.0271F, 17.0F, 1.0F, 12.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.6975F, -7.2465F, 0.6981F, 0.0F, 0.0F)); - PartDefinition bone60_r1 = bone60.addOrReplaceChild("bone60_r1", CubeListBuilder.create().texOffs(40, 24).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); + PartDefinition bone60_r1 = bone60.addOrReplaceChild("bone60_r1", CubeListBuilder.create().texOffs(40, 39).mirror().addBox(0.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(-7.7553F, -0.0083F, -10.4723F, 0.0F, 0.4189F, 0.0F)); + + PartDefinition bone60_r2 = bone60.addOrReplaceChild("bone60_r2", CubeListBuilder.create().texOffs(40, 39).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); + + PartDefinition bone73 = base_console.addOrReplaceChild("bone73", CubeListBuilder.create().texOffs(42, 84).addBox(-1.0F, -10.025F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone74 = bone73.addOrReplaceChild("bone74", CubeListBuilder.create().texOffs(42, 84).addBox(-1.0F, -10.025F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone75 = bone74.addOrReplaceChild("bone75", CubeListBuilder.create().texOffs(42, 84).addBox(-1.0F, -10.025F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone76 = bone75.addOrReplaceChild("bone76", CubeListBuilder.create().texOffs(42, 84).addBox(-1.0F, -10.025F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone77 = bone76.addOrReplaceChild("bone77", CubeListBuilder.create().texOffs(42, 84).addBox(-1.0F, -10.025F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone78 = bone77.addOrReplaceChild("bone78", CubeListBuilder.create().texOffs(42, 84).addBox(-1.0F, -10.025F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone109 = base_console.addOrReplaceChild("bone109", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.975F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -45.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone110 = bone109.addOrReplaceChild("bone110", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.975F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone111 = bone110.addOrReplaceChild("bone111", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.975F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone112 = bone111.addOrReplaceChild("bone112", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.975F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone60_r2 = bone60.addOrReplaceChild("bone60_r2", CubeListBuilder.create().texOffs(40, 24).addBox(-1.0F, 0.0F, -0.5F, 1.0F, 1.0F, 13.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(7.7553F, -0.0083F, -10.4723F, 0.0F, -0.4189F, 0.0F)); + PartDefinition bone113 = bone112.addOrReplaceChild("bone113", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.975F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone73 = base_console.addOrReplaceChild("bone73", CubeListBuilder.create().texOffs(17, 81).addBox(-1.0F, -10.0F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -14.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone114 = bone113.addOrReplaceChild("bone114", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.975F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone74 = bone73.addOrReplaceChild("bone74", CubeListBuilder.create().texOffs(17, 81).addBox(-1.0F, -10.0F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone85 = base_console.addOrReplaceChild("bone85", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.025F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone75 = bone74.addOrReplaceChild("bone75", CubeListBuilder.create().texOffs(17, 81).addBox(-1.0F, -10.0F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone86 = bone85.addOrReplaceChild("bone86", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.025F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone76 = bone75.addOrReplaceChild("bone76", CubeListBuilder.create().texOffs(17, 81).addBox(-1.0F, -10.0F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone87 = bone86.addOrReplaceChild("bone87", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.025F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone77 = bone76.addOrReplaceChild("bone77", CubeListBuilder.create().texOffs(17, 81).addBox(-1.0F, -10.0F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone88 = bone87.addOrReplaceChild("bone88", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.025F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone78 = bone77.addOrReplaceChild("bone78", CubeListBuilder.create().texOffs(17, 81).addBox(-1.0F, -10.0F, -7.725F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone89 = bone88.addOrReplaceChild("bone89", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.025F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone109 = base_console.addOrReplaceChild("bone109", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.0F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -45.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone90 = bone89.addOrReplaceChild("bone90", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.025F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone110 = bone109.addOrReplaceChild("bone110", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.0F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone121 = base_console.addOrReplaceChild("bone121", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -12.475F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -51.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone111 = bone110.addOrReplaceChild("bone111", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.0F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone122 = bone121.addOrReplaceChild("bone122", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -12.475F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone112 = bone111.addOrReplaceChild("bone112", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.0F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone123 = bone122.addOrReplaceChild("bone123", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -12.475F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone113 = bone112.addOrReplaceChild("bone113", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.0F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone124 = bone123.addOrReplaceChild("bone124", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -12.475F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone114 = bone113.addOrReplaceChild("bone114", CubeListBuilder.create().texOffs(0, 0).addBox(-1.0F, -14.0F, -5.725F, 2.0F, 6.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone125 = bone124.addOrReplaceChild("bone125", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -12.475F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone85 = base_console.addOrReplaceChild("bone85", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.0F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -15.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone126 = bone125.addOrReplaceChild("bone126", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -12.475F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone86 = bone85.addOrReplaceChild("bone86", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.0F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone103 = base_console.addOrReplaceChild("bone103", CubeListBuilder.create().texOffs(33, 84).addBox(-1.0F, -10.475F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -47.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); - PartDefinition bone87 = bone86.addOrReplaceChild("bone87", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.0F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone104 = bone103.addOrReplaceChild("bone104", CubeListBuilder.create().texOffs(33, 84).addBox(-1.0F, -10.475F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone88 = bone87.addOrReplaceChild("bone88", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.0F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone105 = bone104.addOrReplaceChild("bone105", CubeListBuilder.create().texOffs(33, 84).addBox(-1.0F, -10.475F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone89 = bone88.addOrReplaceChild("bone89", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.0F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone106 = bone105.addOrReplaceChild("bone106", CubeListBuilder.create().texOffs(33, 84).addBox(-1.0F, -10.475F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone90 = bone89.addOrReplaceChild("bone90", CubeListBuilder.create().texOffs(41, 24).addBox(-1.0F, -11.0F, -5.725F, 2.0F, 3.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone107 = bone106.addOrReplaceChild("bone107", CubeListBuilder.create().texOffs(33, 84).addBox(-1.0F, -10.475F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone121 = base_console.addOrReplaceChild("bone121", CubeListBuilder.create().texOffs(26, 34).addBox(-1.0F, -11.5F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -51.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone108 = bone107.addOrReplaceChild("bone108", CubeListBuilder.create().texOffs(33, 84).addBox(-1.0F, -10.475F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone122 = bone121.addOrReplaceChild("bone122", CubeListBuilder.create().texOffs(26, 34).addBox(-1.0F, -11.5F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone115 = base_console.addOrReplaceChild("bone115", CubeListBuilder.create().texOffs(0, 46).addBox(-3.0F, -12.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -51.5F, 0.0F)); - PartDefinition bone123 = bone122.addOrReplaceChild("bone123", CubeListBuilder.create().texOffs(26, 34).addBox(-1.0F, -11.5F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone116 = bone115.addOrReplaceChild("bone116", CubeListBuilder.create().texOffs(0, 46).addBox(-3.0F, -12.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone124 = bone123.addOrReplaceChild("bone124", CubeListBuilder.create().texOffs(26, 34).addBox(-1.0F, -11.5F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone117 = bone116.addOrReplaceChild("bone117", CubeListBuilder.create().texOffs(0, 46).addBox(-3.0F, -12.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone125 = bone124.addOrReplaceChild("bone125", CubeListBuilder.create().texOffs(26, 34).addBox(-1.0F, -11.5F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone118 = bone117.addOrReplaceChild("bone118", CubeListBuilder.create().texOffs(0, 46).addBox(-3.0F, -12.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone126 = bone125.addOrReplaceChild("bone126", CubeListBuilder.create().texOffs(26, 34).addBox(-1.0F, -11.5F, -7.725F, 2.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone119 = bone118.addOrReplaceChild("bone119", CubeListBuilder.create().texOffs(0, 46).addBox(-3.0F, -12.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone103 = base_console.addOrReplaceChild("bone103", CubeListBuilder.create().texOffs(80, 61).addBox(-1.0F, -9.5F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -47.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + PartDefinition bone120 = bone119.addOrReplaceChild("bone120", CubeListBuilder.create().texOffs(0, 46).addBox(-3.0F, -12.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone104 = bone103.addOrReplaceChild("bone104", CubeListBuilder.create().texOffs(80, 61).addBox(-1.0F, -9.5F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone97 = base_console.addOrReplaceChild("bone97", CubeListBuilder.create().texOffs(27, 67).addBox(-2.5F, -10.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -47.5F, 0.0F)); - PartDefinition bone105 = bone104.addOrReplaceChild("bone105", CubeListBuilder.create().texOffs(80, 61).addBox(-1.0F, -9.5F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone98 = bone97.addOrReplaceChild("bone98", CubeListBuilder.create().texOffs(27, 67).addBox(-2.5F, -10.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone106 = bone105.addOrReplaceChild("bone106", CubeListBuilder.create().texOffs(80, 61).addBox(-1.0F, -9.5F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone99 = bone98.addOrReplaceChild("bone99", CubeListBuilder.create().texOffs(27, 67).addBox(-2.5F, -10.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone107 = bone106.addOrReplaceChild("bone107", CubeListBuilder.create().texOffs(80, 61).addBox(-1.0F, -9.5F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone100 = bone99.addOrReplaceChild("bone100", CubeListBuilder.create().texOffs(27, 67).addBox(-2.5F, -10.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone108 = bone107.addOrReplaceChild("bone108", CubeListBuilder.create().texOffs(80, 61).addBox(-1.0F, -9.5F, -6.7F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone101 = bone100.addOrReplaceChild("bone101", CubeListBuilder.create().texOffs(27, 67).addBox(-2.5F, -10.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone115 = base_console.addOrReplaceChild("bone115", CubeListBuilder.create().texOffs(45, 41).addBox(-3.0F, -11.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -51.5F, 0.0F)); + PartDefinition bone102 = bone101.addOrReplaceChild("bone102", CubeListBuilder.create().texOffs(27, 67).addBox(-2.5F, -10.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone116 = bone115.addOrReplaceChild("bone116", CubeListBuilder.create().texOffs(45, 41).addBox(-3.0F, -11.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone139 = base_console.addOrReplaceChild("bone139", CubeListBuilder.create(), PartPose.offset(0.0F, -52.0F, 0.0F)); - PartDefinition bone117 = bone116.addOrReplaceChild("bone117", CubeListBuilder.create().texOffs(45, 41).addBox(-3.0F, -11.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone80_r1 = bone139.addOrReplaceChild("bone80_r1", CubeListBuilder.create().texOffs(43, 89).addBox(-1.0F, -31.025F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(43, 89).addBox(-1.0F, -35.0F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 27.0F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone118 = bone117.addOrReplaceChild("bone118", CubeListBuilder.create().texOffs(45, 41).addBox(-3.0F, -11.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone140 = bone139.addOrReplaceChild("bone140", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone119 = bone118.addOrReplaceChild("bone119", CubeListBuilder.create().texOffs(45, 41).addBox(-3.0F, -11.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone80_r2 = bone140.addOrReplaceChild("bone80_r2", CubeListBuilder.create().texOffs(43, 89).addBox(-1.0F, -32.025F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(43, 89).addBox(-1.0F, -36.0F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 28.0F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone120 = bone119.addOrReplaceChild("bone120", CubeListBuilder.create().texOffs(45, 41).addBox(-3.0F, -11.5F, -7.2F, 6.0F, 4.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone141 = bone140.addOrReplaceChild("bone141", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone97 = base_console.addOrReplaceChild("bone97", CubeListBuilder.create().texOffs(66, 37).addBox(-2.5F, -9.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -47.5F, 0.0F)); + PartDefinition bone80_r3 = bone141.addOrReplaceChild("bone80_r3", CubeListBuilder.create().texOffs(43, 89).addBox(-1.0F, -32.025F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(43, 89).addBox(-1.0F, -36.0F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 28.0F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone98 = bone97.addOrReplaceChild("bone98", CubeListBuilder.create().texOffs(66, 37).addBox(-2.5F, -9.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone142 = bone141.addOrReplaceChild("bone142", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone99 = bone98.addOrReplaceChild("bone99", CubeListBuilder.create().texOffs(66, 37).addBox(-2.5F, -9.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone80_r4 = bone142.addOrReplaceChild("bone80_r4", CubeListBuilder.create().texOffs(43, 89).addBox(-1.0F, -32.025F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(43, 89).addBox(-1.0F, -36.0F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 28.0F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone100 = bone99.addOrReplaceChild("bone100", CubeListBuilder.create().texOffs(66, 37).addBox(-2.5F, -9.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone143 = bone142.addOrReplaceChild("bone143", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone101 = bone100.addOrReplaceChild("bone101", CubeListBuilder.create().texOffs(66, 37).addBox(-2.5F, -9.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone80_r5 = bone143.addOrReplaceChild("bone80_r5", CubeListBuilder.create().texOffs(43, 89).addBox(-1.0F, -32.025F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(43, 89).addBox(-1.0F, -36.0F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 28.0F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone102 = bone101.addOrReplaceChild("bone102", CubeListBuilder.create().texOffs(66, 37).addBox(-2.5F, -9.5F, -6.3F, 5.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone144 = bone143.addOrReplaceChild("bone144", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone139 = base_console.addOrReplaceChild("bone139", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -6.5F, -6.225F, 2.0F, 6.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -52.0F, 0.0F)); + PartDefinition bone80_r6 = bone144.addOrReplaceChild("bone80_r6", CubeListBuilder.create().texOffs(43, 89).addBox(-1.0F, -32.025F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(43, 89).addBox(-1.0F, -36.0F, -0.5044F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 28.0F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone140 = bone139.addOrReplaceChild("bone140", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -6.5F, -6.225F, 2.0F, 6.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone91 = base_console.addOrReplaceChild("bone91", CubeListBuilder.create(), PartPose.offset(0.0F, -52.5F, 0.0F)); - PartDefinition bone141 = bone140.addOrReplaceChild("bone141", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -6.5F, -6.225F, 2.0F, 6.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone91_r1 = bone91.addOrReplaceChild("bone91_r1", CubeListBuilder.create().texOffs(52, 7).addBox(-2.0F, -6.0F, 0.0F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -1.5F, -5.475F, 0.0044F, 0.0F, 0.0F)); - PartDefinition bone142 = bone141.addOrReplaceChild("bone142", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -6.5F, -6.225F, 2.0F, 6.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone92 = bone91.addOrReplaceChild("bone92", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone143 = bone142.addOrReplaceChild("bone143", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -6.5F, -6.225F, 2.0F, 6.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone91_r2 = bone92.addOrReplaceChild("bone91_r2", CubeListBuilder.create().texOffs(52, 7).addBox(-2.0F, -7.0F, 0.0044F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.5F, -5.475F, 0.0044F, 0.0F, 0.0F)); - PartDefinition bone144 = bone143.addOrReplaceChild("bone144", CubeListBuilder.create().texOffs(0, 34).addBox(-1.0F, -6.5F, -6.225F, 2.0F, 6.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone93 = bone92.addOrReplaceChild("bone93", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone91 = base_console.addOrReplaceChild("bone91", CubeListBuilder.create().texOffs(0, 46).addBox(-2.0F, -6.5F, -5.475F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -52.5F, 0.0F)); + PartDefinition bone91_r3 = bone93.addOrReplaceChild("bone91_r3", CubeListBuilder.create().texOffs(52, 7).addBox(-2.0F, -7.0F, 0.0044F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.5F, -5.475F, 0.0044F, 0.0F, 0.0F)); - PartDefinition bone92 = bone91.addOrReplaceChild("bone92", CubeListBuilder.create().texOffs(0, 46).addBox(-2.0F, -6.5F, -5.475F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone94 = bone93.addOrReplaceChild("bone94", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone93 = bone92.addOrReplaceChild("bone93", CubeListBuilder.create().texOffs(0, 46).addBox(-2.0F, -6.5F, -5.475F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone91_r4 = bone94.addOrReplaceChild("bone91_r4", CubeListBuilder.create().texOffs(52, 7).addBox(-2.0F, -7.0F, 0.0044F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.5F, -5.475F, 0.0044F, 0.0F, 0.0F)); - PartDefinition bone94 = bone93.addOrReplaceChild("bone94", CubeListBuilder.create().texOffs(0, 46).addBox(-2.0F, -6.5F, -5.475F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone95 = bone94.addOrReplaceChild("bone95", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone95 = bone94.addOrReplaceChild("bone95", CubeListBuilder.create().texOffs(0, 46).addBox(-2.0F, -6.5F, -5.475F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone91_r5 = bone95.addOrReplaceChild("bone91_r5", CubeListBuilder.create().texOffs(52, 7).addBox(-2.0F, -7.0F, 0.0044F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.5F, -5.475F, 0.0044F, 0.0F, 0.0F)); - PartDefinition bone96 = bone95.addOrReplaceChild("bone96", CubeListBuilder.create().texOffs(0, 46).addBox(-2.0F, -6.5F, -5.475F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone96 = bone95.addOrReplaceChild("bone96", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone79 = base_console.addOrReplaceChild("bone79", CubeListBuilder.create().texOffs(80, 35).addBox(-1.0F, -11.5F, -5.975F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -15.5F, 0.0F)); + PartDefinition bone91_r6 = bone96.addOrReplaceChild("bone91_r6", CubeListBuilder.create().texOffs(52, 7).addBox(-2.0F, -7.0F, 0.0044F, 4.0F, 6.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -0.5F, -5.475F, 0.0044F, 0.0F, 0.0F)); - PartDefinition bone79_r1 = bone79.addOrReplaceChild("bone79_r1", CubeListBuilder.create().texOffs(47, 0).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone79 = base_console.addOrReplaceChild("bone79", CubeListBuilder.create(), PartPose.offset(0.0F, -15.5F, 0.0F)); - PartDefinition bone80 = bone79.addOrReplaceChild("bone80", CubeListBuilder.create().texOffs(80, 35).addBox(-1.0F, -11.5F, -5.975F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone80_r7 = bone79.addOrReplaceChild("bone80_r7", CubeListBuilder.create().texOffs(50, 89).addBox(-1.0F, -2.25F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone80_r1 = bone80.addOrReplaceChild("bone80_r1", CubeListBuilder.create().texOffs(47, 0).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone79_r1 = bone79.addOrReplaceChild("bone79_r1", CubeListBuilder.create().texOffs(44, 54).addBox(-2.0F, -0.0131F, 0.0065F, 4.0F, 3.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -10.9869F, -5.4707F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone81 = bone80.addOrReplaceChild("bone81", CubeListBuilder.create().texOffs(80, 35).addBox(-1.0F, -11.5F, -5.975F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone80 = bone79.addOrReplaceChild("bone80", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone81_r1 = bone81.addOrReplaceChild("bone81_r1", CubeListBuilder.create().texOffs(47, 0).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone81_r1 = bone80.addOrReplaceChild("bone81_r1", CubeListBuilder.create().texOffs(50, 89).addBox(-1.0F, -2.25F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 54).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone82 = bone81.addOrReplaceChild("bone82", CubeListBuilder.create().texOffs(80, 35).addBox(-1.0F, -11.5F, -5.975F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone81 = bone80.addOrReplaceChild("bone81", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone82_r1 = bone82.addOrReplaceChild("bone82_r1", CubeListBuilder.create().texOffs(47, 0).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone82_r1 = bone81.addOrReplaceChild("bone82_r1", CubeListBuilder.create().texOffs(50, 89).addBox(-1.0F, -2.25F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 54).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone83 = bone82.addOrReplaceChild("bone83", CubeListBuilder.create().texOffs(80, 35).addBox(-1.0F, -11.5F, -5.975F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone82 = bone81.addOrReplaceChild("bone82", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone83_r1 = bone83.addOrReplaceChild("bone83_r1", CubeListBuilder.create().texOffs(47, 0).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone83_r1 = bone82.addOrReplaceChild("bone83_r1", CubeListBuilder.create().texOffs(50, 89).addBox(-1.0F, -2.25F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 54).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone84 = bone83.addOrReplaceChild("bone84", CubeListBuilder.create().texOffs(80, 35).addBox(-1.0F, -11.5F, -5.975F, 2.0F, 2.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone83 = bone82.addOrReplaceChild("bone83", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone84_r1 = bone84.addOrReplaceChild("bone84_r1", CubeListBuilder.create().texOffs(47, 0).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 7.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); + PartDefinition bone84_r1 = bone83.addOrReplaceChild("bone84_r1", CubeListBuilder.create().texOffs(50, 89).addBox(-1.0F, -2.25F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 54).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone67 = base_console.addOrReplaceChild("bone67", CubeListBuilder.create().texOffs(63, 0).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -14.0F, 0.0F)); + PartDefinition bone84 = bone83.addOrReplaceChild("bone84", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone68 = bone67.addOrReplaceChild("bone68", CubeListBuilder.create().texOffs(63, 0).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone85_r1 = bone84.addOrReplaceChild("bone85_r1", CubeListBuilder.create().texOffs(50, 89).addBox(-1.0F, -2.25F, -0.5F, 2.0F, 2.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 54).addBox(-2.0F, -2.5F, 0.0F, 4.0F, 3.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, -5.475F, -0.0044F, 0.0F, 0.0F)); - PartDefinition bone69 = bone68.addOrReplaceChild("bone69", CubeListBuilder.create().texOffs(63, 0).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone67 = base_console.addOrReplaceChild("bone67", CubeListBuilder.create().texOffs(66, 21).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -14.0F, 0.0F)); - PartDefinition bone70 = bone69.addOrReplaceChild("bone70", CubeListBuilder.create().texOffs(63, 0).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone68 = bone67.addOrReplaceChild("bone68", CubeListBuilder.create().texOffs(66, 21).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone71 = bone70.addOrReplaceChild("bone71", CubeListBuilder.create().texOffs(63, 0).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone69 = bone68.addOrReplaceChild("bone69", CubeListBuilder.create().texOffs(66, 21).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone72 = bone71.addOrReplaceChild("bone72", CubeListBuilder.create().texOffs(63, 0).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone70 = bone69.addOrReplaceChild("bone70", CubeListBuilder.create().texOffs(66, 21).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone71 = bone70.addOrReplaceChild("bone71", CubeListBuilder.create().texOffs(66, 21).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone72 = bone71.addOrReplaceChild("bone72", CubeListBuilder.create().texOffs(66, 21).addBox(-3.0F, -10.0F, -7.2F, 6.0F, 2.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone37 = base_console.addOrReplaceChild("bone37", CubeListBuilder.create(), PartPose.offset(0.0F, -7.0F, 0.0F)); @@ -2240,29 +754,53 @@ public static LayerDefinition createBodyLayer() { PartDefinition bone174 = bone173.addOrReplaceChild("bone174", CubeListBuilder.create().texOffs(0, 24).addBox(-8.0F, -7.0F, -13.85F, 16.0F, 1.0F, 8.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone25 = base_console.addOrReplaceChild("bone25", CubeListBuilder.create().texOffs(18, 67).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -6.0F, 0.0F)); + PartDefinition bone25 = base_console.addOrReplaceChild("bone25", CubeListBuilder.create().texOffs(69, 72).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -6.0F, 0.0F)); + + PartDefinition bone210 = bone25.addOrReplaceChild("bone210", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -3.5F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -3.5F, -5.825F)); + + PartDefinition bone211 = bone210.addOrReplaceChild("bone211", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -4.0F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 7.5F, 0.0F)); + + PartDefinition bone26 = bone25.addOrReplaceChild("bone26", CubeListBuilder.create().texOffs(69, 72).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone213 = bone26.addOrReplaceChild("bone213", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -7.0F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, -5.725F)); + + PartDefinition bone212 = bone26.addOrReplaceChild("bone212", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -7.0F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, -5.825F)); + + PartDefinition bone27 = bone26.addOrReplaceChild("bone27", CubeListBuilder.create().texOffs(69, 72).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone26 = bone25.addOrReplaceChild("bone26", CubeListBuilder.create().texOffs(18, 67).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone214 = bone27.addOrReplaceChild("bone214", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -3.5F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -3.5F, -5.825F)); - PartDefinition bone27 = bone26.addOrReplaceChild("bone27", CubeListBuilder.create().texOffs(18, 67).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone215 = bone214.addOrReplaceChild("bone215", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -4.0F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 7.5F, 0.0F)); - PartDefinition bone28 = bone27.addOrReplaceChild("bone28", CubeListBuilder.create().texOffs(18, 67).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone28 = bone27.addOrReplaceChild("bone28", CubeListBuilder.create().texOffs(69, 72).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone29 = bone28.addOrReplaceChild("bone29", CubeListBuilder.create().texOffs(18, 67).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone216 = bone28.addOrReplaceChild("bone216", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -3.5F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -3.5F, -5.825F)); - PartDefinition bone30 = bone29.addOrReplaceChild("bone30", CubeListBuilder.create().texOffs(18, 67).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone217 = bone216.addOrReplaceChild("bone217", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -4.0F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 7.5F, 0.0F)); - PartDefinition bone13 = base_console.addOrReplaceChild("bone13", CubeListBuilder.create().texOffs(36, 65).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -2.0F, 0.0F)); + PartDefinition bone29 = bone28.addOrReplaceChild("bone29", CubeListBuilder.create().texOffs(69, 72).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone14 = bone13.addOrReplaceChild("bone14", CubeListBuilder.create().texOffs(36, 65).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone218 = bone29.addOrReplaceChild("bone218", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -3.5F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -3.5F, -5.825F)); - PartDefinition bone15 = bone14.addOrReplaceChild("bone15", CubeListBuilder.create().texOffs(36, 65).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone219 = bone218.addOrReplaceChild("bone219", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -4.0F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 7.5F, 0.0F)); - PartDefinition bone16 = bone15.addOrReplaceChild("bone16", CubeListBuilder.create().texOffs(36, 65).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone30 = bone29.addOrReplaceChild("bone30", CubeListBuilder.create().texOffs(69, 72).addBox(-2.5F, -7.0F, -6.425F, 5.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); - PartDefinition bone17 = bone16.addOrReplaceChild("bone17", CubeListBuilder.create().texOffs(36, 65).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone220 = bone30.addOrReplaceChild("bone220", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -3.5F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -3.5F, -5.825F)); - PartDefinition bone18 = bone17.addOrReplaceChild("bone18", CubeListBuilder.create().texOffs(36, 65).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition bone221 = bone220.addOrReplaceChild("bone221", CubeListBuilder.create().texOffs(28, 73).addBox(-2.0F, -4.0F, -0.5F, 4.0F, 7.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 7.5F, 0.0F)); + + PartDefinition bone13 = base_console.addOrReplaceChild("bone13", CubeListBuilder.create().texOffs(68, 7).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, -2.0F, 0.0F)); + + PartDefinition bone14 = bone13.addOrReplaceChild("bone14", CubeListBuilder.create().texOffs(68, 7).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone15 = bone14.addOrReplaceChild("bone15", CubeListBuilder.create().texOffs(68, 7).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone16 = bone15.addOrReplaceChild("bone16", CubeListBuilder.create().texOffs(68, 7).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone17 = bone16.addOrReplaceChild("bone17", CubeListBuilder.create().texOffs(68, 7).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone18 = bone17.addOrReplaceChild("bone18", CubeListBuilder.create().texOffs(68, 7).addBox(-3.0F, -4.0F, -8.2F, 6.0F, 4.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); PartDefinition bone = base_console.addOrReplaceChild("bone", CubeListBuilder.create().texOffs(0, 34).addBox(-4.0F, -2.0F, -8.925F, 8.0F, 2.0F, 9.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 0.0F, 0.0F)); @@ -2276,15 +814,102 @@ public static LayerDefinition createBodyLayer() { PartDefinition bone6 = bone5.addOrReplaceChild("bone6", CubeListBuilder.create().texOffs(0, 34).addBox(-4.0F, -2.0F, -8.925F, 8.0F, 2.0F, 9.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + PartDefinition rotor_bottom = partdefinition.addOrReplaceChild("rotor_bottom", CubeListBuilder.create(), PartPose.offset(0.0F, -2.0F, 0.0F)); + + PartDefinition low_rotor = rotor_bottom.addOrReplaceChild("low_rotor", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -6.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -6.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -9.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone197 = low_rotor.addOrReplaceChild("bone197", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -6.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -6.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone198 = bone197.addOrReplaceChild("bone198", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -6.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -6.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone199 = bone198.addOrReplaceChild("bone199", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -6.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -6.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone200 = bone199.addOrReplaceChild("bone200", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -6.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -6.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone201 = bone200.addOrReplaceChild("bone201", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -6.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -6.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition low_rotor2 = rotor_bottom.addOrReplaceChild("low_rotor2", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 3.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -12.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone196 = low_rotor2.addOrReplaceChild("bone196", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 3.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone202 = bone196.addOrReplaceChild("bone202", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 3.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone203 = bone202.addOrReplaceChild("bone203", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 3.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone226 = bone203.addOrReplaceChild("bone226", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 3.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone227 = bone226.addOrReplaceChild("bone227", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 3.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition low_rotor3 = rotor_bottom.addOrReplaceChild("low_rotor3", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 3.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.5F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone228 = low_rotor3.addOrReplaceChild("bone228", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 3.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone229 = bone228.addOrReplaceChild("bone229", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 3.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone230 = bone229.addOrReplaceChild("bone230", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 3.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone231 = bone230.addOrReplaceChild("bone231", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 3.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone237 = bone231.addOrReplaceChild("bone237", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 3.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition rotor_top = partdefinition.addOrReplaceChild("rotor_top", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -29.0F, 0.0F, 3.1416F, -0.5236F, 0.0F)); + + PartDefinition low_rotor4 = rotor_top.addOrReplaceChild("low_rotor4", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -5.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -5.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -9.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone240 = low_rotor4.addOrReplaceChild("bone240", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -5.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -5.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone241 = bone240.addOrReplaceChild("bone241", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -5.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -5.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone242 = bone241.addOrReplaceChild("bone242", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -5.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -5.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone243 = bone242.addOrReplaceChild("bone243", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -5.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -5.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone261 = bone243.addOrReplaceChild("bone261", CubeListBuilder.create().texOffs(62, 66).addBox(-1.0F, -5.0F, -4.225F, 2.0F, 16.0F, 1.0F, new CubeDeformation(0.0F)) + .texOffs(44, 64).addBox(0.0F, -5.0F, -4.225F, 1.0F, 15.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition low_rotor5 = rotor_top.addOrReplaceChild("low_rotor5", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 4.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -12.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone262 = low_rotor5.addOrReplaceChild("bone262", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 4.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone263 = bone262.addOrReplaceChild("bone263", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 4.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone264 = bone263.addOrReplaceChild("bone264", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 4.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone265 = bone264.addOrReplaceChild("bone265", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 4.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone266 = bone265.addOrReplaceChild("bone266", CubeListBuilder.create().texOffs(9, 84).addBox(-2.0F, 4.0F, -3.464F, 4.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition low_rotor6 = rotor_top.addOrReplaceChild("low_rotor6", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 4.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, -8.0F, 0.0F, 0.0F, -0.5236F, 0.0F)); + + PartDefinition bone267 = low_rotor6.addOrReplaceChild("bone267", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 4.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone268 = bone267.addOrReplaceChild("bone268", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 4.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone269 = bone268.addOrReplaceChild("bone269", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 4.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone270 = bone269.addOrReplaceChild("bone270", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 4.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + + PartDefinition bone271 = bone270.addOrReplaceChild("bone271", CubeListBuilder.create().texOffs(40, 34).addBox(-2.5F, 4.0F, -4.33F, 5.0F, 1.0F, 1.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.0472F, 0.0F)); + return LayerDefinition.create(meshdefinition, 128, 128); } + @Override public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - upper_rotor.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - lower_rotor.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - controls.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - base_console.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + root().getAllParts().forEach(ModelPart::resetPose); + root().render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); } @Override @@ -2302,20 +927,40 @@ public void renderConsole(GlobalConsoleBlockEntity globalConsoleBlock, Level lev root().getAllParts().forEach(ModelPart::resetPose); TardisClientData reactions = TardisClientData.getInstance(level.dimension()); - if (globalConsoleBlock != null && globalConsoleBlock.getBlockState().getValue(GlobalConsoleBlock.POWERED)) { - if (reactions.isFlying()) { + Boolean powered = globalConsoleBlock.getBlockState().getValue(GlobalConsoleBlock.POWERED); + if (powered) { + if (!globalConsoleBlock.powerOn.isStarted()) { + globalConsoleBlock.powerOff.stop(); + globalConsoleBlock.powerOn.start(Minecraft.getInstance().player.tickCount); + } + this.animate(globalConsoleBlock.powerOn, POWER_ON, Minecraft.getInstance().player.tickCount); + + if (reactions.isCrashing()) { + // Handle crashing animation + this.animate(reactions.CRASHING_ANIMATION, CRASH, Minecraft.getInstance().player.tickCount); + } else if (reactions.isFlying()) { + // Handle flying animation this.animate(reactions.ROTOR_ANIMATION, FLIGHT, Minecraft.getInstance().player.tickCount); } else { + // Handle idle animation if (TRConfig.CLIENT.PLAY_CONSOLE_IDLE_ANIMATIONS.get() && globalConsoleBlock != null) { this.animate(globalConsoleBlock.liveliness, IDLE, Minecraft.getInstance().player.tickCount); } } + } else { + if (globalConsoleBlock != null) { + if (!globalConsoleBlock.powerOff.isStarted()) { + globalConsoleBlock.powerOn.stop(); + globalConsoleBlock.powerOff.start(Minecraft.getInstance().player.tickCount); + } + this.animate(globalConsoleBlock.powerOff, POWER_OFF, Minecraft.getInstance().player.tickCount); + } } - float rot = -1f + (2 * ((float) reactions.getThrottleStage() / TardisPilotingManager.MAX_THROTTLE_STAGE)); - throttle_control.xRot = rot; + float rot = 1f + (2 * ((float) reactions.getThrottleStage() / TardisPilotingManager.MAX_THROTTLE_STAGE)); + throttle_control.yRot = rot; - this.root.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + root().render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); } @Override diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualInteriorDoorModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualInteriorDoorModel.java index fddd6a59c..400e66205 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualInteriorDoorModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualInteriorDoorModel.java @@ -3,7 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.world.entity.Entity; import whocraft.tardis_refined.common.blockentity.door.GlobalDoorBlockEntity; @@ -26,10 +26,10 @@ public DualInteriorDoorModel(ModelPart root, float openAmount) { public DualInteriorDoorModel(ModelPart root, float openAmount, boolean openLeft, boolean openRight) { this.root = root; - this.leftDoor = JsonToAnimationDefinition.findPart(this, "left_door"); - this.frame = JsonToAnimationDefinition.findPart(this, "frame"); - this.rightDoor = JsonToAnimationDefinition.findPart(this, "right_door"); - this.portal = JsonToAnimationDefinition.findPart(this, "portal"); + this.leftDoor = Frame.findPart(this, "left_door"); + this.frame = Frame.findPart(this, "frame"); + this.rightDoor = Frame.findPart(this, "right_door"); + this.portal = Frame.findPart(this, "portal"); this.openAmount = openAmount; this.openLeft = openLeft; this.openRight = openRight; @@ -67,7 +67,7 @@ public void renderPortalMask(GlobalDoorBlockEntity doorBlockEntity, boolean open setDoorPosition(open); this.root().getAllParts().forEach(modelPart -> modelPart.visible = false); this.portal.visible = true; - portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, 0, 0, 0, alpha); } @Override diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualTexInteriorDoorModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualTexInteriorDoorModel.java index 29eee065d..3811e96dd 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualTexInteriorDoorModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/DualTexInteriorDoorModel.java @@ -3,7 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.world.entity.Entity; import whocraft.tardis_refined.common.blockentity.door.GlobalDoorBlockEntity; @@ -20,10 +20,10 @@ public class DualTexInteriorDoorModel extends ShellDoorModel { public DualTexInteriorDoorModel(ModelPart root) { this.root = root; - this.open_door = JsonToAnimationDefinition.findPart(this, "door_open"); - this.closed_door = JsonToAnimationDefinition.findPart(this, "door_closed"); - this.frame = JsonToAnimationDefinition.findPart(this, "frame"); - this.portal = JsonToAnimationDefinition.findPart(this, "portal"); + this.open_door = Frame.findPart(this, "door_open"); + this.closed_door = Frame.findPart(this, "door_closed"); + this.frame = Frame.findPart(this, "frame"); + this.portal = Frame.findPart(this, "portal"); } @@ -60,7 +60,7 @@ public void renderPortalMask(GlobalDoorBlockEntity doorBlockEntity, boolean open setDoorPosition(open); this.root().getAllParts().forEach(modelPart -> modelPart.visible = false); this.portal.visible = true; - portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, 0, 0, 0, alpha); } @Override diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/PagodaDoorModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/PagodaDoorModel.java deleted file mode 100644 index 7f5e2f1ab..000000000 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/PagodaDoorModel.java +++ /dev/null @@ -1,115 +0,0 @@ -package whocraft.tardis_refined.client.model.blockentity.door.interior; - - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; -import net.minecraft.world.entity.Entity; -import whocraft.tardis_refined.client.model.blockentity.shell.ShellModel; -import whocraft.tardis_refined.common.blockentity.door.GlobalDoorBlockEntity; - -public class PagodaDoorModel extends ShellDoorModel { - private final ModelPart root; - private final ModelPart door; - private final ModelPart bone10; - private final ModelPart bone9; - private final ModelPart bone13; - private final ModelPart bone; - private final ModelPart bone4; - private final ModelPart bb_main; - - public PagodaDoorModel(ModelPart root) { - this.root = root; - this.door = root.getChild("door"); - this.bone10 = root.getChild("bone10"); - this.bone9 = root.getChild("bone9"); - this.bone13 = root.getChild("bone13"); - this.bone = root.getChild("bone"); - this.bone4 = root.getChild("bone4"); - this.bb_main = root.getChild("bb_main"); - } - - public static LayerDefinition createBodyLayer() { - MeshDefinition meshdefinition = new MeshDefinition(); - PartDefinition partdefinition = meshdefinition.getRoot(); - - PartDefinition door = partdefinition.addOrReplaceChild("door", CubeListBuilder.create().texOffs(43, 0).mirror().addBox(-0.1F, -14.0F, -0.5F, 14.0F, 24.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(0, 42).mirror().addBox(-0.1F, -14.0F, 0.0F, 14.0F, 32.0F, 1.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offset(-6.9F, 6.0F, 4.0F)); - - PartDefinition bone10 = partdefinition.addOrReplaceChild("bone10", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -11.25F, 12.0F, 0.0F, 0.7854F, 0.0F)); - - PartDefinition cube_r1 = bone10.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(31, 45).mirror().addBox(-1.0F, -2.5F, -11.0F, 1.0F, 4.0F, 12.0F, new CubeDeformation(0.0F)).mirror(false) - .texOffs(31, 62).mirror().addBox(-1.0F, -1.0F, -9.0F, 2.0F, 2.0F, 10.0F, new CubeDeformation(0.0F)).mirror(false), PartPose.offsetAndRotation(0.0F, 0.0F, -6.0F, 0.3491F, 0.0F, 0.0F)); - - PartDefinition bone9 = partdefinition.addOrReplaceChild("bone9", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, -11.25F, 12.0F, 0.0F, -0.7854F, 0.0F)); - - PartDefinition cube_r2 = bone9.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(31, 45).addBox(0.0F, -2.5F, -11.0F, 1.0F, 4.0F, 12.0F, new CubeDeformation(0.0F)) - .texOffs(31, 62).addBox(-1.0F, -1.0F, -9.0F, 2.0F, 2.0F, 10.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -6.0F, 0.3491F, 0.0F, 0.0F)); - - PartDefinition bone13 = partdefinition.addOrReplaceChild("bone13", CubeListBuilder.create(), PartPose.offset(0.0F, -11.25F, 12.0F)); - - PartDefinition cube_r3 = bone13.addOrReplaceChild("cube_r3", CubeListBuilder.create().texOffs(37, 36).addBox(-9.5F, 0.0F, -6.0F, 19.0F, 2.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -5.0F, 0.3491F, 0.0F, 0.0F)); - - PartDefinition bone14 = bone13.addOrReplaceChild("bone14", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone15 = bone14.addOrReplaceChild("bone15", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone16 = bone15.addOrReplaceChild("bone16", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone = partdefinition.addOrReplaceChild("bone", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 24.0F, 12.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone2 = bone.addOrReplaceChild("bone2", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone6 = bone2.addOrReplaceChild("bone6", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone4 = partdefinition.addOrReplaceChild("bone4", CubeListBuilder.create().texOffs(58, 45).addBox(7.0F, -33.0F, -8.0F, 2.0F, 33.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 24.0F, 11.0F)); - - PartDefinition bone5 = bone4.addOrReplaceChild("bone5", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 1.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone7 = bone5.addOrReplaceChild("bone7", CubeListBuilder.create(), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bone8 = bone7.addOrReplaceChild("bone8", CubeListBuilder.create().texOffs(58, 45).addBox(7.0F, -33.0F, -9.0F, 2.0F, 33.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.0F, -1.5708F, 0.0F)); - - PartDefinition bb_main = partdefinition.addOrReplaceChild("bb_main", CubeListBuilder.create().texOffs(0, 0).addBox(-9.0F, -38.0F, 5.0F, 18.0F, 38.0F, 3.0F, new CubeDeformation(0.0F)) - .texOffs(0, 76).addBox(-9.0F, -0.025F, 3.0F, 18.0F, 1.0F, 2.0F, new CubeDeformation(0.0F)), PartPose.offset(0.0F, 24.0F, 0.0F)); - - ShellModel.addMaterializationPart(partdefinition); - - return LayerDefinition.create(meshdefinition, 128, 128); - } - - @Override - public void renderFrame(GlobalDoorBlockEntity doorBlockEntity, boolean open, boolean isBaseModel, PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - setDoorPosition(open); - door.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - bone10.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - bone9.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - bone13.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - bone.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - bone4.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - bb_main.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - } - - @Override - public void renderPortalMask(GlobalDoorBlockEntity doorBlockEntity, boolean open, boolean isBaseModel, PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - - } - - @Override - public ModelPart root() { - return root; - } - - @Override - public void setupAnim(Entity entity, float f, float g, float h, float i, float j) { - - } - - @Override - public void setDoorPosition(boolean open) { - this.door.yRot = (open) ? -275f : 0; - } - -} \ No newline at end of file diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/ShellDoorModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/ShellDoorModel.java index db231eb46..0c27988cc 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/ShellDoorModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/ShellDoorModel.java @@ -29,6 +29,6 @@ public void setupAnim(Entity entity, float f, float g, float h, float i, float j public ResourceLocation getInteriorDoorTexture(GlobalDoorBlockEntity globalDoorBlockEntity) { ShellPattern pattern = globalDoorBlockEntity.pattern(); - return pattern.interiorDoorTexture().texture(); + return pattern.doorTexture().texture(); } } diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleInteriorDoorModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleInteriorDoorModel.java index 621885a65..8179f5e8f 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleInteriorDoorModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleInteriorDoorModel.java @@ -3,7 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.world.entity.Entity; import whocraft.tardis_refined.common.blockentity.door.GlobalDoorBlockEntity; @@ -20,9 +20,9 @@ public class SingleInteriorDoorModel extends ShellDoorModel { public SingleInteriorDoorModel(ModelPart root, float openAmount) { this.root = root; - this.frame = JsonToAnimationDefinition.findPart(this, "frame"); - this.door = JsonToAnimationDefinition.findPart(this, "door"); - this.portal = JsonToAnimationDefinition.findPart(this, "portal"); + this.frame = Frame.findPart(this, "frame"); + this.door = Frame.findPart(this, "door"); + this.portal = Frame.findPart(this, "portal"); this.openAmount = openAmount; } @@ -58,7 +58,7 @@ public void renderPortalMask(GlobalDoorBlockEntity doorBlockEntity, boolean open setDoorPosition(open); this.root().getAllParts().forEach(modelPart -> modelPart.visible = false); this.portal.visible = true; - portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, 0, 0, 0, alpha); } @Override diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleTexInteriorDoorModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleTexInteriorDoorModel.java index b21d94531..23f4aab79 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleTexInteriorDoorModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/door/interior/SingleTexInteriorDoorModel.java @@ -3,7 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.world.entity.Entity; import whocraft.tardis_refined.common.blockentity.door.GlobalDoorBlockEntity; @@ -19,9 +19,9 @@ public class SingleTexInteriorDoorModel extends ShellDoorModel { public SingleTexInteriorDoorModel(ModelPart root) { this.root = root; - this.door = JsonToAnimationDefinition.findPart(this, "door"); - this.frame = JsonToAnimationDefinition.findPart(this, "frame"); - this.portal = JsonToAnimationDefinition.findPart(this, "portal"); + this.door = Frame.findPart(this, "door"); + this.frame = Frame.findPart(this, "frame"); + this.portal = Frame.findPart(this, "portal"); } @@ -57,7 +57,7 @@ public void renderPortalMask(GlobalDoorBlockEntity doorBlockEntity, boolean open setDoorPosition(open); this.root().getAllParts().forEach(modelPart -> modelPart.visible = false); this.portal.visible = true; - portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + portal.render(poseStack, vertexConsumer, packedLight, packedOverlay, 0, 0, 0, alpha); } @Override diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/life/ArsEggModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/life/ArsEggModel.java index 9865882b0..bf6677bd2 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/life/ArsEggModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/life/ArsEggModel.java @@ -2,16 +2,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; -import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.AnimationState; import net.minecraft.world.entity.Entity; @@ -22,8 +17,8 @@ public class ArsEggModel extends HierarchicalModel { - public static final AnimationDefinition CRASHING = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/living/ars_egg/crashing.json")); - public static final AnimationDefinition SWINGING = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/living/ars_egg/swinging.json")); + public static final AnimationDefinition CRASHING = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/living/ars_egg/crashing.json")); + public static final AnimationDefinition SWINGING = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/living/ars_egg/swinging.json")); private final ModelPart Lamp; private final ModelPart root; diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModel.java index 2c8f714bd..fb0da9a88 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModel.java @@ -94,7 +94,7 @@ public ResourceLocation getShellTexture(GlobalShellBlockEntity shellBlockEntitys } private ResourceLocation texture(ShellPattern pattern, boolean isEmmissive) { - return isEmmissive ? pattern.exteriorDoorTexture().emissiveTexture() : pattern.exteriorDoorTexture().texture(); + return isEmmissive ? pattern.shellTexture().emissiveTexture() : pattern.shellTexture().texture(); } public boolean isIgnoreAnmationAlpha() { diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModelCollection.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModelCollection.java index da1c8d800..0953475b5 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModelCollection.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/ShellModelCollection.java @@ -3,7 +3,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.model.geom.EntityModelSet; import net.minecraft.resources.ResourceLocation; -import whocraft.tardis_refined.TardisRefined; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import whocraft.tardis_refined.api.event.TardisClientEvents; import whocraft.tardis_refined.client.ModelRegistry; import whocraft.tardis_refined.client.model.blockentity.door.interior.*; @@ -91,7 +92,7 @@ public void registerModels(EntityModelSet context) { growthDoorModel = new GrowthDoorModel(context.bakeLayer((ModelRegistry.GROWTH_DOOR))); - pagodaDoorModel = new PagodaDoorModel(context.bakeLayer((ModelRegistry.PAGODA_DOOR))); + pagodaDoorModel = new SingleInteriorDoorModel(context.bakeLayer((ModelRegistry.PAGODA_DOOR)), -275f); liftDoorModel = new DualTexInteriorDoorModel(context.bakeLayer((ModelRegistry.LIFT_DOOR))); @@ -124,10 +125,13 @@ public void registerModels(EntityModelSet context) { validateModels(); } + public static Logger LOGGER = LogManager.getLogger("TardisRefined/ShellPatternProvider"); + + private void validateModels() { for (ResourceLocation resourceLocation : ShellTheme.SHELL_THEME_DEFERRED_REGISTRY.keySet()) { if(!SHELL_MODELS.containsKey(resourceLocation)){ - TardisRefined.LOGGER.info("There was no model setup for shell theme {}", resourceLocation); + LOGGER.info("There was no model setup for shell theme {}", resourceLocation); } } } diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/shells/MysticShellModel.java b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/shells/MysticShellModel.java index 3aece315f..6303d1684 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/shells/MysticShellModel.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/blockentity/shell/shells/MysticShellModel.java @@ -2,12 +2,9 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import dev.jeryn.anim.tardis.JsonToAnimationDefinition; +import dev.jeryn.frame.tardis.Frame; import net.minecraft.client.Minecraft; -import net.minecraft.client.animation.AnimationChannel; import net.minecraft.client.animation.AnimationDefinition; -import net.minecraft.client.animation.Keyframe; -import net.minecraft.client.animation.KeyframeAnimations; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.model.geom.PartPose; import net.minecraft.client.model.geom.builders.*; @@ -21,7 +18,7 @@ public class MysticShellModel extends ShellModel { - public static final AnimationDefinition IDLE = JsonToAnimationDefinition.loadAnimation(Minecraft.getInstance().getResourceManager(), new ResourceLocation(TardisRefined.MODID, "animated/shell/myst/idle.json")); + public static final AnimationDefinition IDLE = Frame.loadAnimation( new ResourceLocation(TardisRefined.MODID, "frame/shell/myst/idle.json")); private final ModelPart right_door; private final ModelPart left_door; diff --git a/common/src/main/java/whocraft/tardis_refined/client/model/pallidium/BedrockModelUtil.java b/common/src/main/java/whocraft/tardis_refined/client/model/pallidium/BedrockModelUtil.java index 0ff2128fe..3d7e60ae9 100644 --- a/common/src/main/java/whocraft/tardis_refined/client/model/pallidium/BedrockModelUtil.java +++ b/common/src/main/java/whocraft/tardis_refined/client/model/pallidium/BedrockModelUtil.java @@ -13,6 +13,8 @@ import java.util.*; +import static whocraft.tardis_refined.client.model.blockentity.shell.ShellModel.addMaterializationPart; + /** *

Credits

*