diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/CuttlefishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/CuttlefishEntityModel.kt index c95ee74b7..92f3ff923 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/CuttlefishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/CuttlefishEntityModel.kt @@ -5,8 +5,8 @@ import dev.hybridlabs.aquatic.entity.cephalopod.CuttlefishEntity import net.minecraft.util.Identifier class CuttlefishEntityModel : HybridAquaticCephalopodEntityModel("cuttlefish") { - override fun getTextureResource(animatable: CuttlefishEntity?): Identifier { - val texturePath = when (animatable?.randomValue) { + override fun getTextureResource(animatable: CuttlefishEntity): Identifier { + val texturePath = when (animatable.randomValue) { 0 -> "textures/entity/cephalopod/cuttlefish/cuttlefish.png" 1 -> "textures/entity/cephalopod/cuttlefish/cuttlefish_zebra.png" 2 -> "textures/entity/cephalopod/cuttlefish/cuttlefish_disruptive.png" diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/HybridAquaticCephalopodEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/HybridAquaticCephalopodEntityModel.kt index 31049ac65..480ddcf72 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/HybridAquaticCephalopodEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/cephalopod/HybridAquaticCephalopodEntityModel.kt @@ -10,22 +10,22 @@ import software.bernie.geckolib.core.animation.AnimationState import software.bernie.geckolib.model.GeoModel abstract class HybridAquaticCephalopodEntityModel (private val id: String) : GeoModel() { - override fun getModelResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getModelResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCephalopodEntity.CephalopodVariant.Ignore.MODEL)) return Identifier(HybridAquatic.MOD_ID, "geo/cephalopod/${id}/${id}_${variant.variantName}.geo.json") return Identifier(HybridAquatic.MOD_ID, "geo/cephalopod/${id}/$id.geo.json") } - override fun getTextureResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getTextureResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCephalopodEntity.CephalopodVariant.Ignore.TEXTURE)) return Identifier(HybridAquatic.MOD_ID, "textures/entity/cephalopod/$id/${id}_${variant.variantName}.png") return Identifier(HybridAquatic.MOD_ID, "textures/entity/cephalopod/$id/$id.png") } - override fun getAnimationResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getAnimationResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCephalopodEntity.CephalopodVariant.Ignore.ANIMATION)) return Identifier(HybridAquatic.MOD_ID, "animations/${id}_${variant.variantName}.animation.json") return Identifier(HybridAquatic.MOD_ID, "animations/$id.animation.json") diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/critter/HybridAquaticCritterEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/critter/HybridAquaticCritterEntityModel.kt index a03e15ebe..8b6866486 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/critter/HybridAquaticCritterEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/critter/HybridAquaticCritterEntityModel.kt @@ -6,22 +6,22 @@ import net.minecraft.util.Identifier import software.bernie.geckolib.model.GeoModel abstract class HybridAquaticCritterEntityModel (private val id: String) : GeoModel() { - override fun getModelResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getModelResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCritterEntity.CritterVariant.Ignore.MODEL)) return Identifier(HybridAquatic.MOD_ID, "geo/critter/${id}/${id}_${variant.getProvidedVariant(animatable)}.geo.json") return Identifier(HybridAquatic.MOD_ID, "geo/critter/${id}/$id.geo.json") } - override fun getTextureResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getTextureResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCritterEntity.CritterVariant.Ignore.TEXTURE)) return Identifier(HybridAquatic.MOD_ID, "textures/entity/critter/${id}/${id}_${variant.getProvidedVariant(animatable)}.png") return Identifier(HybridAquatic.MOD_ID, "textures/entity/critter/$id/${id}.png") } - override fun getAnimationResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getAnimationResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCritterEntity.CritterVariant.Ignore.ANIMATION)) return Identifier(HybridAquatic.MOD_ID, "animations/${id}_${variant.getProvidedVariant(animatable)}.animation.json") return Identifier(HybridAquatic.MOD_ID, "animations/$id.animation.json") diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/crustacean/HybridAquaticCrustaceanEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/crustacean/HybridAquaticCrustaceanEntityModel.kt index b1f4cd748..2ff491317 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/crustacean/HybridAquaticCrustaceanEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/crustacean/HybridAquaticCrustaceanEntityModel.kt @@ -6,22 +6,22 @@ import net.minecraft.util.Identifier import software.bernie.geckolib.model.GeoModel abstract class HybridAquaticCrustaceanEntityModel (private val id: String) : GeoModel() { - override fun getModelResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getModelResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCrustaceanEntity.CrustaceanVariant.Ignore.MODEL)) return Identifier(HybridAquatic.MOD_ID, "geo/crustacean/${id}/${id}_${variant.getProvidedVariant(animatable)}.geo.json") return Identifier(HybridAquatic.MOD_ID, "geo/crustacean/${id}/$id.geo.json") } - override fun getTextureResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getTextureResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCrustaceanEntity.CrustaceanVariant.Ignore.TEXTURE)) return Identifier(HybridAquatic.MOD_ID, "textures/entity/crustacean/${id}/${id}_${variant.getProvidedVariant(animatable)}.png") return Identifier(HybridAquatic.MOD_ID, "textures/entity/crustacean/${id}/$id.png") } - override fun getAnimationResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getAnimationResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(HybridAquaticCrustaceanEntity.CrustaceanVariant.Ignore.ANIMATION)) return Identifier(HybridAquatic.MOD_ID, "animations/${id}_${variant.getProvidedVariant(animatable)}.animation.json") return Identifier(HybridAquatic.MOD_ID, "animations/$id.animation.json") diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/FlashlightFishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/FlashlightFishEntityModel.kt index fc8dfd85c..b18366549 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/FlashlightFishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/FlashlightFishEntityModel.kt @@ -6,8 +6,8 @@ import net.minecraft.util.Identifier class FlashlightFishEntityModel : HybridAquaticFishEntityModel("flashlight_fish") { - override fun getTextureResource(animatable: FlashlightFishEntity?): Identifier { - val isLightOn = animatable?.isLightOn ?: true + override fun getTextureResource(animatable: FlashlightFishEntity): Identifier { + val isLightOn = animatable.isLightOn val texturePath = if (isLightOn) { "textures/entity/fish/flashlight_fish/flashlight_fish.png" diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/HybridAquaticFishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/HybridAquaticFishEntityModel.kt index 4b16a3f36..3de7927c1 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/HybridAquaticFishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/HybridAquaticFishEntityModel.kt @@ -11,22 +11,22 @@ import software.bernie.geckolib.core.animation.AnimationState import software.bernie.geckolib.model.GeoModel abstract class HybridAquaticFishEntityModel (private val id: String) : GeoModel() { - override fun getModelResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getModelResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(MODEL)) return Identifier(HybridAquatic.MOD_ID, "geo/fish/${id}/${id}_${variant.getProvidedVariant(animatable)}.geo.json") return Identifier(HybridAquatic.MOD_ID, "geo/fish/${id}/$id.geo.json") } - override fun getTextureResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getTextureResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(TEXTURE)) return Identifier(HybridAquatic.MOD_ID, "textures/entity/fish/${id}/${id}_${variant.getProvidedVariant(animatable)}.png") return Identifier(HybridAquatic.MOD_ID, "textures/entity/fish/${id}/$id.png") } - override fun getAnimationResource(animatable: T?): Identifier { - val variant = animatable?.variant + override fun getAnimationResource(animatable: T): Identifier { + val variant = animatable.variant if (variant != null && !variant.ignore.contains(ANIMATION)) return Identifier(HybridAquatic.MOD_ID, "animations/${id}_${variant.getProvidedVariant(animatable)}.animation.json") return Identifier(HybridAquatic.MOD_ID, "animations/$id.animation.json") diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/JohnDoryEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/JohnDoryEntityModel.kt index 021f0f33d..94039470d 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/JohnDoryEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/JohnDoryEntityModel.kt @@ -1,6 +1,12 @@ package dev.hybridlabs.aquatic.client.model.entity.fish import dev.hybridlabs.aquatic.entity.fish.HybridAquaticFishEntity +import net.minecraft.client.render.RenderLayer +import net.minecraft.util.Identifier -class JohnDoryEntityModel : HybridAquaticFishEntityModel("john_dory") +class JohnDoryEntityModel : HybridAquaticFishEntityModel("john_dory") { + override fun getRenderType(animatable: HybridAquaticFishEntity, texture: Identifier): RenderLayer { + return RenderLayer.getEntityTranslucent(texture) + } +} diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/PearlfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/PearlfishEntityModel.kt index 686a1f624..83c15ac39 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/PearlfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/PearlfishEntityModel.kt @@ -1,5 +1,11 @@ package dev.hybridlabs.aquatic.client.model.entity.fish import dev.hybridlabs.aquatic.entity.fish.HybridAquaticFishEntity +import net.minecraft.client.render.RenderLayer +import net.minecraft.util.Identifier -class PearlfishEntityModel : HybridAquaticFishEntityModel("pearlfish") \ No newline at end of file +class PearlfishEntityModel : HybridAquaticFishEntityModel("pearlfish") { + override fun getRenderType(animatable: HybridAquaticFishEntity, texture: Identifier): RenderLayer { + return RenderLayer.getEntityTranslucent(texture) + } +} \ No newline at end of file diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SeaAngelEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SeaAngelEntityModel.kt index 48665604e..42357f354 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SeaAngelEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SeaAngelEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class SeaAngelEntityModel : HybridAquaticFishEntityModel("sea_angel") { - override fun getRenderType(animatable: HybridAquaticFishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticFishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SnailfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SnailfishEntityModel.kt index 446bc3355..6bdf10a61 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SnailfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/SnailfishEntityModel.kt @@ -1,5 +1,11 @@ package dev.hybridlabs.aquatic.client.model.entity.fish import dev.hybridlabs.aquatic.entity.fish.HybridAquaticFishEntity +import net.minecraft.client.render.RenderLayer +import net.minecraft.util.Identifier -class SnailfishEntityModel : HybridAquaticFishEntityModel("snailfish") +class SnailfishEntityModel : HybridAquaticFishEntityModel("snailfish") { + override fun getRenderType(animatable: HybridAquaticFishEntity, texture: Identifier): RenderLayer { + return RenderLayer.getEntityTranslucent(texture) + } +} diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/ToadfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/ToadfishEntityModel.kt index b682bf60d..1418064f1 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/ToadfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/fish/ToadfishEntityModel.kt @@ -6,8 +6,8 @@ import net.minecraft.util.Identifier class ToadfishEntityModel : HybridAquaticFishEntityModel("toadfish") { - override fun getTextureResource(animatable: ToadfishEntity?): Identifier { - val puffState = animatable?.getPuffState() ?: 0 + override fun getTextureResource(animatable: ToadfishEntity): Identifier { + val puffState = animatable.getPuffState() val texturePath = when (puffState) { 0 -> "textures/entity/fish/toadfish/toadfish_small.png" diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/AtollaJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/AtollaJellyfishEntityModel.kt index 395274bfb..1f86bd46a 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/AtollaJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/AtollaJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class AtollaJellyfishEntityModel : HybridAquaticJellyfishEntityModel("atolla_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BarrelJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BarrelJellyfishEntityModel.kt index 9a9b83eca..9cd0bce0c 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BarrelJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BarrelJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class BarrelJellyfishEntityModel : HybridAquaticJellyfishEntityModel("barrel_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BigRedJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BigRedJellyfishEntityModel.kt index b090d393f..1fd6ef49a 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BigRedJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BigRedJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class BigRedJellyfishEntityModel : HybridAquaticJellyfishEntityModel("big_red_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BlueJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BlueJellyfishEntityModel.kt index 98c2773fc..9891e7ca1 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BlueJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BlueJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class BlueJellyfishEntityModel : HybridAquaticJellyfishEntityModel("blue_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BoxJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BoxJellyfishEntityModel.kt index 3673c6e2e..16b3fe1aa 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BoxJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/BoxJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class BoxJellyfishEntityModel : HybridAquaticJellyfishEntityModel("box_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CauliflowerJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CauliflowerJellyfishEntityModel.kt index 4a9c13590..5156f08e1 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CauliflowerJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CauliflowerJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class CauliflowerJellyfishEntityModel : HybridAquaticJellyfishEntityModel("cauliflower_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CompassJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CompassJellyfishEntityModel.kt index 1fa80d95a..3c20ed9bf 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CompassJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CompassJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class CompassJellyfishEntityModel : HybridAquaticJellyfishEntityModel("compass_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CosmicJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CosmicJellyfishEntityModel.kt index e805d83cb..c3d20c96d 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CosmicJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/CosmicJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class CosmicJellyfishEntityModel : HybridAquaticJellyfishEntityModel("cosmic_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/FireworkJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/FireworkJellyfishEntityModel.kt new file mode 100644 index 000000000..10175db5a --- /dev/null +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/FireworkJellyfishEntityModel.kt @@ -0,0 +1,11 @@ +package dev.hybridlabs.aquatic.client.model.entity.jellyfish + +import dev.hybridlabs.aquatic.entity.jellyfish.HybridAquaticJellyfishEntity +import net.minecraft.client.render.RenderLayer +import net.minecraft.util.Identifier + +class FireworkJellyfishEntityModel : HybridAquaticJellyfishEntityModel("firework_jellyfish") { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { + return RenderLayer.getEntityTranslucent(texture) + } +} diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/FriedEggJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/FriedEggJellyfishEntityModel.kt index 734351801..50dc6bfe2 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/FriedEggJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/FriedEggJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class FriedEggJellyfishEntityModel : HybridAquaticJellyfishEntityModel("fried_egg_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/HybridAquaticJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/HybridAquaticJellyfishEntityModel.kt index 095126669..fe84db74c 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/HybridAquaticJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/HybridAquaticJellyfishEntityModel.kt @@ -6,11 +6,11 @@ import net.minecraft.util.Identifier import software.bernie.geckolib.model.GeoModel abstract class HybridAquaticJellyfishEntityModel (private val id: String) : GeoModel() { - override fun getModelResource(animatable: T?): Identifier { + override fun getModelResource(animatable: T): Identifier { return Identifier(HybridAquatic.MOD_ID, "geo/jellyfish/$id.geo.json") } - override fun getTextureResource(animatable: T?): Identifier { + override fun getTextureResource(animatable: T): Identifier { return Identifier(HybridAquatic.MOD_ID, "textures/entity/jellyfish/$id.png") } @@ -18,7 +18,7 @@ abstract class HybridAquaticJellyfishEntityModel("lions_mane_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MauveStingerEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MauveStingerEntityModel.kt index 9cdbff614..06d437ced 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MauveStingerEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MauveStingerEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class MauveStingerEntityModel : HybridAquaticJellyfishEntityModel("mauve_stinger") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MoonJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MoonJellyfishEntityModel.kt index a9dffb609..a959f5883 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MoonJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/MoonJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class MoonJellyfishEntityModel : HybridAquaticJellyfishEntityModel("moon_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/NomuraJellyfishEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/NomuraJellyfishEntityModel.kt index 3d4615d37..43b02c053 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/NomuraJellyfishEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/NomuraJellyfishEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class NomuraJellyfishEntityModel : HybridAquaticJellyfishEntityModel("nomura_jellyfish") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/SeaNettleEntityModel.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/SeaNettleEntityModel.kt index f37c7a484..d1d630756 100644 --- a/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/SeaNettleEntityModel.kt +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/model/entity/jellyfish/SeaNettleEntityModel.kt @@ -5,7 +5,7 @@ import net.minecraft.client.render.RenderLayer import net.minecraft.util.Identifier class SeaNettleEntityModel : HybridAquaticJellyfishEntityModel("sea_nettle") { - override fun getRenderType(animatable: HybridAquaticJellyfishEntity?, texture: Identifier?): RenderLayer { + override fun getRenderType(animatable: HybridAquaticJellyfishEntity, texture: Identifier): RenderLayer { return RenderLayer.getEntityTranslucent(texture) } } 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 eea599ee0..0c0caa555 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 @@ -95,6 +95,7 @@ object HybridAquaticEntityRenderers { val ATOLLA_JELLYFISH = EntityRendererRegistry.register(HybridAquaticEntityTypes.ATOLLA_JELLYFISH, ::AtollaJellyfishEntityRenderer) val BIG_RED_JELLYFISH = EntityRendererRegistry.register(HybridAquaticEntityTypes.BIG_RED_JELLYFISH, ::BigRedJellyfishEntityRenderer) val COSMIC_JELLYFISH = EntityRendererRegistry.register(HybridAquaticEntityTypes.COSMIC_JELLYFISH, ::CosmicJellyfishEntityRenderer) + val FIREWORK_JELLYFISH = EntityRendererRegistry.register(HybridAquaticEntityTypes.FIREWORK_JELLYFISH, ::FireworkJellyfishEntityRenderer) val BOX_JELLYFISH = EntityRendererRegistry.register(HybridAquaticEntityTypes.BOX_JELLYFISH, ::BoxJellyfishEntityRenderer) //endregion diff --git a/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/jellyfish/FireworkJellyfishEntityRenderer.kt b/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/jellyfish/FireworkJellyfishEntityRenderer.kt new file mode 100644 index 000000000..5cd2cba47 --- /dev/null +++ b/src/client/kotlin/dev/hybridlabs/aquatic/client/render/entity/jellyfish/FireworkJellyfishEntityRenderer.kt @@ -0,0 +1,7 @@ +package dev.hybridlabs.aquatic.client.render.entity.jellyfish + +import dev.hybridlabs.aquatic.client.model.entity.jellyfish.FireworkJellyfishEntityModel +import dev.hybridlabs.aquatic.entity.jellyfish.HybridAquaticJellyfishEntity +import net.minecraft.client.render.entity.EntityRendererFactory.Context + +class FireworkJellyfishEntityRenderer(context: Context) : HybridAquaticJellyfishEntityRenderer(context, FireworkJellyfishEntityModel(), true, true) \ No newline at end of file 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 15f854148..877420b48 100644 --- a/src/generated/resources/assets/hybrid-aquatic/lang/en_us.json +++ b/src/generated/resources/assets/hybrid-aquatic/lang/en_us.json @@ -148,6 +148,7 @@ "entity.hybrid-aquatic.dungeness_crab": "Crab", "entity.hybrid-aquatic.fiddler_crab": "Fiddler Crab", "entity.hybrid-aquatic.firefly_squid": "Firefly Squid", + "entity.hybrid-aquatic.firework_jellyfish": "Firework Jellyfish", "entity.hybrid-aquatic.flashlight_fish": "Flashlight Fish", "entity.hybrid-aquatic.flower_crab": "Flower Crab", "entity.hybrid-aquatic.flying_fish": "Flying Fish", @@ -318,6 +319,7 @@ "item.hybrid-aquatic.fiddler_crab_claw": "Fiddler Crab Claw", "item.hybrid-aquatic.fiddler_crab_spawn_egg": "Fiddler Crab Spawn Egg", "item.hybrid-aquatic.firefly_squid_spawn_egg": "Firefly Squid Spawn Egg", + "item.hybrid-aquatic.firework_jellyfish_spawn_egg": "Firework Jellyfish Spawn Egg", "item.hybrid-aquatic.fishing_net": "Fishing Net", "item.hybrid-aquatic.fishing_net.description": "Stored Entity: %s", "item.hybrid-aquatic.flashlight_fish": "Flashlight Fish", diff --git a/src/generated/resources/assets/hybrid-aquatic/models/item/firework_jellyfish_spawn_egg.json b/src/generated/resources/assets/hybrid-aquatic/models/item/firework_jellyfish_spawn_egg.json new file mode 100644 index 000000000..d1aaa9d6e --- /dev/null +++ b/src/generated/resources/assets/hybrid-aquatic/models/item/firework_jellyfish_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/jellyfish.json b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/jellyfish.json index 3a23cbfa3..fc9a4a25c 100644 --- a/src/generated/resources/data/hybrid-aquatic/tags/entity_types/jellyfish.json +++ b/src/generated/resources/data/hybrid-aquatic/tags/entity_types/jellyfish.json @@ -8,6 +8,7 @@ "hybrid-aquatic:cauliflower_jellyfish", "hybrid-aquatic:compass_jellyfish", "hybrid-aquatic:cosmic_jellyfish", + "hybrid-aquatic:firework_jellyfish", "hybrid-aquatic:fried_egg_jellyfish", "hybrid-aquatic:lions_mane_jellyfish", "hybrid-aquatic:mauve_stinger", 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 c8ef60f74..47b521646 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/data/client/LanguageProvider.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/data/client/LanguageProvider.kt @@ -452,6 +452,7 @@ class LanguageProvider(output: FabricDataOutput) : FabricLanguageProvider(output HybridAquaticEntityTypes.ATOLLA_JELLYFISH to "Atolla Jellyfish", HybridAquaticEntityTypes.BIG_RED_JELLYFISH to "Big Red Jellyfish", HybridAquaticEntityTypes.COSMIC_JELLYFISH to "Cosmic Jellyfish", + HybridAquaticEntityTypes.FIREWORK_JELLYFISH to "Firework Jellyfish", HybridAquaticEntityTypes.BLUE_JELLYFISH to "Blue Jellyfish", ) 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 a1796e7bf..9ed32464c 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 @@ -150,6 +150,7 @@ class EntityTypeTagProvider(output: FabricDataOutput, registriesFuture: Completa HybridAquaticEntityTypes.CAULIFLOWER_JELLYFISH, HybridAquaticEntityTypes.COMPASS_JELLYFISH, HybridAquaticEntityTypes.COSMIC_JELLYFISH, + HybridAquaticEntityTypes.FIREWORK_JELLYFISH, HybridAquaticEntityTypes.FRIED_EGG_JELLYFISH, HybridAquaticEntityTypes.LIONS_MANE_JELLYFISH, HybridAquaticEntityTypes.MAUVE_STINGER, diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt index 03c33f8af..014054986 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/HybridAquaticEntityTypes.kt @@ -568,6 +568,13 @@ object HybridAquaticEntityTypes { CosmicJellyfishEntity.createMobAttributes() ) + val FIREWORK_JELLYFISH = registerJellyUnderground( + "firework_jellyfish", + ::FireworkJellyfishEntity, + EntityDimensions.fixed(0.5f, 0.5f), + FireworkJellyfishEntity.createMobAttributes() + ) + val BARREL_JELLYFISH = registerJelly( "barrel_jellyfish", ::BarrelJellyfishEntity, diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt index ca7d8a91f..bafe5cddb 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/SpawnRestrictionRegistry.kt @@ -106,6 +106,7 @@ object SpawnRestrictionRegistry { HybridAquaticEntityTypes.ATOLLA_JELLYFISH, HybridAquaticEntityTypes.BIG_RED_JELLYFISH, HybridAquaticEntityTypes.COSMIC_JELLYFISH, + HybridAquaticEntityTypes.FIREWORK_JELLYFISH, HybridAquaticEntityTypes.MAUVE_STINGER, ).forEach { registerJellyUnderground(it) } diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/DecoratorCrabEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/DecoratorCrabEntity.kt index 3b0f90bee..8be5c1e62 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/DecoratorCrabEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/DecoratorCrabEntity.kt @@ -68,7 +68,7 @@ class DecoratorCrabEntity(entityType: EntityType val animation = when { - hasCoral -> WITH_CORAL + coralTimer == 0 -> WITH_CORAL else -> WITHOUT_CORAL } state.setAndContinue(animation) @@ -76,12 +76,11 @@ class DecoratorCrabEntity(entityType: EntityType 0) coralTimer -= 1 } companion object { diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/jellyfish/FireworkJellyfishEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/jellyfish/FireworkJellyfishEntity.kt new file mode 100644 index 000000000..b5d7d4a41 --- /dev/null +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/jellyfish/FireworkJellyfishEntity.kt @@ -0,0 +1,33 @@ +package dev.hybridlabs.aquatic.entity.jellyfish + +import net.minecraft.entity.EntityType +import net.minecraft.entity.attribute.DefaultAttributeContainer +import net.minecraft.entity.attribute.EntityAttributes +import net.minecraft.world.World + +class FireworkJellyfishEntity(entityType: EntityType, world: World) : + HybridAquaticJellyfishEntity(entityType, world, true, 0) { + + override fun getLimitPerChunk(): Int { + return 2 + } + + companion object { + fun createMobAttributes(): DefaultAttributeContainer.Builder { + return createLivingAttributes() + .add(EntityAttributes.GENERIC_MAX_HEALTH, 1.0) + .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.4) + .add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 2.0) + .add(EntityAttributes.GENERIC_ATTACK_KNOCKBACK, 0.0) + .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 20.0) + } + } + + override fun getMaxSize(): Int { + return 5 + } + + override fun getMinSize(): Int { + return -5 + } +} \ No newline at end of file diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt b/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt index ba6a980d6..7761d93e9 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/item/HybridAquaticItems.kt @@ -1173,6 +1173,7 @@ object HybridAquaticItems { val ATOLLA_JELLYFISH_SPAWN_EGG = registerSpawnEgg("atolla_jellyfish_spawn_egg", HybridAquaticEntityTypes.ATOLLA_JELLYFISH, 0xa32858, 0x4dc0e8) val BIG_RED_JELLYFISH_SPAWN_EGG = registerSpawnEgg("big_red_jellyfish_spawn_egg", HybridAquaticEntityTypes.BIG_RED_JELLYFISH, 0xf4e5e5, 0xe72e46) val COSMIC_JELLYFISH_SPAWN_EGG = registerSpawnEgg("cosmic_jellyfish_spawn_egg", HybridAquaticEntityTypes.COSMIC_JELLYFISH, 0xe7debb, 0xffd375) + val FIREWORK_JELLYFISH_SPAWN_EGG = registerSpawnEgg("firework_jellyfish_spawn_egg", HybridAquaticEntityTypes.FIREWORK_JELLYFISH, 0x6975e8, 0xfc7fb7) val BARREL_JELLYFISH_SPAWN_EGG = registerSpawnEgg("barrel_jellyfish_spawn_egg", HybridAquaticEntityTypes.BARREL_JELLYFISH, 0xd6f3ea, 0x413c83) val BLUE_JELLYFISH_SPAWN_EGG = registerSpawnEgg("blue_jellyfish_spawn_egg", HybridAquaticEntityTypes.BLUE_JELLYFISH, 0x4dc0e8, 0xff6b97) val CAULIFLOWER_JELLYFISH_SPAWN_EGG = registerSpawnEgg("cauliflower_jellyfish_spawn_egg", HybridAquaticEntityTypes.CAULIFLOWER_JELLYFISH, 0x623062, 0x89a1d8) diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt b/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt index 68ff186ca..d11580e32 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/world/EntityBiomeModifications.kt @@ -89,8 +89,9 @@ object EntityBiomeModifications { addJelly(HybridAquaticEntityTypes.BOX_JELLYFISH, listOf(HybridAquaticBiomeTags.MANGROVES, HybridAquaticBiomeTags.REEF, HybridAquaticBiomeTags.TROPICAL_OCEANS, HybridAquaticBiomeTags.SANDY_BEACHES), 1, 1, 1) addUndergroundJelly(HybridAquaticEntityTypes.ATOLLA_JELLYFISH, listOf(BiomeTags.IS_DEEP_OCEAN), 1, 1, 1) - addUndergroundJelly(HybridAquaticEntityTypes.BIG_RED_JELLYFISH, listOf(BiomeTags.IS_DEEP_OCEAN), 2, 1, 1) + addUndergroundJelly(HybridAquaticEntityTypes.BIG_RED_JELLYFISH, listOf(BiomeTags.IS_DEEP_OCEAN), 1, 1, 1) addUndergroundJelly(HybridAquaticEntityTypes.COSMIC_JELLYFISH, listOf(BiomeTags.IS_DEEP_OCEAN), 2, 1, 1) + addUndergroundJelly(HybridAquaticEntityTypes.FIREWORK_JELLYFISH, listOf(BiomeTags.IS_DEEP_OCEAN), 2, 1, 1) addJelly(HybridAquaticEntityTypes.MAUVE_STINGER, listOf(BiomeTags.IS_DEEP_OCEAN), 3, 1, 1) //#region Sharks diff --git a/src/main/resources/assets/hybrid-aquatic/animations/firework_jellyfish.animation.json b/src/main/resources/assets/hybrid-aquatic/animations/firework_jellyfish.animation.json new file mode 100644 index 000000000..4c9974686 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/animations/firework_jellyfish.animation.json @@ -0,0 +1,133 @@ +{ + "format_version": "1.8.0", + "animations": { + "move.swim": { + "loop": true, + "animation_length": 4, + "bones": { + "tentacle_1": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*-10", 0, 0] + } + }, + "tentacle_5": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*-10", 0, 0] + } + }, + "tentacle_2": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*10", 0, 0] + } + }, + "tentacle_6": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*10", 0, 0] + } + }, + "tentacle_3": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*-10", 0, 0] + } + }, + "tentacle_4": { + "rotation": { + "vector": ["Math.cos(query.anim_time * 90)*-10", 0, 0] + } + }, + "tentacle_7": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*-10", 0, 0] + } + }, + "tentacle_8": { + "rotation": { + "vector": ["Math.sin(query.anim_time * 90)*-10", 0, 0] + } + }, + "body": { + "position": { + "vector": [0, "Math.cos(query.anim_time * 90)*0.5", 0] + }, + "scale": { + "vector": ["1+Math.cos(query.anim_time * 90)*0.05", "1+Math.cos(query.anim_time * 90)*0.05", "1+Math.cos(query.anim_time * 90)*0.05"] + } + } + } + }, + "flop": { + "loop": true, + "bones": { + "mauve_stinger": { + "position": { + "vector": [0, -5.4, 0] + } + }, + "head": { + "scale": { + "vector": [1.2, 0.5, 1.2] + } + }, + "core_tentacles": { + "position": { + "vector": [0, 0.5, 0] + }, + "scale": { + "vector": [1, 0.2, 1] + } + }, + "tentacle_a1": { + "rotation": { + "vector": [-90, 0, 0] + } + }, + "tentacle_b1": { + "rotation": { + "vector": [-90, 0, 0] + } + }, + "tentacle_c1": { + "rotation": { + "vector": [-90, 0, 0] + } + }, + "tentacle_d1": { + "rotation": { + "vector": [90, 0, 0] + } + }, + "tentacle_e1": { + "rotation": { + "vector": [90, 0, 0] + } + }, + "tentacle_f1": { + "rotation": { + "vector": [90, 0, 0] + } + }, + "tentacle_f2": { + "rotation": { + "vector": [0, 0, 0] + } + }, + "tentacle_g1": { + "rotation": { + "vector": [-90, 0, 0] + } + }, + "tentacle_h1": { + "rotation": { + "vector": [-90, 0, 0] + } + }, + "body": { + "position": { + "vector": [0, 0.1, 0] + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/geo/jellyfish/firework_jellyfish.geo.json b/src/main/resources/assets/hybrid-aquatic/geo/jellyfish/firework_jellyfish.geo.json new file mode 100644 index 000000000..8e47f90b2 --- /dev/null +++ b/src/main/resources/assets/hybrid-aquatic/geo/jellyfish/firework_jellyfish.geo.json @@ -0,0 +1,93 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 32, + "texture_height": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0] + }, + "bones": [ + { + "name": "body", + "pivot": [0, 1.25, 0], + "cubes": [ + {"origin": [-2.5, 0, -2.5], "size": [5, 2, 5], "uv": [0, 9]}, + {"origin": [-3, 0, -3], "size": [6, 3, 6], "uv": [0, 0]} + ] + }, + { + "name": "tentacle_1", + "parent": "body", + "pivot": [0, 0, -2.5], + "cubes": [ + {"origin": [-3.5, -5, -2.5], "size": [7, 5, 0], "pivot": [0, 0, -2.5], "rotation": [-45, 0, 0], "uv": [0, 16]} + ] + }, + { + "name": "tentacle_2", + "parent": "body", + "pivot": [0, 0, 2.5], + "cubes": [ + {"origin": [-3.5, -5, 2.5], "size": [7, 5, 0], "pivot": [0, 0, 2.5], "rotation": [135, 0, -180], "uv": [0, 16], "mirror": true} + ] + }, + { + "name": "tentacle_3", + "parent": "body", + "pivot": [2.5, 0, 0], + "rotation": [0, -90, 0], + "cubes": [ + {"origin": [-1, -5, 0], "size": [7, 5, 0], "pivot": [2.5, 0, 0], "rotation": [-45, 0, 0], "uv": [0, 16]} + ] + }, + { + "name": "tentacle_4", + "parent": "body", + "pivot": [-2.5, 0, 0], + "rotation": [0, 90, 0], + "cubes": [ + {"origin": [-6, -5, 0], "size": [7, 5, 0], "pivot": [-2.5, 0, 0], "rotation": [-45, 0, 0], "uv": [0, 16], "mirror": true} + ] + }, + { + "name": "tentacle_5", + "parent": "body", + "pivot": [0, 0, -2], + "cubes": [ + {"origin": [-3.5, -5, -2], "size": [7, 5, 0], "pivot": [0, 0, -2], "rotation": [-22.5, 0, 0], "uv": [14, 16]} + ] + }, + { + "name": "tentacle_6", + "parent": "body", + "pivot": [0, 0, 2], + "cubes": [ + {"origin": [-3.5, -5, 2], "size": [7, 5, 0], "pivot": [0, 0, 2], "rotation": [157.5, 0, 180], "uv": [14, 16]} + ] + }, + { + "name": "tentacle_7", + "parent": "body", + "pivot": [2, 0, 0], + "rotation": [0, -90, 0], + "cubes": [ + {"origin": [-1.5, -5, 0], "size": [7, 5, 0], "pivot": [2, 0, 0], "rotation": [-22.5, 0, 0], "uv": [14, 16]} + ] + }, + { + "name": "tentacle_8", + "parent": "body", + "pivot": [-2, 0, 0], + "rotation": [0, 90, 0], + "cubes": [ + {"origin": [-5.5, -5, 0], "size": [7, 5, 0], "pivot": [-2, 0, 0], "rotation": [-22.5, 0, 0], "uv": [14, 16], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hybrid-aquatic/textures/entity/jellyfish/firework_jellyfish.png b/src/main/resources/assets/hybrid-aquatic/textures/entity/jellyfish/firework_jellyfish.png new file mode 100644 index 000000000..467891af5 Binary files /dev/null and b/src/main/resources/assets/hybrid-aquatic/textures/entity/jellyfish/firework_jellyfish.png differ diff --git a/src/main/resources/assets/hybrid-aquatic/textures/entity/jellyfish/firework_jellyfish_glowmask.png b/src/main/resources/assets/hybrid-aquatic/textures/entity/jellyfish/firework_jellyfish_glowmask.png new file mode 100644 index 000000000..b2762b401 Binary files /dev/null and b/src/main/resources/assets/hybrid-aquatic/textures/entity/jellyfish/firework_jellyfish_glowmask.png differ