diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/all_cold_oceans.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/all_cold_oceans.json deleted file mode 100644 index f95416072..000000000 --- a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/all_cold_oceans.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:cold_ocean", - "minecraft:frozen_ocean", - "minecraft:deep_cold_ocean", - "minecraft:deep_frozen_ocean" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_cold_oceans.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/arctic_oceans.json similarity index 69% rename from src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_cold_oceans.json rename to src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/arctic_oceans.json index 8a9f2610b..a37705b77 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_cold_oceans.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/arctic_oceans.json @@ -1,7 +1,7 @@ { "replace": false, "values": [ - "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", "minecraft:deep_frozen_ocean" ] } \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/cold_oceans.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/cold_oceans.json index 8b7ba7482..bdad8e56c 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/cold_oceans.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/cold_oceans.json @@ -2,6 +2,6 @@ "replace": false, "values": [ "minecraft:cold_ocean", - "minecraft:frozen_ocean" + "minecraft:deep_cold_ocean" ] } \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_warm_oceans.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_warm_oceans.json deleted file mode 100644 index 3bd34edd7..000000000 --- a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_warm_oceans.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:deep_lukewarm_ocean" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/ocean.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/ocean.json deleted file mode 100644 index 3569bef88..000000000 --- a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/ocean.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:ocean" - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_ocean.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/temperate_oceans.json similarity index 74% rename from src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_ocean.json rename to src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/temperate_oceans.json index 2a4dc096e..7c7a5f59a 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/deep_ocean.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/temperate_oceans.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "minecraft:ocean", "minecraft:deep_ocean" ] } \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/all_warm_oceans.json b/src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/tropical_oceans.json similarity index 100% rename from src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/all_warm_oceans.json rename to src/generated/resources/data/hybrid-aquatic/tags/worldgen/biome/tropical_oceans.json 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 1d2faced9..221ef7d22 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 @@ -34,30 +34,19 @@ class BiomeTagProvider(output: FabricDataOutput, registriesFuture: CompletableFu .forceAddTag(BiomeTags.IS_DEEP_OCEAN) .forceAddTag(BiomeTags.IS_BEACH) - getOrCreateTagBuilder(HybridAquaticBiomeTags.OCEAN) - .add(BiomeKeys.OCEAN) - - getOrCreateTagBuilder(HybridAquaticBiomeTags.DEEP_OCEAN) - .add(BiomeKeys.DEEP_OCEAN) - - getOrCreateTagBuilder(HybridAquaticBiomeTags.COLD_OCEANS) - .add(BiomeKeys.COLD_OCEAN, - BiomeKeys.FROZEN_OCEAN) - - getOrCreateTagBuilder(HybridAquaticBiomeTags.DEEP_COLD_OCEANS) - .add(BiomeKeys.DEEP_COLD_OCEAN, + getOrCreateTagBuilder(HybridAquaticBiomeTags.ARCTIC_OCEANS) + .add(BiomeKeys.FROZEN_OCEAN, BiomeKeys.DEEP_FROZEN_OCEAN) - getOrCreateTagBuilder(HybridAquaticBiomeTags.ALL_COLD_OCEANS) + getOrCreateTagBuilder(HybridAquaticBiomeTags.COLD_OCEANS) .add(BiomeKeys.COLD_OCEAN, - BiomeKeys.FROZEN_OCEAN, - BiomeKeys.DEEP_COLD_OCEAN, - BiomeKeys.DEEP_FROZEN_OCEAN) + BiomeKeys.DEEP_COLD_OCEAN) - getOrCreateTagBuilder(HybridAquaticBiomeTags.DEEP_WARM_OCEANS) - .add(BiomeKeys.DEEP_LUKEWARM_OCEAN) + getOrCreateTagBuilder(HybridAquaticBiomeTags.TEMPERATE_OCEANS) + .add(BiomeKeys.OCEAN) + .add(BiomeKeys.DEEP_OCEAN) - getOrCreateTagBuilder(HybridAquaticBiomeTags.ALL_WARM_OCEANS) + getOrCreateTagBuilder(HybridAquaticBiomeTags.TROPICAL_OCEANS) .add(BiomeKeys.LUKEWARM_OCEAN, BiomeKeys.DEEP_LUKEWARM_OCEAN) diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/HybridAquaticCritterEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/HybridAquaticCritterEntity.kt index caa19abb3..690de194c 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/HybridAquaticCritterEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/HybridAquaticCritterEntity.kt @@ -2,6 +2,7 @@ package dev.hybridlabs.aquatic.entity.critter import dev.hybridlabs.aquatic.entity.critter.HybridAquaticCritterEntity.VariantCollisionRules.ExclusionStatus.EXCLUSIVE import dev.hybridlabs.aquatic.entity.critter.HybridAquaticCritterEntity.VariantCollisionRules.ExclusionStatus.INCLUSIVE +import dev.hybridlabs.aquatic.entity.fish.HybridAquaticFishEntity import net.minecraft.entity.EntityData import net.minecraft.entity.EntityType import net.minecraft.entity.SpawnReason @@ -327,9 +328,9 @@ open class HybridAquaticCritterEntity( } companion object { - fun biomeVariant(variantName: String, biomes : TagKey, ignore : List = emptyList()): CritterVariant { + fun biomeVariant(variantName: String, biomes : List>, ignore : List = emptyList()): CritterVariant { return CritterVariant(variantName, { world, _, pos, _ -> - world.getBiome(pos).isIn(biomes) + biomes.any { tag -> world.getBiome(pos).isIn(tag) } }, ignore) } } diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/NudibranchEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/NudibranchEntity.kt index 2355cded8..e860c7929 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/NudibranchEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/NudibranchEntity.kt @@ -12,23 +12,23 @@ import software.bernie.geckolib.core.`object`.PlayState class NudibranchEntity(entityType: EntityType, world: World) : HybridAquaticCritterEntity(entityType, world, variants = hashMapOf( - "pyjama" to CritterVariant.biomeVariant("pyjama", HybridAquaticBiomeTags.REEF, + "pyjama" to CritterVariant.biomeVariant("pyjama", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "bullock" to CritterVariant.biomeVariant("bullock", HybridAquaticBiomeTags.REEF, + "bullock" to CritterVariant.biomeVariant("bullock", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "sagami" to CritterVariant.biomeVariant("sagami", HybridAquaticBiomeTags.REEF, + "sagami" to CritterVariant.biomeVariant("sagami", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "festiva" to CritterVariant.biomeVariant("festiva", HybridAquaticBiomeTags.REEF, + "festiva" to CritterVariant.biomeVariant("festiva", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "magnificent" to CritterVariant.biomeVariant("magnificent", HybridAquaticBiomeTags.REEF, + "magnificent" to CritterVariant.biomeVariant("magnificent", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "kubaryana" to CritterVariant.biomeVariant("kubaryana", HybridAquaticBiomeTags.REEF, + "kubaryana" to CritterVariant.biomeVariant("kubaryana", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "yonowae" to CritterVariant.biomeVariant("yonowae", HybridAquaticBiomeTags.REEF, + "yonowae" to CritterVariant.biomeVariant("yonowae", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "kuniei" to CritterVariant.biomeVariant("kuniei", HybridAquaticBiomeTags.REEF, + "kuniei" to CritterVariant.biomeVariant("kuniei", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "baba" to CritterVariant.biomeVariant("baba", HybridAquaticBiomeTags.REEF, + "baba" to CritterVariant.biomeVariant("baba", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), )) { diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaCucumberEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaCucumberEntity.kt index 155b2808a..086cac5b0 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaCucumberEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaCucumberEntity.kt @@ -12,11 +12,11 @@ import software.bernie.geckolib.core.`object`.PlayState class SeaCucumberEntity(entityType: EntityType, world: World) : HybridAquaticCritterEntity(entityType, world, variants = hashMapOf( - "sea_pig" to CritterVariant.biomeVariant("sea_pig", HybridAquaticBiomeTags.ALL_DEEP_OCEANS, + "sea_pig" to CritterVariant.biomeVariant("sea_pig", listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS, HybridAquaticBiomeTags.COLD_OCEANS, HybridAquaticBiomeTags.COLD_OCEANS), ignore = listOf(CritterVariant.Ignore.ANIMATION)), - "black" to CritterVariant.biomeVariant("black", HybridAquaticBiomeTags.ALL_OCEANS, + "black" to CritterVariant.biomeVariant("black", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "red" to CritterVariant.biomeVariant("red", HybridAquaticBiomeTags.ALL_OCEANS, + "red" to CritterVariant.biomeVariant("red", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), )) { diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaUrchinEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaUrchinEntity.kt index 029660c92..3ed23e890 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaUrchinEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/SeaUrchinEntity.kt @@ -10,30 +10,32 @@ import net.minecraft.entity.attribute.EntityAttributes import net.minecraft.entity.damage.DamageSource import net.minecraft.entity.damage.DamageTypes import net.minecraft.entity.mob.PathAwareEntity +import net.minecraft.registry.tag.BiomeTags import net.minecraft.registry.tag.DamageTypeTags import net.minecraft.util.math.BlockPos import net.minecraft.world.World +import net.minecraft.world.biome.Biome import software.bernie.geckolib.core.animatable.GeoAnimatable import software.bernie.geckolib.core.animation.AnimationState import software.bernie.geckolib.core.`object`.PlayState class SeaUrchinEntity(entityType: EntityType, world: World) : HybridAquaticCritterEntity(entityType, world, variants = hashMapOf( - "black" to CritterVariant.biomeVariant("black", HybridAquaticBiomeTags.ALL_OCEANS, + "black" to CritterVariant.biomeVariant("black", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "blue" to CritterVariant.biomeVariant("blue", HybridAquaticBiomeTags.ALL_OCEANS, + "blue" to CritterVariant.biomeVariant("blue", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "purple" to CritterVariant.biomeVariant("purple", HybridAquaticBiomeTags.ALL_OCEANS, + "purple" to CritterVariant.biomeVariant("purple", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "red" to CritterVariant.biomeVariant("red", HybridAquaticBiomeTags.ALL_OCEANS, + "red" to CritterVariant.biomeVariant("red", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "long_black" to CritterVariant.biomeVariant("long_black", HybridAquaticBiomeTags.ALL_OCEANS, + "long_black" to CritterVariant.biomeVariant("long_black", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "long_blue" to CritterVariant.biomeVariant("long_blue", HybridAquaticBiomeTags.ALL_OCEANS, + "long_blue" to CritterVariant.biomeVariant("long_blue", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "long_purple" to CritterVariant.biomeVariant("long_purple", HybridAquaticBiomeTags.ALL_OCEANS, + "long_purple" to CritterVariant.biomeVariant("long_purple", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "long_red" to CritterVariant.biomeVariant("long_red", HybridAquaticBiomeTags.ALL_OCEANS, + "long_red" to CritterVariant.biomeVariant("long_red", listOf(BiomeTags.IS_OCEAN, BiomeTags.IS_DEEP_OCEAN), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)),)) { private var timeUntilNextBreak = 0 diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/StarfishEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/StarfishEntity.kt index fc397de1c..dfb0272e9 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/StarfishEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/critter/StarfishEntity.kt @@ -12,46 +12,46 @@ import software.bernie.geckolib.core.`object`.PlayState class StarfishEntity(entityType: EntityType, world: World) : HybridAquaticCritterEntity(entityType, world, variants = hashMapOf( - "blue" to CritterVariant.biomeVariant("blue", HybridAquaticBiomeTags.REEF, + "blue" to CritterVariant.biomeVariant("blue", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "orange" to CritterVariant.biomeVariant("orange", HybridAquaticBiomeTags.REEF, + "orange" to CritterVariant.biomeVariant("orange", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "green" to CritterVariant.biomeVariant("green", HybridAquaticBiomeTags.REEF, + "green" to CritterVariant.biomeVariant("green", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "purple" to CritterVariant.biomeVariant("purple", HybridAquaticBiomeTags.REEF, + "purple" to CritterVariant.biomeVariant("purple", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "red" to CritterVariant.biomeVariant("red", HybridAquaticBiomeTags.REEF, + "red" to CritterVariant.biomeVariant("red", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "yellow" to CritterVariant.biomeVariant("yellow", HybridAquaticBiomeTags.REEF, + "yellow" to CritterVariant.biomeVariant("yellow", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_blue" to CritterVariant.biomeVariant("medium_blue", HybridAquaticBiomeTags.REEF, + "medium_blue" to CritterVariant.biomeVariant("medium_blue", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_green" to CritterVariant.biomeVariant("medium_green", HybridAquaticBiomeTags.REEF, + "medium_green" to CritterVariant.biomeVariant("medium_green", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_orange" to CritterVariant.biomeVariant("medium_orange", HybridAquaticBiomeTags.REEF, + "medium_orange" to CritterVariant.biomeVariant("medium_orange", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_purple" to CritterVariant.biomeVariant("medium_purple", HybridAquaticBiomeTags.REEF, + "medium_purple" to CritterVariant.biomeVariant("medium_purple", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_red" to CritterVariant.biomeVariant("medium_red", HybridAquaticBiomeTags.REEF, + "medium_red" to CritterVariant.biomeVariant("medium_red", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_yellow" to CritterVariant.biomeVariant("medium_yellow", HybridAquaticBiomeTags.REEF, + "medium_yellow" to CritterVariant.biomeVariant("medium_yellow", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_knobbed_blue" to CritterVariant.biomeVariant("medium_knobbed_blue", HybridAquaticBiomeTags.REEF, + "medium_knobbed_blue" to CritterVariant.biomeVariant("medium_knobbed_blue", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_knobbed_green" to CritterVariant.biomeVariant("medium_knobbed_green", HybridAquaticBiomeTags.REEF, + "medium_knobbed_green" to CritterVariant.biomeVariant("medium_knobbed_green", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_knobbed_orange" to CritterVariant.biomeVariant("medium_knobbed_orange", HybridAquaticBiomeTags.REEF, + "medium_knobbed_orange" to CritterVariant.biomeVariant("medium_knobbed_orange", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_knobbed_purple" to CritterVariant.biomeVariant("medium_knobbed_purple", HybridAquaticBiomeTags.REEF, + "medium_knobbed_purple" to CritterVariant.biomeVariant("medium_knobbed_purple", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_knobbed_red" to CritterVariant.biomeVariant("medium_knobbed_red", HybridAquaticBiomeTags.REEF, + "medium_knobbed_red" to CritterVariant.biomeVariant("medium_knobbed_red", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "medium_knobbed_yellow" to CritterVariant.biomeVariant("medium_knobbed_yellow", HybridAquaticBiomeTags.REEF, + "medium_knobbed_yellow" to CritterVariant.biomeVariant("medium_knobbed_yellow", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)), - "crown_of_thorns" to CritterVariant.biomeVariant("crown_of_thorns", HybridAquaticBiomeTags.REEF), - "brittlestar_black" to CritterVariant.biomeVariant("brittlestar_black", HybridAquaticBiomeTags.ALL_DEEP_OCEANS), - "brittlestar_yellow" to CritterVariant.biomeVariant("brittlestar_yellow", HybridAquaticBiomeTags.ALL_DEEP_OCEANS), - "brittlestar_white" to CritterVariant.biomeVariant("brittlestar_white", HybridAquaticBiomeTags.ALL_DEEP_OCEANS),)) { + "crown_of_thorns" to CritterVariant.biomeVariant("crown_of_thorns", listOf(HybridAquaticBiomeTags.REEF)), + "brittlestar_black" to CritterVariant.biomeVariant("brittlestar_black", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF)), + "brittlestar_yellow" to CritterVariant.biomeVariant("brittlestar_yellow", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF)), + "brittlestar_white" to CritterVariant.biomeVariant("brittlestar_white", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS)),)) { companion object { fun createMobAttributes(): DefaultAttributeContainer.Builder { diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/MahiEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/MahiEntity.kt index 7d8174a70..ee9344a79 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/MahiEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/MahiEntity.kt @@ -11,9 +11,9 @@ import net.minecraft.world.World class MahiEntity(entityType: EntityType, world: World) : HybridAquaticFishEntity(entityType, world, variants = hashMapOf( - "mahi" to FishVariant.biomeVariant("mahi", listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), + "mahi" to FishVariant.biomeVariant("mahi", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), ignore = listOf(FishVariant.Ignore.ANIMATION)), - "pompano" to FishVariant.biomeVariant("pompano", listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), + "pompano" to FishVariant.biomeVariant("pompano", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), ignore = listOf(FishVariant.Ignore.ANIMATION)), ), listOf( diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SeaBassEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SeaBassEntity.kt index eb117c514..a22252c53 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SeaBassEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SeaBassEntity.kt @@ -10,7 +10,7 @@ import net.minecraft.world.World class SeaBassEntity(entityType: EntityType, world: World) : HybridAquaticFishEntity(entityType, world, variants = hashMapOf( - "black" to FishVariant.biomeVariant("black", listOf(HybridAquaticBiomeTags.OCEAN), + "black" to FishVariant.biomeVariant("black", listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS), ignore = listOf(FishVariant.Ignore.ANIMATION, FishVariant.Ignore.MODEL)), ), listOf( diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SunfishEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SunfishEntity.kt index 9201fc07d..17371be17 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SunfishEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/SunfishEntity.kt @@ -11,9 +11,9 @@ import net.minecraft.world.World class SunfishEntity(entityType: EntityType, world: World) : HybridAquaticFishEntity(entityType, world, variants = hashMapOf( - "ocean" to FishVariant.biomeVariant("ocean", listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS)), - "hoodwinker" to FishVariant.biomeVariant("hoodwinker", listOf(HybridAquaticBiomeTags.REEF)), - "sharptail" to FishVariant.biomeVariant("sharptail", listOf(HybridAquaticBiomeTags.OCEAN))), + "ocean" to FishVariant.biomeVariant("ocean", listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS, HybridAquaticBiomeTags.TROPICAL_OCEANS)), + "hoodwinker" to FishVariant.biomeVariant("hoodwinker", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS)), + "sharptail" to FishVariant.biomeVariant("sharptail", listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS))), listOf( HybridAquaticEntityTags.JELLYFISH), listOf( diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/TunaEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/TunaEntity.kt index f8caa76fa..86e45bf2e 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/TunaEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/fish/TunaEntity.kt @@ -17,9 +17,9 @@ class TunaEntity(entityType: EntityType, world: World) : listOf( HybridAquaticEntityTags.SHARK), variants = hashMapOf( - "bluefin" to FishVariant.biomeVariant("bluefin", listOf(HybridAquaticBiomeTags.ALL_OCEANS), + "bluefin" to FishVariant.biomeVariant("bluefin", listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS), ignore = listOf(FishVariant.Ignore.ANIMATION)), - "yellowfin" to FishVariant.biomeVariant("yellowfin", listOf(HybridAquaticBiomeTags.ALL_WARM_OCEANS), + "yellowfin" to FishVariant.biomeVariant("yellowfin", listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS), ignore = listOf(FishVariant.Ignore.ANIMATION)))) { override fun getLimitPerChunk(): Int { diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt b/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt index b1283102f..b5d148a4d 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/tag/HybridAquaticBiomeTags.kt @@ -10,15 +10,10 @@ object HybridAquaticBiomeTags { val BOTTLE_SPAWN_BIOMES = create("bottle_spawn_biomes") - val OCEAN = create("ocean") - val DEEP_OCEAN = create("deep_ocean") - val ALL_OCEANS = create("all_oceans") - val ALL_DEEP_OCEANS = create("deep_oceans") + val ARCTIC_OCEANS = create("arctic_oceans") val COLD_OCEANS = create("cold_oceans") - val DEEP_COLD_OCEANS = create("deep_cold_oceans") - val ALL_COLD_OCEANS = create("all_cold_oceans") - val DEEP_WARM_OCEANS = create("deep_warm_oceans") - val ALL_WARM_OCEANS = create("all_warm_oceans") + val TEMPERATE_OCEANS = create("temperate_oceans") + val TROPICAL_OCEANS = create("tropical_oceans") val REEF = create("reef") val JUNGLE = create("jungle") val CHERRY = create("cherry") diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt b/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt index abf903cc4..72f40def7 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt @@ -26,15 +26,15 @@ object EntityBiomeModifications { addFish(HybridAquaticEntityTypes.BETTA, listOf(HybridAquaticBiomeTags.SWAMP, HybridAquaticBiomeTags.MARSHES), 1, 1, 1) addFish(HybridAquaticEntityTypes.GOLDFISH, listOf(HybridAquaticBiomeTags.CHERRY), 1, 1, 2) addFish(HybridAquaticEntityTypes.CARP, listOf(HybridAquaticBiomeTags.CHERRY, HybridAquaticBiomeTags.RIVERS), 1, 1, 2) - addFish(HybridAquaticEntityTypes.MANTA_RAY, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 1) - addFish(HybridAquaticEntityTypes.FLASHLIGHT_FISH, listOf(HybridAquaticBiomeTags.ALL_DEEP_OCEANS), 5, 1, 5) - addFish(HybridAquaticEntityTypes.MAHI, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 3) - addFish(HybridAquaticEntityTypes.NEEDLEFISH, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 3) - addFish(HybridAquaticEntityTypes.MACKEREL, listOf(HybridAquaticBiomeTags.ALL_COLD_OCEANS, HybridAquaticBiomeTags.OCEAN), 5, 3, 5) - addFish(HybridAquaticEntityTypes.OPAH, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 1) - addFish(HybridAquaticEntityTypes.OARFISH, listOf(HybridAquaticBiomeTags.ALL_DEEP_OCEANS), 1, 1, 1) - addFish(HybridAquaticEntityTypes.ROCKFISH, listOf(HybridAquaticBiomeTags.OCEAN), 3, 1, 3) - addFish(HybridAquaticEntityTypes.SEA_BASS, listOf(HybridAquaticBiomeTags.OCEAN), 3, 1, 3) + addFish(HybridAquaticEntityTypes.MANTA_RAY, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) + addFish(HybridAquaticEntityTypes.FLASHLIGHT_FISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 5, 1, 5) + addFish(HybridAquaticEntityTypes.MAHI, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 3) + addFish(HybridAquaticEntityTypes.NEEDLEFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 3) + addFish(HybridAquaticEntityTypes.MACKEREL, listOf(HybridAquaticBiomeTags.COLD_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS), 5, 3, 5) + addFish(HybridAquaticEntityTypes.OPAH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) + addFish(HybridAquaticEntityTypes.OARFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 1, 1, 1) + addFish(HybridAquaticEntityTypes.ROCKFISH, listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS), 3, 1, 3) + addFish(HybridAquaticEntityTypes.SEA_BASS, listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS), 3, 1, 3) addFish(HybridAquaticEntityTypes.SEAHORSE, listOf(HybridAquaticBiomeTags.REEF), 1, 1, 2) addFish(HybridAquaticEntityTypes.LIONFISH, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 2) addFish(HybridAquaticEntityTypes.STONEFISH, listOf(HybridAquaticBiomeTags.REEF), 1, 1, 1) @@ -46,77 +46,77 @@ object EntityBiomeModifications { addFish(HybridAquaticEntityTypes.TRIGGERFISH, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 1) addFish(HybridAquaticEntityTypes.PARROTFISH, listOf(HybridAquaticBiomeTags.REEF), 5, 1, 2) addFish(HybridAquaticEntityTypes.MORAY_EEL, listOf(HybridAquaticBiomeTags.REEF), 1, 1, 1) - addFish(HybridAquaticEntityTypes.SUNFISH, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 1, 1, 1) - addFish(HybridAquaticEntityTypes.TUNA, listOf(HybridAquaticBiomeTags.ALL_DEEP_OCEANS), 5, 1, 3) + addFish(HybridAquaticEntityTypes.SUNFISH, listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS), 1, 1, 1) + addFish(HybridAquaticEntityTypes.TUNA, listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS, HybridAquaticBiomeTags.TROPICAL_OCEANS), 5, 1, 3) // underground fishes - addUndergroundFish(HybridAquaticEntityTypes.ANGLERFISH, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 5, 1, 2) - addUndergroundFish(HybridAquaticEntityTypes.BARRELEYE, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 3, 1, 1) - addUndergroundFish(HybridAquaticEntityTypes.DRAGONFISH, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 5, 1, 1) - addUndergroundFish(HybridAquaticEntityTypes.FRILLED_SHARK, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 1) - addUndergroundFish(HybridAquaticEntityTypes.RATFISH, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 5, 1, 2) - addUndergroundFish(HybridAquaticEntityTypes.SEA_ANGEL, listOf(HybridAquaticBiomeTags.DEEP_COLD_OCEANS), 3, 1, 1) + addUndergroundFish(HybridAquaticEntityTypes.ANGLERFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 5, 1, 2) + addUndergroundFish(HybridAquaticEntityTypes.BARRELEYE, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) + addUndergroundFish(HybridAquaticEntityTypes.DRAGONFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 5, 1, 1) + addUndergroundFish(HybridAquaticEntityTypes.FRILLED_SHARK, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) + addUndergroundFish(HybridAquaticEntityTypes.RATFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 5, 1, 2) + addUndergroundFish(HybridAquaticEntityTypes.SEA_ANGEL, listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS), 3, 1, 1) // cephalopods - addCephalopod(HybridAquaticEntityTypes.FIREFLY_SQUID, listOf(HybridAquaticBiomeTags.ALL_WARM_OCEANS), 3, 1, 2) + addCephalopod(HybridAquaticEntityTypes.FIREFLY_SQUID, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 2) addCephalopod(HybridAquaticEntityTypes.CUTTLEFISH, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 1) // underground cephalopods - addUndergroundCephalopod(HybridAquaticEntityTypes.VAMPIRE_SQUID, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 1) - addUndergroundCephalopod(HybridAquaticEntityTypes.NAUTILUS, listOf(HybridAquaticBiomeTags.ALL_DEEP_OCEANS), 3, 1, 1) - addUndergroundCephalopod(HybridAquaticEntityTypes.UMBRELLA_OCTOPUS, listOf(HybridAquaticBiomeTags.ALL_DEEP_OCEANS), 1, 1, 1) - addUndergroundCephalopod(HybridAquaticEntityTypes.GLOWING_SUCKER_OCTOPUS, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 1) + addUndergroundCephalopod(HybridAquaticEntityTypes.VAMPIRE_SQUID, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) + addUndergroundCephalopod(HybridAquaticEntityTypes.NAUTILUS, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) + addUndergroundCephalopod(HybridAquaticEntityTypes.UMBRELLA_OCTOPUS, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 1, 1, 1) + addUndergroundCephalopod(HybridAquaticEntityTypes.GLOWING_SUCKER_OCTOPUS, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) // jellies - addJelly(HybridAquaticEntityTypes.BARREL_JELLYFISH, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 3, 1, 1) + addJelly(HybridAquaticEntityTypes.BARREL_JELLYFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS), 3, 1, 1) addJelly(HybridAquaticEntityTypes.MOON_JELLYFISH, listOf(HybridAquaticBiomeTags.REEF), 5, 1, 2) addJelly(HybridAquaticEntityTypes.MAUVE_STINGER, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 2) addJelly(HybridAquaticEntityTypes.FRIED_EGG_JELLYFISH, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 2) addJelly(HybridAquaticEntityTypes.CAULIFLOWER_JELLYFISH, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 2) - addJelly(HybridAquaticEntityTypes.COMPASS_JELLYFISH, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 2) - addJelly(HybridAquaticEntityTypes.BLUE_JELLYFISH, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 2) - addJelly(HybridAquaticEntityTypes.SEA_NETTLE, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 2) - addJelly(HybridAquaticEntityTypes.NOMURA_JELLYFISH, listOf(HybridAquaticBiomeTags.COLD_OCEANS), 1, 1, 1) - addJelly(HybridAquaticEntityTypes.LIONS_MANE_JELLYFISH, listOf(HybridAquaticBiomeTags.DEEP_COLD_OCEANS), 1, 1, 1) + addJelly(HybridAquaticEntityTypes.COMPASS_JELLYFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 2) + addJelly(HybridAquaticEntityTypes.BLUE_JELLYFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 2) + addJelly(HybridAquaticEntityTypes.SEA_NETTLE, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 2) + addJelly(HybridAquaticEntityTypes.NOMURA_JELLYFISH, listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS), 1, 1, 1) + addJelly(HybridAquaticEntityTypes.LIONS_MANE_JELLYFISH, listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS), 1, 1, 1) // underground jellies - addUndergroundJelly(HybridAquaticEntityTypes.ATOLLA_JELLYFISH, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 1, 1, 2) + addUndergroundJelly(HybridAquaticEntityTypes.ATOLLA_JELLYFISH, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 1, 1, 2) // sharks - addShark(HybridAquaticEntityTypes.GREAT_WHITE_SHARK, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 1) + addShark(HybridAquaticEntityTypes.GREAT_WHITE_SHARK, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) addShark(HybridAquaticEntityTypes.TIGER_SHARK, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 2) - addShark(HybridAquaticEntityTypes.HAMMERHEAD_SHARK, listOf(HybridAquaticBiomeTags.ALL_WARM_OCEANS), 5, 1, 2) - addShark(HybridAquaticEntityTypes.THRESHER_SHARK, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 1) - addShark(HybridAquaticEntityTypes.BULL_SHARK, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 3, 1, 2) - addShark(HybridAquaticEntityTypes.WHALE_SHARK, listOf(HybridAquaticBiomeTags.DEEP_WARM_OCEANS), 1, 1, 1) - addShark(HybridAquaticEntityTypes.BASKING_SHARK, listOf(HybridAquaticBiomeTags.DEEP_COLD_OCEANS), 1, 1, 1) + addShark(HybridAquaticEntityTypes.HAMMERHEAD_SHARK, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 5, 1, 2) + addShark(HybridAquaticEntityTypes.THRESHER_SHARK, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 1) + addShark(HybridAquaticEntityTypes.BULL_SHARK, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 2) + addShark(HybridAquaticEntityTypes.WHALE_SHARK, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 1, 1, 1) + addShark(HybridAquaticEntityTypes.BASKING_SHARK, listOf(HybridAquaticBiomeTags.COLD_OCEANS), 1, 1, 1) // crustaceans addCrustacean(HybridAquaticEntityTypes.DUNGENESS_CRAB, listOf(HybridAquaticBiomeTags.SANDY_BEACHES), 5, 1, 2) addCrustacean(HybridAquaticEntityTypes.FIDDLER_CRAB, listOf(HybridAquaticBiomeTags.SWAMP, HybridAquaticBiomeTags.MANGROVES, HybridAquaticBiomeTags.MARSHES), 5, 1, 2) addCrustacean(HybridAquaticEntityTypes.GHOST_CRAB, listOf(HybridAquaticBiomeTags.SANDY_BEACHES), 5, 1, 2) - addCrustacean(HybridAquaticEntityTypes.HORSESHOE_CRAB, listOf(HybridAquaticBiomeTags.ALL_WARM_OCEANS), 1, 1, 2) + addCrustacean(HybridAquaticEntityTypes.HORSESHOE_CRAB, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS), 1, 1, 2) addCrustacean(HybridAquaticEntityTypes.LIGHTFOOT_CRAB, listOf(HybridAquaticBiomeTags.ROCKY_BEACHES), 3, 1, 2) - addCrustacean(HybridAquaticEntityTypes.FLOWER_CRAB, listOf(HybridAquaticBiomeTags.REEF, HybridAquaticBiomeTags.MANGROVES, HybridAquaticBiomeTags.MARSHES), 5, 1, 2) + addCrustacean(HybridAquaticEntityTypes.FLOWER_CRAB, listOf(HybridAquaticBiomeTags.REEF, HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.MANGROVES, HybridAquaticBiomeTags.MARSHES), 5, 1, 2) addCrustacean(HybridAquaticEntityTypes.VAMPIRE_CRAB, listOf(HybridAquaticBiomeTags.JUNGLE, HybridAquaticBiomeTags.TROPICAL_RIVERS), 3, 1, 2) addCrustacean(HybridAquaticEntityTypes.SHRIMP, listOf(HybridAquaticBiomeTags.REEF), 5, 1, 2) - addCrustacean(HybridAquaticEntityTypes.LOBSTER, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 1) + addCrustacean(HybridAquaticEntityTypes.LOBSTER, listOf(HybridAquaticBiomeTags.REEF, HybridAquaticBiomeTags.TROPICAL_OCEANS,), 3, 1, 1) addCrustacean(HybridAquaticEntityTypes.DECORATOR_CRAB, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 2) addCrustacean(HybridAquaticEntityTypes.CRAYFISH, listOf(HybridAquaticBiomeTags.RIVERS), 5, 1, 2) addCrustacean(HybridAquaticEntityTypes.COCONUT_CRAB, listOf(HybridAquaticBiomeTags.SANDY_BEACHES), 3, 1, 1) - addCrustacean(HybridAquaticEntityTypes.HERMIT_CRAB, listOf(HybridAquaticBiomeTags.SANDY_BEACHES), 3, 1, 2) + addCrustacean(HybridAquaticEntityTypes.HERMIT_CRAB, listOf(HybridAquaticBiomeTags.SANDY_BEACHES, HybridAquaticBiomeTags.TROPICAL_OCEANS), 3, 1, 2) //underground crustaceans - addUndergroundCrustacean(HybridAquaticEntityTypes.YETI_CRAB, listOf(HybridAquaticBiomeTags.DEEP_COLD_OCEANS), 2, 2, 2) - addUndergroundCrustacean(HybridAquaticEntityTypes.GIANT_ISOPOD, listOf(HybridAquaticBiomeTags.ALL_DEEP_OCEANS), 1, 1, 1) - addUndergroundCrustacean(HybridAquaticEntityTypes.SPIDER_CRAB, listOf(HybridAquaticBiomeTags.ALL_DEEP_OCEANS), 3, 1, 2) + addUndergroundCrustacean(HybridAquaticEntityTypes.YETI_CRAB, listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS), 2, 2, 2) + addUndergroundCrustacean(HybridAquaticEntityTypes.GIANT_ISOPOD, listOf(HybridAquaticBiomeTags.COLD_OCEANS), 1, 1, 1) + addUndergroundCrustacean(HybridAquaticEntityTypes.SPIDER_CRAB, listOf(HybridAquaticBiomeTags.TEMPERATE_OCEANS, HybridAquaticBiomeTags.COLD_OCEANS), 3, 1, 2) //critters - addCritter(HybridAquaticEntityTypes.NUDIBRANCH, listOf(HybridAquaticBiomeTags.REEF), 3, 1, 2) - addCritter(HybridAquaticEntityTypes.STARFISH, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 3, 1, 3) - addCritter(HybridAquaticEntityTypes.SEA_CUCUMBER, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 3, 1, 3) - addCritter(HybridAquaticEntityTypes.SEA_URCHIN, listOf(HybridAquaticBiomeTags.ALL_OCEANS), 5, 1, 3) + addCritter(HybridAquaticEntityTypes.NUDIBRANCH, listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS, HybridAquaticBiomeTags.COLD_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS, HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), 3, 1, 2) + addCritter(HybridAquaticEntityTypes.STARFISH, listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS, HybridAquaticBiomeTags.COLD_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS, HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), 3, 1, 3) + addCritter(HybridAquaticEntityTypes.SEA_CUCUMBER, listOf(HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS, HybridAquaticBiomeTags.REEF), 3, 1, 3) + addCritter(HybridAquaticEntityTypes.SEA_URCHIN, listOf(HybridAquaticBiomeTags.ARCTIC_OCEANS, HybridAquaticBiomeTags.COLD_OCEANS, HybridAquaticBiomeTags.TEMPERATE_OCEANS, HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.REEF), 5, 1, 3) } private fun addFish( diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/world/gen/feature/FeatureBiomeModifications.kt b/src/main/kotlin/dev/hybridlabs/aquatic/world/gen/feature/FeatureBiomeModifications.kt index 365f09138..ef67f1654 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/world/gen/feature/FeatureBiomeModifications.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/world/gen/feature/FeatureBiomeModifications.kt @@ -24,7 +24,7 @@ object FeatureBiomeModifications { ) BiomeModifications.addFeature( - BiomeSelectors.tag(HybridAquaticBiomeTags.ALL_OCEANS), + BiomeSelectors.tag(HybridAquaticBiomeTags.ARCTIC_OCEANS), GenerationStep.Feature.VEGETAL_DECORATION, HybridAquaticPlacedFeatures.TUBE_SPONGE_PATCH ) diff --git a/src/main/resources/assets/hybrid-aquatic/animations/karkinos.animation.json b/src/main/resources/assets/hybrid-aquatic/animations/karkinos.animation.json index 21ed3b1f9..be46cdafc 100644 --- a/src/main/resources/assets/hybrid-aquatic/animations/karkinos.animation.json +++ b/src/main/resources/assets/hybrid-aquatic/animations/karkinos.animation.json @@ -8,26 +8,32 @@ "right_arm_1": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "1.5": { - "vector": [0, -5, 0] + "post": [0, -5, 0], + "lerp_mode": "catmullrom" }, "3.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "left_arm_1": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "1.5": { - "vector": [0, 5, 0] + "post": [0, 5, 0], + "lerp_mode": "catmullrom" }, "3.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } } @@ -40,798 +46,609 @@ "right_leg_1": { "rotation": { "0.0": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [-22.5, -22.5, 22.5] + "post": [-22.5, -22.5, 22.5], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" } } }, "left_leg_1": { "rotation": { "0.0": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [-22.5, 22.5, -22.5] + "post": [-22.5, 22.5, -22.5], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" } } }, "right_leg_2": { "rotation": { "0.0": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [-22.5, -22.5, 22.5] + "post": [-22.5, -22.5, 22.5], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" } } }, "left_leg_2": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [-22.5, 22.5, -22.5] + "post": [-22.5, 22.5, -22.5], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_leg_3": { "rotation": { "0.0": { - "vector": [0, -45, 22.5] + "post": [0, -45, 22.5], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, -45, 0] + "post": [0, -45, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [-22.5, -22.5, 22.5] + "post": [-22.5, -22.5, 22.5], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, -45, 22.5] + "post": [0, -45, 22.5], + "lerp_mode": "catmullrom" } } }, "left_leg_3": { "rotation": { "0.0": { - "vector": [0, 45, 0] + "post": [0, 45, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [-22.5, 22.5, -22.5] + "post": [-22.5, 22.5, -22.5], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, 45, -22.5] + "post": [0, 45, -22.5], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 45, 0] + "post": [0, 45, 0], + "lerp_mode": "catmullrom" } } }, "right_leg_4": { "rotation": { "0.0": { - "vector": [20.94102, -26.71053, 30.36119] + "post": [20.94102, -26.71053, 30.36119], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [9.00717, -46.79519, 24.14867] + "post": [9.00717, -46.79519, 24.14867], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, -45, 0] + "post": [0, -45, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [20.94102, -26.71053, 30.36119] + "post": [20.94102, -26.71053, 30.36119], + "lerp_mode": "catmullrom" } } }, "left_leg_4": { "rotation": { "0.0": { - "vector": [9.00717, 46.79519, -24.14867] + "post": [9.00717, 46.79519, -24.14867], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 45, 0] + "post": [0, 45, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [20.94, 26.71, -30.36] + "post": [20.94, 26.71, -30.36], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [9.00717, 46.79519, -24.14867] + "post": [9.00717, 46.79519, -24.14867], + "lerp_mode": "catmullrom" } } }, "left_arm_2": { "rotation": { "0.0": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 15, 0] + "post": [0, 15, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" } } }, "right_arm_2": { "rotation": { "0.0": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, -15, 0] + "post": [0, -15, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" } } }, "body": { "rotation": { "0.0": { - "vector": [-2.5, 0, 0] + "post": [-2.5, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [-2.5, 0, 0] + "post": [-2.5, 0, 0], + "lerp_mode": "catmullrom" } } } } }, - "attack_left": { - "loop": true, - "animation_length": 1, - "bones": { - "body": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.5": { - "vector": [0, -5, 0] - }, - "0.75": { - "vector": [0, 5, 0] - }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "left_arm_1": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.5417": { - "vector": [0, -35, 0] - }, - "0.75": { - "vector": [7.5, 0, 0] - }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "left_arm_2": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.5417": { - "vector": [0, 5, 0] - }, - "0.75": { - "vector": [2.5, -15, 0] - }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "left_claw": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.5": { - "vector": [0, 0, -45] - }, - "0.75": { - "vector": [0, 0, 0] - }, - "1.0": { - "vector": [0, 0, 0] - } - } - } - } - }, - "attack": { + "move.run": { "loop": true, "animation_length": 0.75, "bones": { "right_leg_1": { "rotation": { "0.0": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [-22.5, -22.5, 22.5] + "post": [-22.5, -22.5, 22.5], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" } } }, "left_leg_1": { "rotation": { "0.0": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [-22.5, 22.5, -22.5] + "post": [-22.5, 22.5, -22.5], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" } } }, "right_leg_2": { "rotation": { "0.0": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [-22.5, -22.5, 22.5] + "post": [-22.5, -22.5, 22.5], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" } } }, "left_leg_2": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [-22.5, 22.5, -22.5] + "post": [-22.5, 22.5, -22.5], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_leg_3": { "rotation": { "0.0": { - "vector": [0, -45, 22.5] + "post": [0, -45, 22.5], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [0, -45, 0] + "post": [0, -45, 0], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [-22.5, -22.5, 22.5] + "post": [-22.5, -22.5, 22.5], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, -45, 22.5] + "post": [0, -45, 22.5], + "lerp_mode": "catmullrom" } } }, "left_leg_3": { "rotation": { "0.0": { - "vector": [0, 45, 0] + "post": [0, 45, 0], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [-22.5, 22.5, -22.5] + "post": [-22.5, 22.5, -22.5], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [0, 45, -22.5] + "post": [0, 45, -22.5], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, 45, 0] + "post": [0, 45, 0], + "lerp_mode": "catmullrom" } } }, "right_leg_4": { "rotation": { "0.0": { - "vector": [20.94102, -26.71053, 30.36119] + "post": [20.94102, -26.71053, 30.36119], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [9.00717, -46.79519, 24.14867] + "post": [9.00717, -46.79519, 24.14867], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [0, -45, 0] + "post": [0, -45, 0], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [20.94102, -26.71053, 30.36119] + "post": [20.94102, -26.71053, 30.36119], + "lerp_mode": "catmullrom" } } }, "left_leg_4": { "rotation": { "0.0": { - "vector": [9.00717, 46.79519, -24.14867] + "post": [9.00717, 46.79519, -24.14867], + "lerp_mode": "catmullrom" }, "0.2083": { - "vector": [0, 45, 0] + "post": [0, 45, 0], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.5833": { - "vector": [20.94, 26.71, -30.36] + "post": [20.94, 26.71, -30.36], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [9.00717, 46.79519, -24.14867] + "post": [9.00717, 46.79519, -24.14867], + "lerp_mode": "catmullrom" } } }, "left_arm_2": { "rotation": { "0.0": { - "vector": [50.29715, 9.71776, 39.49496] + "post": [50.29715, 9.71776, 39.49496], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [59.7395, 14.03639, 50.75063] + "post": [59.7395, 14.03639, 50.75063], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [50.29715, 9.71776, 39.49496] + "post": [50.29715, 9.71776, 39.49496], + "lerp_mode": "catmullrom" } } }, "right_arm_2": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [0, -15, 0] + "post": [0, -15, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "body": { "rotation": { "0.0": { - "vector": [-2.5, 0, 0] + "post": [-2.5, 0, 0], + "lerp_mode": "catmullrom" }, "0.375": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.75": { - "vector": [-2.5, 0, 0] + "post": [-2.5, 0, 0], + "lerp_mode": "catmullrom" } } }, "left_arm_1": { - "rotation": { - "vector": [-161.97827, 83.50389, 154.71285] - }, - "position": { - "vector": [2, 0, -3] - } + "rotation": [-161.97827, 83.50389, 154.71285], + "position": [2, 0, -3] }, "left_claw": { - "rotation": { - "vector": [0, 0, -45] - } + "rotation": [0, 0, -45] }, "right_arm_1": { - "rotation": { - "vector": [-136.55898, -71.71053, -149.63881] - }, - "position": { - "vector": [-1, 1, 0] - } + "rotation": [-136.55898, -71.71053, -149.63881], + "position": [-1, 1, 0] }, "right_claw": { - "rotation": { - "vector": [0, 0, 45] - } + "rotation": [0, 0, 45] } } }, - "spit": { + "attack.swing": { "loop": true, "animation_length": 1, "bones": { "body": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, - "0.3333": { - "vector": [5, 0, 0] + "0.4583": { + "post": [0, -5, 0], + "lerp_mode": "catmullrom" }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "left_arm_1": { - "rotation": { - "0.0": { - "vector": [0, 22.5, 0] - }, - "0.3333": { - "vector": [0, -22.5, 0] + "0.8333": { + "post": [0, 5, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 22.5, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, - "left_leg_2": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3333": { - "vector": [-5, 0, 0] - }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "left_leg_3": { + "left_arm_1": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, - "0.3333": { - "vector": [-8.5168, 0.34836, 7.67626] + "0.6667": { + "post": [0, -35, 0], + "lerp_mode": "catmullrom" }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "left_leg_4": { - "rotation": { - "0.0": { - "vector": [0, 0, 25.30064] - }, - "0.3333": { - "vector": [-26.3261, 2.36489, 25.30064] + "0.8333": { + "post": [7.5, 0, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 0, 25.30064] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, - "left_mouthpiece": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3333": { - "vector": [0, -67.5, 0] - }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "right_arm_1": { + "left_arm_2": { "rotation": { "0.0": { - "vector": [0, -22.5, 0] - }, - "0.3333": { - "vector": [0, 22.5, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, - "1.0": { - "vector": [0, -22.5, 0] - } - } - }, - "right_leg_2": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] + "0.6667": { + "post": [0, 5, 0], + "lerp_mode": "catmullrom" }, - "0.3333": { - "vector": [-5, 0, 0] + "0.8333": { + "post": [2.5, -15, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, - "right_leg_3": { + "left_claw": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, - "0.3333": { - "vector": [-8.5168, -0.34836, -7.67626] + "0.4583": { + "post": [0, 0, -45], + "lerp_mode": "catmullrom" }, - "1.0": { - "vector": [0, 0, 0] - } - } - }, - "right_leg_4": { - "rotation": { - "0.0": { - "vector": [0, 0, -25.30064] - }, - "0.3333": { - "vector": [-26.3261, -2.36489, -25.30064] + "0.8333": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "1.0": { - "vector": [0, 0, -25.30064] - } - } - }, - "right_mouthpiece": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3333": { - "vector": [0, 67.5, 0] - }, - "1.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } } } }, - "move.run": { - "loop": true, - "animation_length": 0.75, - "bones": { - "right_leg_1": { - "rotation": { - "0.0": [0, 22.5, 0], - "0.2083": [0, 0, 22.5], - "0.375": [-22.5, -22.5, 22.5], - "0.5833": [0, -22.5, 0], - "0.75": [0, 22.5, 0] - } - }, - "left_leg_1": { - "rotation": { - "0.0": [0, 0, -22.5], - "0.2083": [-22.5, 22.5, -22.5], - "0.375": [0, 22.5, 0], - "0.5833": [0, -22.5, 0], - "0.75": [0, 0, -22.5] - } - }, - "right_leg_2": { - "rotation": { - "0.0": [0, -22.5, 0], - "0.2083": [0, 0, 0], - "0.375": [0, 0, 22.5], - "0.5833": [-22.5, -22.5, 22.5], - "0.75": [0, -22.5, 0] - } - }, - "left_leg_2": { - "rotation": { - "0.0": [0, 0, 0], - "0.2083": [0, 0, -22.5], - "0.375": [-22.5, 22.5, -22.5], - "0.5833": [0, 22.5, 0], - "0.75": [0, 0, 0] - } - }, - "right_leg_3": { - "rotation": { - "0.0": [0, -45, 22.5], - "0.2083": [0, -45, 0], - "0.375": [0, 0, 0], - "0.5833": [-22.5, -22.5, 22.5], - "0.75": [0, -45, 22.5] - } - }, - "left_leg_3": { - "rotation": { - "0.0": [0, 45, 0], - "0.2083": [0, 0, 0], - "0.375": [-22.5, 22.5, -22.5], - "0.5833": [0, 45, -22.5], - "0.75": [0, 45, 0] - } - }, - "right_leg_4": { - "rotation": { - "0.0": [20.94102, -26.71053, 30.36119], - "0.2083": [9.00717, -46.79519, 24.14867], - "0.375": [0, -45, 0], - "0.5833": [0, -22.5, 0], - "0.75": [20.94102, -26.71053, 30.36119] - } - }, - "left_leg_4": { - "rotation": { - "0.0": [9.00717, 46.79519, -24.14867], - "0.2083": [0, 45, 0], - "0.375": [0, 22.5, 0], - "0.5833": [20.94, 26.71, -30.36], - "0.75": [9.00717, 46.79519, -24.14867] - } - }, - "left_arm_2": { - "rotation": { - "0.0": [50.29715, 9.71776, 39.49496], - "0.375": [59.7395, 14.03639, 50.75063], - "0.75": [50.29715, 9.71776, 39.49496] - } - }, - "right_arm_2": { - "rotation": { - "0.0": [0, 0, 0], - "0.375": [0, -15, 0], - "0.75": [0, 0, 0] - } - }, - "body": { - "rotation": { - "0.0": [-2.5, 0, 0], - "0.375": [0, 0, 0], - "0.75": [-2.5, 0, 0] - } - }, - "left_arm_1": { - "rotation": [-161.97827, 83.50389, 154.71285], - "position": [2, 0, -3] - }, - "left_claw": { - "rotation": [0, 0, -45] - }, - "right_arm_1": { - "rotation": [-136.55898, -71.71053, -149.63881], - "position": [-1, 1, 0] - }, - "right_claw": { - "rotation": [0, 0, 45] - } - } - }, - "attack.swing": { - "loop": true, - "animation_length": 0.25, - "bones": { - "body": { - "rotation": { - "0.0": [0, 0, 0], - "0.125": [0, -5, 0], - "0.2083": [0, 5, 0], - "0.25": [0, 0, 0] - } - }, - "left_arm_1": { - "rotation": { - "0.0": [0, 0, 0], - "0.1667": [0, -35, 0], - "0.2083": [7.5, 0, 0], - "0.25": [0, 0, 0] - } - }, - "left_arm_2": { - "rotation": { - "0.0": [0, 0, 0], - "0.1667": [0, 5, 0], - "0.2083": [2.5, -15, 0], - "0.25": [0, 0, 0] - } - }, - "left_claw": { - "rotation": { - "0.0": [0, 0, 0], - "0.125": [0, 0, -45], - "0.2083": [0, 0, 0], - "0.25": [0, 0, 0] - } - } - } - }, "attack.block": { "loop": true, "animation_length": 2, "bones": { "left_arm_2": { "rotation": { - "0.0": [57.04902, 21.55151, 59.26162], - "1.0": [48.48527, 18.51654, 49.82228], - "2.0": [57.04902, 21.55151, 59.26162] + "0.0": { + "post": [57.04902, 21.55151, 59.26162], + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": [48.48527, 18.51654, 49.82228], + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": [57.04902, 21.55151, 59.26162], + "lerp_mode": "catmullrom" + } } }, "right_arm_1": { @@ -839,9 +656,18 @@ }, "right_arm_2": { "rotation": { - "0.0": [32.67199, -9.17273, -35.40187], - "1.0": [29.36799, -4.88529, -31.21432], - "2.0": [32.67199, -9.17273, -35.40187] + "0.0": { + "post": [32.67199, -9.17273, -35.40187], + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": [29.36799, -4.88529, -31.21432], + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": [32.67199, -9.17273, -35.40187], + "lerp_mode": "catmullrom" + } } } } @@ -929,43 +755,6 @@ } } }, - "block": { - "loop": true, - "animation_length": 2, - "bones": { - "left_arm_2": { - "rotation": { - "0.0": { - "vector": [57.04902, 21.55151, 59.26162] - }, - "1.0": { - "vector": [48.48527, 18.51654, 49.82228] - }, - "2.0": { - "vector": [57.04902, 21.55151, 59.26162] - } - } - }, - "right_arm_1": { - "rotation": { - "vector": [0, -22.5, 0] - } - }, - "right_arm_2": { - "rotation": { - "0.0": { - "vector": [32.67199, -9.17273, -35.40187] - }, - "1.0": { - "vector": [29.36799, -4.88529, -31.21432] - }, - "2.0": { - "vector": [32.67199, -9.17273, -35.40187] - } - } - } - } - }, "flipped": { "loop": true, "animation_length": 0.5, @@ -973,224 +762,273 @@ "body": { "rotation": { "0.0": { - "vector": [-170.00933, 0.43399, -2.46207] + "post": [-170.00933, 0.43399, -2.46207], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [-170.00933, -0.43399, 2.46207] + "post": [-170.00933, -0.43399, 2.46207], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [-170.00933, 0.43399, -2.46207] + "post": [-170.00933, 0.43399, -2.46207], + "lerp_mode": "catmullrom" } }, - "position": { - "vector": [0, -3.5, 0] - } + "position": [0, -3.5, 0] }, "left_arm_1": { "rotation": { "0.0": { - "vector": [22.5, 0, 0] + "post": [22.5, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [22.5, 0, 0] + "post": [22.5, 0, 0], + "lerp_mode": "catmullrom" } } }, "left_arm_2": { "rotation": { "0.0": { - "vector": [-12.5, 0, -22.5] + "post": [-12.5, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [-12.5, 0, -22.5] + "post": [-12.5, 0, -22.5], + "lerp_mode": "catmullrom" } } }, "left_claw": { "rotation": { "0.0": { - "vector": [0, 0, -45] + "post": [0, 0, -45], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, -45] + "post": [0, 0, -45], + "lerp_mode": "catmullrom" } } }, "left_leg_2": { "rotation": { "0.0": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" } } }, "left_leg_1": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "left_leg_3": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 22.5] + "post": [0, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "left_leg_4": { "rotation": { "0.0": { - "vector": [-54.12437, 14.60696, 58.37563] + "post": [-54.12437, 14.60696, 58.37563], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [-54.12437, 14.60696, 58.37563] + "post": [-54.12437, 14.60696, 58.37563], + "lerp_mode": "catmullrom" } } }, "left_mouthpiece": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, -22.5, 0] + "post": [0, -22.5, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_arm_1": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [22.5, 0, 0] + "post": [22.5, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_arm_2": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [-15, 0, 22.5] + "post": [-15, 0, 22.5], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_claw": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 45] + "post": [0, 0, 45], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_leg_1": { "rotation": { "0.0": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" } } }, "right_leg_2": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_leg_3": { "rotation": { "0.0": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, -22.5] + "post": [0, 0, -22.5], + "lerp_mode": "catmullrom" } } }, "right_leg_4": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [-54.12437, -14.60696, -58.37563] + "post": [-54.12437, -14.60696, -58.37563], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" } } }, "right_mouthpiece": { "rotation": { "0.0": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" }, "0.25": { - "vector": [0, 0, 0] + "post": [0, 0, 0], + "lerp_mode": "catmullrom" }, "0.5": { - "vector": [0, 22.5, 0] + "post": [0, 22.5, 0], + "lerp_mode": "catmullrom" } } }