From 4507ef139b701caa40b204e95b0d1ebe43a28c11 Mon Sep 17 00:00:00 2001 From: MysticKoko <132279944+MysticKoko@users.noreply.github.com> Date: Mon, 15 Jul 2024 12:32:36 +0300 Subject: [PATCH] Crustacean stuff --- .../loot_tables/gameplay/clawed_lobster.json | 24 ++++++++++++++++++ .../gameplay/clawless_lobster.json | 14 ++++++++++ .../server/loot/GenericLootTableProvider.kt | 22 ++++++++++++++++ .../entity/crustacean/LobsterEntity.kt | 21 ++++++++++++++- .../aquatic/loot/HybridAquaticLootTables.kt | 3 +++ ...fiddler_crab_blue.png => fiddler_crab.png} | Bin .../{ghost_crab_yellow.png => ghost_crab.png} | Bin .../shrimp/{shrimp_red.png => shrimp.png} | Bin 8 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawed_lobster.json create mode 100644 src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawless_lobster.json rename src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/fiddler_crab/{fiddler_crab_blue.png => fiddler_crab.png} (100%) rename src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/ghost_crab/{ghost_crab_yellow.png => ghost_crab.png} (100%) rename src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/shrimp/{shrimp_red.png => shrimp.png} (100%) diff --git a/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawed_lobster.json b/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawed_lobster.json new file mode 100644 index 000000000..d2592713d --- /dev/null +++ b/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawed_lobster.json @@ -0,0 +1,24 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hybrid-aquatic:lobster_claw" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hybrid-aquatic:raw_lobster_tail" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawless_lobster.json b/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawless_lobster.json new file mode 100644 index 000000000..07f3dd3b4 --- /dev/null +++ b/src/generated/resources/data/hybrid-aquatic/loot_tables/gameplay/clawless_lobster.json @@ -0,0 +1,14 @@ +{ + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "hybrid-aquatic:raw_lobster_tail" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt index 7db7dc6cd..6cee4fd86 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/data/server/loot/GenericLootTableProvider.kt @@ -732,6 +732,28 @@ class GenericLootTableProvider(output: FabricDataOutput) : SimpleFabricLootTable ) ) + exporter.accept( + HybridAquaticLootTables.CLAWED_LOBSTER, + LootTable.builder() + .pool( + LootPool.builder() + .with(ItemEntry.builder(HybridAquaticItems.LOBSTER_CLAW)) + ) + .pool( + LootPool.builder() + .with(ItemEntry.builder(HybridAquaticItems.RAW_LOBSTER_TAIL)) + ) + ) + + exporter.accept( + HybridAquaticLootTables.CLAWLESS_LOBSTER, + LootTable.builder() + .pool( + LootPool.builder() + .with(ItemEntry.builder(HybridAquaticItems.RAW_LOBSTER_TAIL)) + ) + ) + exporter.accept( HybridAquaticLootTables.CRAB_DIGGING_TREASURE_ID, LootTable.builder() diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/LobsterEntity.kt b/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/LobsterEntity.kt index 9a081505d..1e5111af6 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/LobsterEntity.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/entity/crustacean/LobsterEntity.kt @@ -1,13 +1,32 @@ package dev.hybridlabs.aquatic.entity.crustacean +import dev.hybridlabs.aquatic.tag.HybridAquaticBiomeTags import net.minecraft.entity.EntityType import net.minecraft.entity.attribute.DefaultAttributeContainer import net.minecraft.entity.attribute.EntityAttributes import net.minecraft.entity.mob.WaterCreatureEntity +import net.minecraft.util.Identifier import net.minecraft.world.World class LobsterEntity(entityType: EntityType, world: World) : - HybridAquaticCrustaceanEntity(entityType, world, emptyMap(), false, false) { + HybridAquaticCrustaceanEntity(entityType, world, variants = hashMapOf( + "american" to CrustaceanVariant.biomeVariant("american", HybridAquaticBiomeTags.LOBSTER_SPAWN_BIOMES, + ignore = listOf(CrustaceanVariant.Ignore.MODEL, CrustaceanVariant.Ignore.ANIMATION)), + "california_spiny" to CrustaceanVariant.biomeVariant("california_spiny", HybridAquaticBiomeTags.LOBSTER_SPAWN_BIOMES, + ignore = listOf(CrustaceanVariant.Ignore.MODEL, CrustaceanVariant.Ignore.ANIMATION)), + "ornate_spiny" to CrustaceanVariant.biomeVariant("ornate_spiny", HybridAquaticBiomeTags.LOBSTER_SPAWN_BIOMES, + ignore = listOf(CrustaceanVariant.Ignore.MODEL, CrustaceanVariant.Ignore.ANIMATION)), + ), + false, false) { + + public override fun getLootTableId(): Identifier { + return when (this.variant?.variantName) { + "american" -> Identifier("hybrid-aquatic", "gameplay/clawed_lobster") + "california_spiny" -> Identifier("hybrid-aquatic", "gameplay/clawless_lobster") + "ornate_spiny" -> Identifier("hybrid-aquatic", "gameplay/clawless_lobster") + else -> super.getLootTableId() + } + } companion object { fun createMobAttributes(): DefaultAttributeContainer.Builder { diff --git a/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt b/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt index ebc150105..aea327f66 100644 --- a/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt +++ b/src/main/kotlin/dev/hybridlabs/aquatic/loot/HybridAquaticLootTables.kt @@ -24,6 +24,9 @@ object HybridAquaticLootTables { val ORANGESHOULDER = Identifier(HybridAquatic.MOD_ID, "gameplay/orangeshoulder") val UNICORNFISH = Identifier(HybridAquatic.MOD_ID, "gameplay/unicornfish") + val CLAWED_LOBSTER = Identifier(HybridAquatic.MOD_ID, "gameplay/clawed_lobster") + val CLAWLESS_LOBSTER = Identifier(HybridAquatic.MOD_ID, "gameplay/clawless_lobster") + val BLUE_SPOTTED_STINGRAY = Identifier(HybridAquatic.MOD_ID, "gameplay/blue_spotted_stingray") val CRAB_DIGGING_TREASURE_ID = Identifier(HybridAquatic.MOD_ID, "gameplay/crab_digging_treasure") diff --git a/src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/fiddler_crab/fiddler_crab_blue.png b/src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/fiddler_crab/fiddler_crab.png similarity index 100% rename from src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/fiddler_crab/fiddler_crab_blue.png rename to src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/fiddler_crab/fiddler_crab.png diff --git a/src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/ghost_crab/ghost_crab_yellow.png b/src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/ghost_crab/ghost_crab.png similarity index 100% rename from src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/ghost_crab/ghost_crab_yellow.png rename to src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/ghost_crab/ghost_crab.png diff --git a/src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/shrimp/shrimp_red.png b/src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/shrimp/shrimp.png similarity index 100% rename from src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/shrimp/shrimp_red.png rename to src/main/resources/assets/hybrid-aquatic/textures/entity/crustacean/shrimp/shrimp.png