From 3cd4aab6f048ee887670728afe5f6bedc2890de8 Mon Sep 17 00:00:00 2001 From: MysticKoko <132279944+MysticKoko@users.noreply.github.com> Date: Thu, 20 Jun 2024 18:56:24 +0300 Subject: [PATCH] Created a generic StingrayEntity class Added blue spotted stingray variant Added spotted eagle ray variant --- ...yEntityModel.kt => StingrayEntityModel.kt} | 2 +- .../entity/HybridAquaticEntityRenderers.kt | 2 +- .../fish/BlueSpottedStingrayEntityRenderer.kt | 9 -- .../entity/fish/StingrayEntityRenderer.kt | 9 ++ .../assets/hybrid-aquatic/lang/en_us.json | 4 +- ...spawn_egg.json => stingray_spawn_egg.json} | 0 ...ue_spotted_stingray.json => stingray.json} | 0 .../gameplay/blue_spotted_stingray.json | 14 ++ .../tags/entity_types/fishes.json | 2 +- .../entity_types/predator/crustacean.json | 2 +- .../entity_types/prey/hammerhead_shark.json | 2 +- .../tags/entity_types/small_prey.json | 2 +- ...biomes.json => stingray_spawn_biomes.json} | 0 .../aquatic/data/client/LanguageProvider.kt | 2 +- .../loot/EntityTypeLootTableProvider.kt | 2 +- .../server/loot/GenericLootTableProvider.kt | 9 ++ .../data/server/tag/BiomeTagProvider.kt | 2 +- .../data/server/tag/EntityTypeTagProvider.kt | 8 +- .../enchantment/LiveCatchEnchantment.kt | 4 +- .../entity/HybridAquaticEntityTypes.kt | 10 +- .../entity/SpawnRestrictionRegistry.kt | 2 +- ...tedStingrayEntity.kt => StingrayEntity.kt} | 16 +- .../aquatic/item/HybridAquaticItems.kt | 2 +- .../aquatic/loot/HybridAquaticLootTables.kt | 2 + .../aquatic/tag/HybridAquaticBiomeTags.kt | 2 +- .../aquatic/world/EntityBiomeModifications.kt | 2 +- .../blue_spotted_stingray.animation.json | 77 --------- .../animations/stingray.animation.json | 139 ++++++++++++++++ .../stingray_blue_spotted.animation.json | 139 ++++++++++++++++ .../stingray_spotted_eagle.animation.json | 149 ++++++++++++++++++ .../geo/blue_spotted_stingray.geo.json | 52 ------ .../hybrid-aquatic/geo/stingray.geo.json | 78 +++++++++ .../geo/stingray_blue_spotted.geo.json | 78 +++++++++ .../geo/stingray_spotted_eagle.geo.json | 94 +++++++++++ .../textures/entity/blue_spotted_stingray.png | Bin 791 -> 0 bytes .../textures/entity/stingray.png | Bin 0 -> 713 bytes .../textures/entity/stingray_blue_spotted.png | Bin 0 -> 713 bytes .../entity/stingray_spotted_eagle.png | Bin 0 -> 1206 bytes 38 files changed, 752 insertions(+), 165 deletions(-) rename src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/{BlueSpottedStingrayEntityModel.kt => StingrayEntityModel.kt} (51%) delete mode 100644 src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/BlueSpottedStingrayEntityRenderer.kt create mode 100644 src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/StingrayEntityRenderer.kt rename src/generated/resources/assets/hybrid-aquatic/models/item/{blue_spotted_stingray_spawn_egg.json => stingray_spawn_egg.json} (100%) rename src/generated/resources/data/hybrid-aquatic/loot_tables/entities/{blue_spotted_stingray.json => stingray.json} (100%) create mode 100644 src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/blue_spotted_stingray.json rename src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/{blue_spotted_stingray_spawn_biomes.json => stingray_spawn_biomes.json} (100%) rename src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/ray/{BlueSpottedStingrayEntity.kt => StingrayEntity.kt} (54%) delete mode 100644 src/main/resources/assets/hybrid-aquatic/animations/blue_spotted_stingray.animation.json create mode 100644 src/main/resources/assets/hybrid-aquatic/animations/stingray.animation.json create mode 100644 src/main/resources/assets/hybrid-aquatic/animations/stingray_blue_spotted.animation.json create mode 100644 src/main/resources/assets/hybrid-aquatic/animations/stingray_spotted_eagle.animation.json delete mode 100644 src/main/resources/assets/hybrid-aquatic/geo/blue_spotted_stingray.geo.json create mode 100644 src/main/resources/assets/hybrid-aquatic/geo/stingray.geo.json create mode 100644 src/main/resources/assets/hybrid-aquatic/geo/stingray_blue_spotted.geo.json create mode 100644 src/main/resources/assets/hybrid-aquatic/geo/stingray_spotted_eagle.geo.json delete mode 100644 src/main/resources/assets/hybrid-aquatic/textures/entity/blue_spotted_stingray.png create mode 100644 src/main/resources/assets/hybrid-aquatic/textures/entity/stingray.png create mode 100644 src/main/resources/assets/hybrid-aquatic/textures/entity/stingray_blue_spotted.png create mode 100644 src/main/resources/assets/hybrid-aquatic/textures/entity/stingray_spotted_eagle.png diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/BlueSpottedStingrayEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/StingrayEntityModel.kt similarity index 51% rename from src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/BlueSpottedStingrayEntityModel.kt rename to src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/StingrayEntityModel.kt index 8bb272cff..62161e7fa 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/BlueSpottedStingrayEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/StingrayEntityModel.kt @@ -2,4 +2,4 @@ package dev.hybridlabs.aquatic.client.model.entity.fish import dev.hybridlabs.aquatic.entity.fish.HybridAquaticFishEntity -class BlueSpottedStingrayEntityModel : HybridAquaticFishEntityModel("blue_spotted_stingray") +class StingrayEntityModel : HybridAquaticFishEntityModel("stingray") diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/HybridAquaticEntityRenderers.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/HybridAquaticEntityRenderers.kt index 2d9d87207..d1cb96b96 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/HybridAquaticEntityRenderers.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/HybridAquaticEntityRenderers.kt @@ -46,7 +46,7 @@ object HybridAquaticEntityRenderers { val COWFISH = EntityRendererRegistry.register(HybridAquaticEntityTypes.COWFISH, ::CowfishEntityRenderer) val DISCUS = EntityRendererRegistry.register(HybridAquaticEntityTypes.DISCUS, ::DiscusEntityRenderer) val SURGEONFISH = EntityRendererRegistry.register(HybridAquaticEntityTypes.SURGEONFISH, ::SurgeonfishEntityRenderer) - val BLUE_SPOTTED_STINGRAY = EntityRendererRegistry.register(HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, ::BlueSpottedStingrayEntityRenderer) + val STINGRAY = EntityRendererRegistry.register(HybridAquaticEntityTypes.STINGRAY, ::StingrayEntityRenderer) //endregion diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/BlueSpottedStingrayEntityRenderer.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/BlueSpottedStingrayEntityRenderer.kt deleted file mode 100644 index 64f5ecbd6..000000000 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/BlueSpottedStingrayEntityRenderer.kt +++ /dev/null @@ -1,9 +0,0 @@ -package dev.hybridlabs.aquatic.client.render.entity.fish - -import dev.hybridlabs.aquatic.client.model.entity.fish.BlueSpottedStingrayEntityModel -import dev.hybridlabs.aquatic.entity.fish.HybridAquaticFishEntity -import net.minecraft.client.render.entity.EntityRendererFactory.Context - -class BlueSpottedStingrayEntityRenderer(context: Context) : HybridAquaticFishEntityRenderer(context, - BlueSpottedStingrayEntityModel(), true, false) - diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/StingrayEntityRenderer.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/StingrayEntityRenderer.kt new file mode 100644 index 000000000..717c42df2 --- /dev/null +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/fish/StingrayEntityRenderer.kt @@ -0,0 +1,9 @@ +package dev.hybridlabs.aquatic.client.render.entity.fish + +import dev.hybridlabs.aquatic.client.model.entity.fish.StingrayEntityModel +import dev.hybridlabs.aquatic.entity.fish.HybridAquaticFishEntity +import net.minecraft.client.render.entity.EntityRendererFactory.Context + +class StingrayEntityRenderer(context: Context) : HybridAquaticFishEntityRenderer(context, + StingrayEntityModel(), true, false) + diff --git a/src/generated/resources/assets/hybrid-aquatic/lang/en_us.json b/src/generated/resources/assets/hybrid-aquatic/lang/en_us.json index e13a7319f..da45e4093 100644 --- a/src/generated/resources/assets/hybrid-aquatic/lang/en_us.json +++ b/src/generated/resources/assets/hybrid-aquatic/lang/en_us.json @@ -87,7 +87,6 @@ "entity.hybrid-aquatic.basking_shark": "Basking Shark", "entity.hybrid-aquatic.betta": "Betta", "entity.hybrid-aquatic.blue_jellyfish": "Blue Jellyfish", - "entity.hybrid-aquatic.blue_spotted_stingray": "Blue Spotted Stingray", "entity.hybrid-aquatic.bull_shark": "Bull Shark", "entity.hybrid-aquatic.cauliflower_jellyfish": "Cauliflower Jellyfish", "entity.hybrid-aquatic.clownfish": "Clownfish", @@ -141,6 +140,7 @@ "entity.hybrid-aquatic.shrimp": "Shrimp", "entity.hybrid-aquatic.spider_crab": "Spider Crab", "entity.hybrid-aquatic.starfish": "Starfish", + "entity.hybrid-aquatic.stingray": "Blue Spotted Stingray", "entity.hybrid-aquatic.stonefish": "Stonefish", "entity.hybrid-aquatic.sunfish": "Sunfish", "entity.hybrid-aquatic.surgeonfish": "Surgeonfish", @@ -186,7 +186,6 @@ "item.hybrid-aquatic.black_pearl": "Black Pearl", "item.hybrid-aquatic.blue_jellyfish_spawn_egg": "Blue Jellyfish Spawn Egg", "item.hybrid-aquatic.blue_spotted_stingray": "Blue Spotted Stingray", - "item.hybrid-aquatic.blue_spotted_stingray_spawn_egg": "Blue Spotted Stingray Spawn Egg", "item.hybrid-aquatic.blue_tang": "Blue Tang", "item.hybrid-aquatic.bull_shark_spawn_egg": "Bull Shark Spawn Egg", "item.hybrid-aquatic.cauliflower_jellyfish_spawn_egg": "Cauliflower Jellyfish Spawn Egg", @@ -306,6 +305,7 @@ "item.hybrid-aquatic.spider_crab_spawn_egg": "Spider Crab Spawn Egg", "item.hybrid-aquatic.sponge_chunk": "Sponge Chunk", "item.hybrid-aquatic.starfish_spawn_egg": "Starfish Spawn Egg", + "item.hybrid-aquatic.stingray_spawn_egg": "Blue Spotted Stingray Spawn Egg", "item.hybrid-aquatic.stonefish_spawn_egg": "Stonefish Spawn Egg", "item.hybrid-aquatic.sunfish_spawn_egg": "Sunfish Spawn Egg", "item.hybrid-aquatic.surgeonfish_orangeshoulder": "Orangeshoulder Surgeonfish", diff --git a/src/generated/resources/assets/hybrid-aquatic/models/item/blue_spotted_stingray_spawn_egg.json b/src/generated/resources/assets/hybrid-aquatic/models/item/stingray_spawn_egg.json similarity index 100% rename from src/generated/resources/assets/hybrid-aquatic/models/item/blue_spotted_stingray_spawn_egg.json rename to src/generated/resources/assets/hybrid-aquatic/models/item/stingray_spawn_egg.json diff --git a/src/generated/resources/data/hybrid-aquatic/loot_tables/entities/blue_spotted_stingray.json b/src/generated/resources/data/hybrid-aquatic/loot_tables/entities/stingray.json similarity index 100% rename from src/generated/resources/data/hybrid-aquatic/loot_tables/entities/blue_spotted_stingray.json rename to src/generated/resources/data/hybrid-aquatic/loot_tables/entities/stingray.json diff --git a/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/blue_spotted_stingray.json b/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/blue_spotted_stingray.json new file mode 100644 index 000000000..2e3d070e1 --- /dev/null +++ b/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/blue_spotted_stingray.json @@ -0,0 +1,14 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hybrid-aquatic:blue_spotted_stingray" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/fishes.json b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/fishes.json index d358b92e7..64bbd5c2b 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/fishes.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/fishes.json @@ -37,7 +37,7 @@ "hybrid-aquatic:discus", "hybrid-aquatic:firefly_squid", "hybrid-aquatic:dragonfish", - "hybrid-aquatic:blue_spotted_stingray", + "hybrid-aquatic:stingray", "hybrid-aquatic:surgeonfish" ] } \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/predator/crustacean.json b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/predator/crustacean.json index ef4f9ec51..5570ee783 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/predator/crustacean.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/predator/crustacean.json @@ -7,7 +7,7 @@ "hybrid-aquatic:cuttlefish", "hybrid-aquatic:firefly_squid", "hybrid-aquatic:triggerfish", - "hybrid-aquatic:blue_spotted_stingray", + "hybrid-aquatic:stingray", "hybrid-aquatic:hammerhead_shark" ] } \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/prey/hammerhead_shark.json b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/prey/hammerhead_shark.json index b181ad3aa..5c7f67e51 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/prey/hammerhead_shark.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/prey/hammerhead_shark.json @@ -3,7 +3,7 @@ "values": [ "#hybrid-aquatic:crab", "#hybrid-aquatic:shrimp", - "hybrid-aquatic:blue_spotted_stingray", + "hybrid-aquatic:stingray", "hybrid-aquatic:firefly_squid", "hybrid-aquatic:cuttlefish", "minecraft:tropical_fish", diff --git a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/small_prey.json b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/small_prey.json index 4ec7836c6..6ab8c6685 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/small_prey.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/small_prey.json @@ -34,7 +34,7 @@ "hybrid-aquatic:shrimp", "hybrid-aquatic:crayfish", "hybrid-aquatic:lobster", - "hybrid-aquatic:blue_spotted_stingray", + "hybrid-aquatic:stingray", "hybrid-aquatic:vampire_squid", "hybrid-aquatic:glowing_sucker_octopus", "hybrid-aquatic:dragonfish", diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/blue_spotted_stingray_spawn_biomes.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/stingray_spawn_biomes.json similarity index 100% rename from src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/blue_spotted_stingray_spawn_biomes.json rename to src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/stingray_spawn_biomes.json diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/data/client/LanguageProvider.kt b/src/main/kotlin/dev/hybridlabs/aquatic/data/client/LanguageProvider.kt index 3dd5c0f42..c62918eee 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/data/client/LanguageProvider.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/data/client/LanguageProvider.kt @@ -281,7 +281,7 @@ class LanguageProvider(output: FabricDataOutput) : FabricLanguageProvider(output HybridAquaticEntityTypes.GLOWING_SUCKER_OCTOPUS to "Glowing Sucker Octopus", HybridAquaticEntityTypes.DISCUS to "Discus", HybridAquaticEntityTypes.FIREFLY_SQUID to "Firefly Squid", - HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY to "Blue Spotted Stingray", + HybridAquaticEntityTypes.STINGRAY to "Blue Spotted Stingray", HybridAquaticEntityTypes.SURGEONFISH to "Surgeonfish", HybridAquaticEntityTypes.BULL_SHARK to "Bull Shark", HybridAquaticEntityTypes.BASKING_SHARK to "Basking Shark", diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/EntityTypeLootTableProvider.kt b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/EntityTypeLootTableProvider.kt index a4942951c..7103edbc0 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/EntityTypeLootTableProvider.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/EntityTypeLootTableProvider.kt @@ -530,7 +530,7 @@ class EntityTypeLootTableProvider(output: FabricDataOutput) : SimpleFabricLootTa ) } - export(exporter, HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY) { + export(exporter, HybridAquaticEntityTypes.STINGRAY) { pool( LootPool.builder() .with( diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt index 0d8ca0181..85e214d40 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt @@ -684,6 +684,15 @@ class GenericLootTableProvider(output: FabricDataOutput) : SimpleFabricLootTable ) ) + exporter.accept( + HybridAquaticLootTables.BLUE_SPOTTED_STINGRAY, + LootTable.builder() + .pool( + LootPool.builder() + .with(ItemEntry.builder(HybridAquaticItems.BLUE_SPOTTED_STINGRAY)) + ) + ) + exporter.accept( HybridAquaticLootTables.UNICORNFISH, LootTable.builder() diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/BiomeTagProvider.kt b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/BiomeTagProvider.kt index 9290818a8..d9098a39d 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/BiomeTagProvider.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/BiomeTagProvider.kt @@ -52,7 +52,7 @@ class BiomeTagProvider(output: FabricDataOutput, registriesFuture: CompletableFu BiomeKeys.SPARSE_JUNGLE, ) - getOrCreateTagBuilder(HybridAquaticBiomeTags.BLUE_SPOTTED_STINGRAY_SPAWN_BIOMES).add( + getOrCreateTagBuilder(HybridAquaticBiomeTags.STINGRAY_SPAWN_BIOMES).add( BiomeKeys.WARM_OCEAN, BiomeKeys.LUKEWARM_OCEAN, BiomeKeys.BEACH, diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/EntityTypeTagProvider.kt b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/EntityTypeTagProvider.kt index 4ca30ea5b..d4babf240 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/EntityTypeTagProvider.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/tag/EntityTypeTagProvider.kt @@ -46,7 +46,7 @@ class EntityTypeTagProvider(output: FabricDataOutput, registriesFuture: Completa HybridAquaticEntityTypes.SHRIMP, HybridAquaticEntityTypes.CRAYFISH, HybridAquaticEntityTypes.LOBSTER, - HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, + HybridAquaticEntityTypes.STINGRAY, HybridAquaticEntityTypes.VAMPIRE_SQUID, HybridAquaticEntityTypes.GLOWING_SUCKER_OCTOPUS, HybridAquaticEntityTypes.DRAGONFISH, @@ -121,7 +121,7 @@ class EntityTypeTagProvider(output: FabricDataOutput, registriesFuture: Completa .addTag(HybridAquaticEntityTags.CRAB) .addTag(HybridAquaticEntityTags.SHRIMP) .add( - HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, + HybridAquaticEntityTypes.STINGRAY, HybridAquaticEntityTypes.FIREFLY_SQUID, HybridAquaticEntityTypes.CUTTLEFISH, EntityType.TROPICAL_FISH, @@ -401,7 +401,7 @@ class EntityTypeTagProvider(output: FabricDataOutput, registriesFuture: Completa HybridAquaticEntityTypes.CUTTLEFISH, HybridAquaticEntityTypes.FIREFLY_SQUID, HybridAquaticEntityTypes.TRIGGERFISH, - HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, + HybridAquaticEntityTypes.STINGRAY, HybridAquaticEntityTypes.HAMMERHEAD_SHARK, ) @@ -444,7 +444,7 @@ class EntityTypeTagProvider(output: FabricDataOutput, registriesFuture: Completa HybridAquaticEntityTypes.DISCUS, HybridAquaticEntityTypes.FIREFLY_SQUID, HybridAquaticEntityTypes.DRAGONFISH, - HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, + HybridAquaticEntityTypes.STINGRAY, HybridAquaticEntityTypes.SURGEONFISH ) diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/enchantment/LiveCatchEnchantment.kt b/src/main/kotlin/dev/hybridlabs/aquatic/enchantment/LiveCatchEnchantment.kt index fe4072837..afa46c6ac 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/enchantment/LiveCatchEnchantment.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/enchantment/LiveCatchEnchantment.kt @@ -29,7 +29,7 @@ class LiveCatchEnchantment : Enchantment(Rarity.RARE, EnchantmentTarget.FISHING_ HybridAquaticItems.TUNA to HybridAquaticEntityTypes.TUNA, HybridAquaticItems.OPAH to HybridAquaticEntityTypes.OPAH, HybridAquaticItems.ROCKFISH to HybridAquaticEntityTypes.ROCKFISH, - HybridAquaticItems.BLUE_SPOTTED_STINGRAY to HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, + HybridAquaticItems.BLUE_SPOTTED_STINGRAY to HybridAquaticEntityTypes.STINGRAY, HybridAquaticItems.MORAY_EEL to HybridAquaticEntityTypes.MORAY_EEL, HybridAquaticItems.NEEDLEFISH to HybridAquaticEntityTypes.NEEDLEFISH, HybridAquaticItems.PIRANHA to HybridAquaticEntityTypes.PIRANHA, @@ -37,6 +37,8 @@ class LiveCatchEnchantment : Enchantment(Rarity.RARE, EnchantmentTarget.FISHING_ HybridAquaticItems.BARRELEYE to HybridAquaticEntityTypes.BARRELEYE, HybridAquaticItems.DRAGONFISH to HybridAquaticEntityTypes.DRAGONFISH, HybridAquaticItems.BLUE_TANG to HybridAquaticEntityTypes.SURGEONFISH, + HybridAquaticItems.SURGEONFISH_SOHAL to HybridAquaticEntityTypes.SURGEONFISH, + HybridAquaticItems.SURGEONFISH_ORANGESHOULDER to HybridAquaticEntityTypes.SURGEONFISH, HybridAquaticItems.CLOWNFISH to HybridAquaticEntityTypes.CLOWNFISH, HybridAquaticItems.COWFISH to HybridAquaticEntityTypes.COWFISH, HybridAquaticItems.TRIGGERFISH to HybridAquaticEntityTypes.TRIGGERFISH, diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt index 7282372f6..12df1863b 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt @@ -9,7 +9,7 @@ import dev.hybridlabs.aquatic.entity.critter.StarfishEntity import dev.hybridlabs.aquatic.entity.crustacean.* import dev.hybridlabs.aquatic.entity.fish.* import dev.hybridlabs.aquatic.entity.fish.deepsea.* -import dev.hybridlabs.aquatic.entity.fish.ray.BlueSpottedStingrayEntity +import dev.hybridlabs.aquatic.entity.fish.ray.StingrayEntity import dev.hybridlabs.aquatic.entity.jellyfish.* import dev.hybridlabs.aquatic.entity.miniboss.KarkinosEntity import dev.hybridlabs.aquatic.entity.shark.* @@ -45,11 +45,11 @@ object HybridAquaticEntityTypes { BettaEntity.createMobAttributes() ) - val BLUE_SPOTTED_STINGRAY = registerFish( - "blue_spotted_stingray", - ::BlueSpottedStingrayEntity, + val STINGRAY = registerFish( + "stingray", + ::StingrayEntity, EntityDimensions.fixed(0.75f, 0.2f), - BlueSpottedStingrayEntity.createMobAttributes() + StingrayEntity.createMobAttributes() ) val SURGEONFISH = registerFish( diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt index 49cd17b34..b2ddc78ea 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt @@ -29,7 +29,7 @@ object SpawnRestrictionRegistry { HybridAquaticEntityTypes.COWFISH, HybridAquaticEntityTypes.SEAHORSE, HybridAquaticEntityTypes.SUNFISH, - HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, + HybridAquaticEntityTypes.STINGRAY, HybridAquaticEntityTypes.LIONFISH, HybridAquaticEntityTypes.TOADFISH, HybridAquaticEntityTypes.OARFISH, diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/ray/BlueSpottedStingrayEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/ray/StingrayEntity.kt similarity index 54% rename from src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/ray/BlueSpottedStingrayEntity.kt rename to src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/ray/StingrayEntity.kt index 5ef47895a..01771a18d 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/ray/BlueSpottedStingrayEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/ray/StingrayEntity.kt @@ -1,15 +1,27 @@ package dev.hybridlabs.aquatic.entity.fish.ray +import dev.hybridlabs.aquatic.tag.HybridAquaticBiomeTags import dev.hybridlabs.aquatic.tag.HybridAquaticEntityTags import net.minecraft.entity.EntityType import net.minecraft.entity.ai.goal.RevengeGoal import net.minecraft.entity.attribute.DefaultAttributeContainer import net.minecraft.entity.attribute.EntityAttributes import net.minecraft.entity.mob.WaterCreatureEntity +import net.minecraft.util.Identifier import net.minecraft.world.World -class BlueSpottedStingrayEntity(entityType: EntityType, world: World) : - HybridAquaticRayEntity(entityType, world, emptyMap(), HybridAquaticEntityTags.STINGRAY_PREY, HybridAquaticEntityTags.STINGRAY_PREDATOR) { +class StingrayEntity(entityType: EntityType, world: World) : + HybridAquaticRayEntity(entityType, world, variants = hashMapOf( + "spotted_eagle" to FishVariant.biomeVariant("spotted_eagle", HybridAquaticBiomeTags.STINGRAY_SPAWN_BIOMES), + "blue_spotted" to FishVariant.biomeVariant("blue_spotted", HybridAquaticBiomeTags.STINGRAY_SPAWN_BIOMES),), + HybridAquaticEntityTags.STINGRAY_PREY, HybridAquaticEntityTags.STINGRAY_PREDATOR) { + + public override fun getLootTableId(): Identifier { + return when (this.variant?.variantName) { + "blue_spotted" -> Identifier("hybrid-aquatic", "gameplay/blue_spotted_stingray") + else -> super.getLootTableId() + } + } override fun initGoals() { super.initGoals() diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt b/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt index 4dd3c4b8d..9e634f149 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt @@ -624,7 +624,7 @@ object HybridAquaticItems { val ANGLERFISH_SPAWN_EGG = registerSpawnEgg("anglerfish_spawn_egg", HybridAquaticEntityTypes.ANGLERFISH, 0x4d4848, 0xc4faff) val BARRELEYE_SPAWN_EGG = registerSpawnEgg("barreleye_spawn_egg", HybridAquaticEntityTypes.BARRELEYE, 0x543d34, 0x95f649) val BETTA_SPAWN_EGG = registerSpawnEgg("betta_spawn_egg", HybridAquaticEntityTypes.BETTA, 0xba3569, 0x581f45) - val BLUE_SPOTTED_STINGRAY_SPAWN_EGG = registerSpawnEgg("blue_spotted_stingray_spawn_egg", HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, 0xecbf52, 0x2563a4) + val STINGRAY_SPAWN_EGG = registerSpawnEgg("stingray_spawn_egg", HybridAquaticEntityTypes.STINGRAY, 0xecbf52, 0x2563a4) val SURGEONFISH_SPAWN_EGG = registerSpawnEgg("surgeonfish_spawn_egg", HybridAquaticEntityTypes.SURGEONFISH, 0x88a1d7, 0x211b2f) val CLOWNFISH_SPAWN_EGG = registerSpawnEgg("clownfish_spawn_egg", HybridAquaticEntityTypes.CLOWNFISH, 0xea6c36, 0xfdf7f9) val COWFISH_SPAWN_EGG = registerSpawnEgg("cowfish_spawn_egg", HybridAquaticEntityTypes.COWFISH, 0xfffeac, 0xffc056) diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt b/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt index b3c453284..216d6fdf8 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt @@ -23,5 +23,7 @@ object HybridAquaticLootTables { val ORANGESHOULDER = Identifier(HybridAquatic.MOD_ID, "gameplay/orangeshoulder") val UNICORNFISH = Identifier(HybridAquatic.MOD_ID, "gameplay/unicornfish") + val BLUE_SPOTTED_STINGRAY = Identifier(HybridAquatic.MOD_ID, "gameplay/blue_spotted_stingray") + val CRAB_DIGGING_TREASURE_ID = Identifier(HybridAquatic.MOD_ID, "gameplay/crab_digging_treasure") } diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt b/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt index 520f22893..0aae44d2f 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt @@ -25,7 +25,7 @@ object HybridAquaticBiomeTags { val SURGEONFISH_SPAWN_BIOMES = create("surgeonfish_spawn_biomes") val COWFISH_SPAWN_BIOMES = create("cowfish_spawn_biomes") val SEAHORSE_SPAWN_BIOMES = create("seahorse_spawn_biomes") - val BLUE_SPOTTED_STINGRAY_SPAWN_BIOMES = create("blue_spotted_stingray_spawn_biomes") + val STINGRAY_SPAWN_BIOMES = create("stingray_spawn_biomes") val LIONFISH_SPAWN_BIOMES = create("lionfish_spawn_biomes") val MOON_JELLYFISH_SPAWN_BIOMES = create("moon_jellyfish_spawn_biomes") val FRIED_EGG_JELLYFISH_SPAWN_BIOMES = create("fried_egg_jellyfish_spawn_biomes") diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt b/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt index 14585ff48..bc19bcd7f 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt @@ -18,7 +18,7 @@ object EntityBiomeModifications { init { // fish addFish(HybridAquaticEntityTypes.BETTA, HybridAquaticBiomeTags.BETTA_SPAWN_BIOMES, 10, 1, 2) - addFish(HybridAquaticEntityTypes.BLUE_SPOTTED_STINGRAY, HybridAquaticBiomeTags.BLUE_SPOTTED_STINGRAY_SPAWN_BIOMES, 3, 1, 1) + addFish(HybridAquaticEntityTypes.STINGRAY, HybridAquaticBiomeTags.STINGRAY_SPAWN_BIOMES, 3, 1, 1) addFish(HybridAquaticEntityTypes.SURGEONFISH, HybridAquaticBiomeTags.SURGEONFISH_SPAWN_BIOMES, 5, 1, 2) addFish(HybridAquaticEntityTypes.CLOWNFISH, HybridAquaticBiomeTags.CLOWNFISH_SPAWN_BIOMES, 5, 1, 2) addFish(HybridAquaticEntityTypes.COWFISH, HybridAquaticBiomeTags.COWFISH_SPAWN_BIOMES, 5, 1, 2) diff --git a/src/main/resources/assets/hybrid-aquatic/animations/blue_spotted_stingray.animation.json b/src/main/resources/assets/hybrid-aquatic/animations/blue_spotted_stingray.animation.json deleted file mode 100644 index 45c3d6138..000000000 --- a/src/main/resources/assets/hybrid-aquatic/animations/blue_spotted_stingray.animation.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "format_version": "1.8.0", - "animations": { - "idle": { - "loop": true, - "animation_length": 4, - "bones": { - "body": { - "rotation": ["Math.cos(query.anim_time * 90)*2.5", 0, 0], - "position": [0, "Math.sin(query.anim_time * 90)*-0.25", 0] - }, - "tail": { - "rotation": [0, "Math.cos(query.anim_time * 90)*10", 0] - }, - "leftfin": { - "rotation": [0, 0, "Math.cos(query.anim_time * 90)*-5"] - }, - "rightfin": { - "rotation": [0, 0, "Math.cos(query.anim_time * 90)*5"] - } - } - }, - "swim": { - "loop": true, - "animation_length": 4, - "bones": { - "body": { - "rotation": ["Math.COS(query.anim_time * 90)*10", 0, 0] - }, - "tail": { - "rotation": ["Math.sin(query.anim_time * -90)*2.5", 0, 0] - }, - "leftfin": { - "rotation": ["Math.sin(query.anim_time * 90)*5", 0, 0] - }, - "rightfin": { - "rotation": ["Math.sin(query.anim_time * 90)*5", 0, 0] - } - } - }, - "flop": { - "loop": true, - "animation_length": 2, - "bones": { - "body": { - "rotation": { - "0.0": [2.5, 0, 0], - "1.0": [-2.5, 0, 0], - "2.0": [2.5, 0, 0] - } - }, - "tail": { - "rotation": { - "0.0": [-5, 0, 0], - "1.0": [0, 0, 0], - "2.0": [-5, 0, 0] - } - }, - "leftfin": { - "rotation": { - "0.0": [2.5, 0, 0], - "1.0": [-2.5, 0, 0], - "2.0": [2.5, 0, 0] - } - }, - "rightfin": { - "rotation": { - "0.0": [2.5, 0, 0], - "1.0": [-2.5, 0, 0], - "2.0": [2.5, 0, 0] - } - } - } - } - }, - "geckolib_format_version": 2 -} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/animations/stingray.animation.json b/src/main/resources/assets/hybrid-aquatic/animations/stingray.animation.json new file mode 100644 index 000000000..ebb50f0e9 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/animations/stingray.animation.json @@ -0,0 +1,139 @@ +{ + "format_version": "1.8.0", + "animations": { + "swim": { + "loop": true, + "animation_length": 4, + "bones": { + "left_fin_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*5", 0, 0] + } + }, + "body": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*7.5", 0, 0] + } + }, + "tail_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*-10", 0, 0] + } + }, + "tail_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*-10", 0, 0] + } + }, + "left_fin_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*7.5", 0, 0] + } + }, + "right_fin_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*7.5", 0, 0] + } + }, + "right_fin_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*5", 0, 0] + } + }, + "right_fin_3": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*5", 0, 0] + } + } + } + }, + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "body": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*2.5", 0, 0] + }, + "position": { + "vector": [0, "Math.sin(query.anim_time * 90)*-0.25", 0] + } + }, + "tail": { + "rotation": { + "vector": [0, "Math.cos(query.anim_time * 90)*10", 0] + } + }, + "leftfin": { + "rotation": { + "vector": [0, 0, "Math.cos(query.anim_time * 90)*-5"] + } + }, + "rightfin": { + "rotation": { + "vector": [0, 0, "Math.cos(query.anim_time * 90)*5"] + } + } + } + }, + "flop": { + "loop": true, + "animation_length": 2, + "bones": { + "body": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + }, + "tail": { + "rotation": { + "0.0": { + "vector": [-5, 0, 0] + }, + "1.0": { + "vector": [0, 0, 0] + }, + "2.0": { + "vector": [-5, 0, 0] + } + } + }, + "leftfin": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + }, + "rightfin": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/animations/stingray_blue_spotted.animation.json b/src/main/resources/assets/hybrid-aquatic/animations/stingray_blue_spotted.animation.json new file mode 100644 index 000000000..ebb50f0e9 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/animations/stingray_blue_spotted.animation.json @@ -0,0 +1,139 @@ +{ + "format_version": "1.8.0", + "animations": { + "swim": { + "loop": true, + "animation_length": 4, + "bones": { + "left_fin_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*5", 0, 0] + } + }, + "body": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*7.5", 0, 0] + } + }, + "tail_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*-10", 0, 0] + } + }, + "tail_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*-10", 0, 0] + } + }, + "left_fin_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*7.5", 0, 0] + } + }, + "right_fin_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*7.5", 0, 0] + } + }, + "right_fin_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*5", 0, 0] + } + }, + "right_fin_3": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*5", 0, 0] + } + } + } + }, + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "body": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*2.5", 0, 0] + }, + "position": { + "vector": [0, "Math.sin(query.anim_time * 90)*-0.25", 0] + } + }, + "tail": { + "rotation": { + "vector": [0, "Math.cos(query.anim_time * 90)*10", 0] + } + }, + "leftfin": { + "rotation": { + "vector": [0, 0, "Math.cos(query.anim_time * 90)*-5"] + } + }, + "rightfin": { + "rotation": { + "vector": [0, 0, "Math.cos(query.anim_time * 90)*5"] + } + } + } + }, + "flop": { + "loop": true, + "animation_length": 2, + "bones": { + "body": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + }, + "tail": { + "rotation": { + "0.0": { + "vector": [-5, 0, 0] + }, + "1.0": { + "vector": [0, 0, 0] + }, + "2.0": { + "vector": [-5, 0, 0] + } + } + }, + "leftfin": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + }, + "rightfin": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/animations/stingray_spotted_eagle.animation.json b/src/main/resources/assets/hybrid-aquatic/animations/stingray_spotted_eagle.animation.json new file mode 100644 index 000000000..9e62e0802 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/animations/stingray_spotted_eagle.animation.json @@ -0,0 +1,149 @@ +{ + "format_version": "1.8.0", + "animations": { + "swim": { + "loop": true, + "animation_length": 4, + "bones": { + "left_fin_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*7.5", 0, 0] + } + }, + "body": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*5", 0, 0] + } + }, + "tail_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*-7.5", 0, 0] + } + }, + "tail_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*-10", 0, 0] + } + }, + "left_fin_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*7.5", 0, 0] + } + }, + "undefined": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*5", 0, 0] + } + }, + "right_fin_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*7.5", 0, 0] + } + }, + "right_fin_2": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*7.5", 0, 0] + } + }, + "left_fin_tip": { + "rotation": { + "vector": [0, 0, "Math.sin(query.anim_time * 90)*15"] + } + }, + "right_fin_tip": { + "rotation": { + "vector": [0, 0, "Math.sin(query.anim_time * 90)*-15"] + } + } + } + }, + "idle": { + "loop": true, + "animation_length": 4, + "bones": { + "body": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*2.5", 0, 0] + }, + "position": { + "vector": [0, "Math.sin(query.anim_time * 90)*-0.25", 0] + } + }, + "tail": { + "rotation": { + "vector": [0, "Math.cos(query.anim_time * 90)*10", 0] + } + }, + "leftfin": { + "rotation": { + "vector": [0, 0, "Math.cos(query.anim_time * 90)*-5"] + } + }, + "rightfin": { + "rotation": { + "vector": [0, 0, "Math.cos(query.anim_time * 90)*5"] + } + } + } + }, + "flop": { + "loop": true, + "animation_length": 2, + "bones": { + "body": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + }, + "tail": { + "rotation": { + "0.0": { + "vector": [-5, 0, 0] + }, + "1.0": { + "vector": [0, 0, 0] + }, + "2.0": { + "vector": [-5, 0, 0] + } + } + }, + "leftfin": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + }, + "rightfin": { + "rotation": { + "0.0": { + "vector": [2.5, 0, 0] + }, + "1.0": { + "vector": [-2.5, 0, 0] + }, + "2.0": { + "vector": [2.5, 0, 0] + } + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/geo/blue_spotted_stingray.geo.json b/src/main/resources/assets/hybrid-aquatic/geo/blue_spotted_stingray.geo.json deleted file mode 100644 index 3979797bb..000000000 --- a/src/main/resources/assets/hybrid-aquatic/geo/blue_spotted_stingray.geo.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "format_version": "1.12.0", - "minecraft:geometry": [ - { - "description": { - "identifier": "geometry.unknown", - "texture_width": 32, - "texture_height": 32, - "visible_bounds_width": 3, - "visible_bounds_height": 1.5, - "visible_bounds_offset": [0, 0.25, 0] - }, - "bones": [ - { - "name": "body", - "pivot": [0, 1.7525, -3.25], - "rotation": [0, 180, 0], - "cubes": [ - {"origin": [-2, 1, -8.75], "size": [4, 1, 8], "uv": [0, 20]}, - {"origin": [1, 1.5, -2.75], "size": [1, 1, 1], "inflate": -0.01, "uv": [0, 2]}, - {"origin": [-2, 1.5, -2.75], "size": [1, 1, 1], "inflate": -0.01, "uv": [0, 0]} - ] - }, - { - "name": "leftfin", - "parent": "body", - "pivot": [0, 1.5, -5.75], - "cubes": [ - {"origin": [-8, 1, -9.75], "size": [6, 1, 9], "uv": [0, 10]} - ] - }, - { - "name": "tail", - "parent": "body", - "pivot": [-0.5, 1, -8.75], - "cubes": [ - {"origin": [-0.5, 1.5, -16.75], "size": [1, 0, 8], "uv": [13, 0]}, - {"origin": [0, 1.5, -15.75], "size": [0, 1, 1], "uv": [0, 3]} - ] - }, - { - "name": "rightfin", - "parent": "body", - "pivot": [0, 1.5, -5.75], - "cubes": [ - {"origin": [2, 1, -9.75], "size": [6, 1, 9], "uv": [0, 0]} - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/geo/stingray.geo.json b/src/main/resources/assets/hybrid-aquatic/geo/stingray.geo.json new file mode 100644 index 000000000..6027a1675 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/geo/stingray.geo.json @@ -0,0 +1,78 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 3, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "body", + "pivot": [0, 1.5, -0.5], + "cubes": [ + {"origin": [-3, 1, -5], "size": [6, 1, 8], "uv": [0, 0]}, + {"origin": [-2.5, 1.75, -4], "size": [5, 1, 3], "uv": [16, 16]}, + {"origin": [2.51, 1.5, -3], "size": [0, 1, 1], "uv": [0, 0]}, + {"origin": [-2.51, 1.5, -3], "size": [0, 1, 1], "uv": [0, 0], "mirror": true} + ] + }, + { + "name": "tail_1", + "parent": "body", + "pivot": [0, 1.5, 3], + "cubes": [ + {"origin": [-0.5, 1, 3], "size": [1, 1, 4], "uv": [0, 19]}, + {"origin": [-0.74497, 1.99497, 3], "size": [1, 0, 4], "pivot": [-0.49497, 1.99497, 5], "rotation": [0, 0, 22.5], "uv": [0, 0]}, + {"origin": [-0.25503, 1.99497, 3], "size": [1, 0, 4], "pivot": [0.49497, 1.99497, 5], "rotation": [0, 0, -22.5], "uv": [0, 0], "mirror": true} + ] + }, + { + "name": "tail_2", + "parent": "tail_1", + "pivot": [0, 2, 7], + "cubes": [ + {"origin": [-0.5, 2, 7], "size": [1, 0, 4], "uv": [2, 0]}, + {"origin": [-0.5, 2, 9.5], "size": [1, 0, 1], "pivot": [0, 2, 9.5], "rotation": [45, 0, 0], "uv": [0, 0]} + ] + }, + { + "name": "left_fin_1", + "parent": "body", + "pivot": [4.5, 1.5, -2], + "cubes": [ + {"origin": [1, 1.5, -5], "size": [7, 0, 5], "uv": [14, 9]} + ] + }, + { + "name": "left_fin_2", + "parent": "left_fin_1", + "pivot": [4.5, 1.5, 0], + "cubes": [ + {"origin": [1, 1.5, 0], "size": [7, 0, 5], "uv": [0, 9]} + ] + }, + { + "name": "right_fin_1", + "parent": "body", + "pivot": [-4.5, 1.5, -2], + "cubes": [ + {"origin": [-8, 1.5, -5], "size": [7, 0, 5], "uv": [0, 14]} + ] + }, + { + "name": "right_fin_2", + "parent": "right_fin_1", + "pivot": [-4.5, 1.5, 0], + "cubes": [ + {"origin": [-8, 1.5, 0], "size": [7, 0, 5], "uv": [0, 9], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/geo/stingray_blue_spotted.geo.json b/src/main/resources/assets/hybrid-aquatic/geo/stingray_blue_spotted.geo.json new file mode 100644 index 000000000..6027a1675 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/geo/stingray_blue_spotted.geo.json @@ -0,0 +1,78 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 3, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "body", + "pivot": [0, 1.5, -0.5], + "cubes": [ + {"origin": [-3, 1, -5], "size": [6, 1, 8], "uv": [0, 0]}, + {"origin": [-2.5, 1.75, -4], "size": [5, 1, 3], "uv": [16, 16]}, + {"origin": [2.51, 1.5, -3], "size": [0, 1, 1], "uv": [0, 0]}, + {"origin": [-2.51, 1.5, -3], "size": [0, 1, 1], "uv": [0, 0], "mirror": true} + ] + }, + { + "name": "tail_1", + "parent": "body", + "pivot": [0, 1.5, 3], + "cubes": [ + {"origin": [-0.5, 1, 3], "size": [1, 1, 4], "uv": [0, 19]}, + {"origin": [-0.74497, 1.99497, 3], "size": [1, 0, 4], "pivot": [-0.49497, 1.99497, 5], "rotation": [0, 0, 22.5], "uv": [0, 0]}, + {"origin": [-0.25503, 1.99497, 3], "size": [1, 0, 4], "pivot": [0.49497, 1.99497, 5], "rotation": [0, 0, -22.5], "uv": [0, 0], "mirror": true} + ] + }, + { + "name": "tail_2", + "parent": "tail_1", + "pivot": [0, 2, 7], + "cubes": [ + {"origin": [-0.5, 2, 7], "size": [1, 0, 4], "uv": [2, 0]}, + {"origin": [-0.5, 2, 9.5], "size": [1, 0, 1], "pivot": [0, 2, 9.5], "rotation": [45, 0, 0], "uv": [0, 0]} + ] + }, + { + "name": "left_fin_1", + "parent": "body", + "pivot": [4.5, 1.5, -2], + "cubes": [ + {"origin": [1, 1.5, -5], "size": [7, 0, 5], "uv": [14, 9]} + ] + }, + { + "name": "left_fin_2", + "parent": "left_fin_1", + "pivot": [4.5, 1.5, 0], + "cubes": [ + {"origin": [1, 1.5, 0], "size": [7, 0, 5], "uv": [0, 9]} + ] + }, + { + "name": "right_fin_1", + "parent": "body", + "pivot": [-4.5, 1.5, -2], + "cubes": [ + {"origin": [-8, 1.5, -5], "size": [7, 0, 5], "uv": [0, 14]} + ] + }, + { + "name": "right_fin_2", + "parent": "right_fin_1", + "pivot": [-4.5, 1.5, 0], + "cubes": [ + {"origin": [-8, 1.5, 0], "size": [7, 0, 5], "uv": [0, 9], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/geo/stingray_spotted_eagle.geo.json b/src/main/resources/assets/hybrid-aquatic/geo/stingray_spotted_eagle.geo.json new file mode 100644 index 000000000..6915579a3 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/geo/stingray_spotted_eagle.geo.json @@ -0,0 +1,94 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 64, + "texture_height": 64, + "visible_bounds_width": 5, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "body", + "pivot": [0, 2.16667, -2.16667], + "cubes": [ + {"origin": [-4, 1.5, -5], "size": [8, 1, 11], "uv": [0, 0]}, + {"origin": [0, 2.25, 4], "size": [0, 2, 3], "uv": [0, 0]}, + {"origin": [-2.5, 0.75, -8], "size": [5, 2, 8], "uv": [24, 21]}, + {"origin": [-2.51, 1.25, -6.5], "size": [0, 1, 1], "uv": [0, 0]}, + {"origin": [2.51, 1.25, -6.5], "size": [0, 1, 1], "uv": [0, 0], "mirror": true}, + {"origin": [-3, 2.25, -7], "size": [6, 1, 8], "uv": [0, 20]} + ] + }, + { + "name": "tail_1", + "parent": "body", + "pivot": [0, 2.5, 6], + "cubes": [ + {"origin": [-0.5, 1.5, 6], "size": [1, 1, 10], "uv": [28, 8]} + ] + }, + { + "name": "tail_2", + "parent": "tail_1", + "pivot": [0, 2.5, 16], + "cubes": [ + {"origin": [-0.5, 2.5, 16], "size": [1, 0, 10], "uv": [0, 29]}, + {"origin": [-0.5, 2.5, 24.5], "size": [1, 0, 1], "pivot": [0, 2.5, 24.5], "rotation": [45, 0, 0], "uv": [0, 0]} + ] + }, + { + "name": "left_fin_1", + "parent": "body", + "pivot": [4.5, 2, 1], + "cubes": [ + {"origin": [1, 2, -5], "size": [10, 0, 8], "uv": [19, 0]} + ] + }, + { + "name": "left_fin_tip", + "parent": "left_fin_1", + "pivot": [11, 2, -1], + "cubes": [ + {"origin": [11, 2, -5], "size": [6, 0, 8], "uv": [12, 20]} + ] + }, + { + "name": "left_fin_2", + "parent": "left_fin_1", + "pivot": [4.5, 2, 3], + "cubes": [ + {"origin": [1, 2, 3], "size": [10, 0, 8], "uv": [0, 12]} + ] + }, + { + "name": "right_fin_1", + "parent": "body", + "pivot": [-4.5, 2, 1], + "cubes": [ + {"origin": [-11, 2, -5], "size": [10, 0, 8], "uv": [19, 0], "mirror": true} + ] + }, + { + "name": "right_fin_tip", + "parent": "right_fin_1", + "pivot": [-11, 2, -1], + "cubes": [ + {"origin": [-17, 2, -5], "size": [6, 0, 8], "uv": [12, 20], "mirror": true} + ] + }, + { + "name": "right_fin_2", + "parent": "right_fin_1", + "pivot": [-4.5, 2, 3], + "cubes": [ + {"origin": [-11, 2, 3], "size": [10, 0, 8], "uv": [0, 12], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/textures/entity/blue_spotted_stingray.png b/src/main/resources/assets/hybrid-aquatic/textures/entity/blue_spotted_stingray.png deleted file mode 100644 index 24bdfd8e7336293ce43f235081c4ec288e25c154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 791 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 UQy2B