Skip to content

Commit

Permalink
Started implementing the new variant system to crustaceans
Browse files Browse the repository at this point in the history
  • Loading branch information
MysticKoko committed Jul 15, 2024
1 parent b7ca172 commit eb1a638
Show file tree
Hide file tree
Showing 23 changed files with 198 additions and 80 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
package dev.hybridlabs.aquatic.client.model.entity.crustacean

import dev.hybridlabs.aquatic.entity.crustacean.HybridAquaticCrustaceanEntity
import net.minecraft.util.Identifier

class FiddlerCrabEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("fiddler_crab") {
override fun getTextureResource(animatable: HybridAquaticCrustaceanEntity?): Identifier {
if (animatable != null) return getVariantTexture(allVariants[animatable.variant])
return super.getTextureResource(animatable)
}

companion object {
val allVariants: Array<String> = arrayOf("blue", "red", "purple", "palestine")
}
}
class FiddlerCrabEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("fiddler_crab")
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
package dev.hybridlabs.aquatic.client.model.entity.crustacean

import dev.hybridlabs.aquatic.entity.crustacean.HybridAquaticCrustaceanEntity
import net.minecraft.util.Identifier

class GhostCrabEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("ghost_crab") {
override fun getTextureResource(animatable: HybridAquaticCrustaceanEntity?): Identifier {
if (animatable != null) return getVariantTexture(allVariants[animatable.variant])
return super.getTextureResource(animatable)
}

companion object {
val allVariants: Array<String> = arrayOf("white", "yellow", "red", "brown", "palestine")
}
}
class GhostCrabEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("ghost_crab")
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,23 @@ import software.bernie.geckolib.model.GeoModel

abstract class HybridAquaticCrustaceanEntityModel<T: HybridAquaticCrustaceanEntity> (private val id: String) : GeoModel<T>() {
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/${id}_${variant.getProvidedVariant(animatable)}.geo.json")
return Identifier(HybridAquatic.MOD_ID, "geo/$id.geo.json")
}

override fun getTextureResource(animatable: T?): Identifier {
return Identifier(HybridAquatic.MOD_ID, "textures/entity/crustacean/$id/$id.png")
}

fun getVariantTexture(variant: String): Identifier {
return Identifier(HybridAquatic.MOD_ID, "textures/entity/crustacean/$id/${id}_$variant.png")
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
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")
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
package dev.hybridlabs.aquatic.client.model.entity.crustacean

import dev.hybridlabs.aquatic.entity.crustacean.HybridAquaticCrustaceanEntity
import net.minecraft.util.Identifier

class LobsterEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("lobster") {
override fun getTextureResource(animatable: HybridAquaticCrustaceanEntity?): Identifier {
if (animatable != null) return getVariantTexture(allVariants[animatable.variant])
return super.getTextureResource(animatable)
}

companion object {
val allVariants: Array<String> = arrayOf("ornate_spiny", "california_spiny", "american")
}
}
class LobsterEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("lobster")
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
package dev.hybridlabs.aquatic.client.model.entity.crustacean

import dev.hybridlabs.aquatic.entity.crustacean.HybridAquaticCrustaceanEntity
import net.minecraft.util.Identifier

class ShrimpEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("shrimp") {
override fun getTextureResource(animatable: HybridAquaticCrustaceanEntity?): Identifier {
if (animatable != null) return getVariantTexture(allVariants[animatable.variant])
return super.getTextureResource(animatable)
}

companion object {
val allVariants: Array<String> = arrayOf("blue", "blue_white", "black", "black_white", "red", "red_white", "green", "green_white", "brown", "brown_white", "lime", "lime_white", "yellow", "yellow_white", "pink", "pink_white", "white", "orange", "orange_white", "palestine")
}
}
class ShrimpEntityModel : HybridAquaticCrustaceanEntityModel<HybridAquaticCrustaceanEntity>("shrimp")
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ import software.bernie.geckolib.core.`object`.PlayState

class NudibranchEntity(entityType: EntityType<out NudibranchEntity>, world: World) :
HybridAquaticCritterEntity(entityType, world, variants = hashMapOf(
"pyjama" to CritterVariant.biomeVariant(
"pyjama",
HybridAquaticBiomeTags.NUDIBRANCH_SPAWN_BIOMES,
"pyjama" to CritterVariant.biomeVariant("pyjama", HybridAquaticBiomeTags.NUDIBRANCH_SPAWN_BIOMES,
ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)),
"bullock" to CritterVariant.biomeVariant("bullock", HybridAquaticBiomeTags.NUDIBRANCH_SPAWN_BIOMES,
ignore = listOf(CritterVariant.Ignore.MODEL, CritterVariant.Ignore.ANIMATION)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class CoconutCrabEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 1, false, true) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class CrayfishEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 1, false, false) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class DungenessCrabEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 1, false, true) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class FiddlerCrabEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 3, false, true) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class FlowerCrabEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 1, false, true) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class GhostCrabEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 4, false, true) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class GiantIsopodEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 1, false, false) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import software.bernie.geckolib.core.animation.AnimationState
import software.bernie.geckolib.core.`object`.PlayState

class HermitCrabEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 1, true, false) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), true, false) {

private var isHiding: Boolean = false
private var hidingTimer: Int = 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import net.minecraft.entity.mob.WaterCreatureEntity
import net.minecraft.world.World

class HorseshoeCrabEntity(entityType: EntityType<out HybridAquaticCrustaceanEntity>, world: World) :
HybridAquaticCrustaceanEntity(entityType, world, 1, false, false) {
HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) {
companion object {
fun createMobAttributes(): DefaultAttributeContainer.Builder {
return WaterCreatureEntity.createMobAttributes()
Expand Down
Loading

0 comments on commit eb1a638

Please sign in to comment.