diff --git a/.gitignore b/.gitignore index e71539a..9ee6871 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,9 @@ _tmp_bedrock_source generated !src/generated/ -.* \ No newline at end of file +.* + +# build/debug artifacts +*.log +errfiles.txt +mc_sources/ \ No newline at end of file diff --git a/build.gradle b/build.gradle index 5df7074..4c33bde 100644 --- a/build.gradle +++ b/build.gradle @@ -20,6 +20,15 @@ group = mod_group_id // This is the repositories block in your build.gradle. NOT the one in publishing, or in buildscript. If it does not exist already, create it. repositories { + // 阿里云 Maven 镜像(国内加速),public 为 central 聚合镜像 + maven { + name = "AliyunPublic" + url = "https://maven.aliyun.com/repository/public" + } + maven { + name = "AliyunCentral" + url = "https://maven.aliyun.com/repository/central" + } maven { name = "Modrinth" url = "https://api.modrinth.com/maven" @@ -98,7 +107,7 @@ neoForge { } // applies to all the run configs above - configureEach { + configureEach { run -> // Recommended logging data for a userdev environment // The markers can be added/remove as needed separated by commas. // "SCAN": For mods scan. @@ -111,16 +120,17 @@ neoForge { // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels logLevel = org.slf4j.event.Level.INFO - // Keep dev runs conservative on memory so the client does not over-allocate - // heap/native space on machines with a small Windows page file. + // 客户端需要加载全部资源/模型,给 4G;数据生成与服务端 2G 即可, + // 统一 SerialGC + 小线程栈,降低小页面文件机器上的原生内存压力。 + def heapSize = run.name == 'client' ? '4G' : '2G' jvmArguments.addAll( '-Xms128m', - '-Xmx8G', + "-Xmx${heapSize}", '-Xss512k', '-XX:ReservedCodeCacheSize=128m', '-XX:CICompilerCount=2', '-XX:+UseSerialGC', - '-XX:HeapBaseMinAddress=6G' + '-XX:TieredStopAtLevel=1' ) } } @@ -169,6 +179,9 @@ dependencies { // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8" + // 将 Kotlin 标准库打进最终 jar,否则游戏环境缺少 kotlin.jvm.internal.* 导致 NoClassDefFoundError + jarJar("org.jetbrains.kotlin:kotlin-stdlib:2.2.0") + jarJar("org.jetbrains:annotations:24.1.0") } // This block of code expands all declared replace properties in the specified resource targets. diff --git a/gradle.properties b/gradle.properties index 1840137..7ce1862 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,10 @@ # Sets default memory used for gradle commands. Can be overridden by user or command line properties. -org.gradle.jvmargs=-Xmx1G +org.gradle.jvmargs=-Xmx896m -XX:+UseSerialGC -XX:TieredStopAtLevel=1 -XX:CICompilerCount=2 -Xss512k -XX:ReservedCodeCacheSize=96m org.gradle.daemon=false org.gradle.parallel=false org.gradle.caching=false org.gradle.configuration-cache=false +kotlin.compiler.execution.strategy=in-process #read more on this at https://github.com/neoforged/ModDevGradle?tab=readme-ov-file#better-minecraft-parameter-names--javadoc-parchment # you can also find the latest versions at: https://parchmentmc.org/docs/getting-started diff --git a/list/blocks.txt b/list/blocks.txt index f99eb6d..b21be29 100644 --- a/list/blocks.txt +++ b/list/blocks.txt @@ -1,28 +1,40 @@ +abyssal_summoner amethyst_lantern ancient_ice ash +ash_cage +ash_summoner baby_blue_eyes_flower balloon_flower +bat_summoner bizarre_chilli_crop black_flower_block blue_flower_block blue_gem_ore blue_ice_brick_block breeze_flower +broken_dirt butter_flower butterfly_pea candy_block +cave_crate chiseled_ice_brick +christmas_gift_block cloud_flower compress_flower_block compressed_ice corn_crop +crate crimson_lamp crinum dandelion deep_dandelion +deep_summoner depart_grass desert_fan_flower +dirt_ghost_block +enchanted_summoner +end_altar end_coal_ore end_diamond_ore end_emerald_ore @@ -31,33 +43,60 @@ end_iron_ore end_lapis_ore end_ore end_redstone_ore +everlasting_winter_summoner experience_flower_crop +eye_of_nature_log fan_flower +flesh_block flower_ghost_block +flowing_block +forest_summoner fritillary_crop +frozen_cage +frozen_crate frozen_mirror_flower +fuse +ghost_ice gold_flower +golden_bookshelf +golden_bookshelf_frame +golden_chain +golden_fence_block golden_lamp hammer_flower houttuynia_crop +ice_bookshelf ice_brick_block ice_lantern ice_mixed_brick +ice_rope_block +item_picker +lace_block_black +lace_block_light_red lamp_flower +lampshade lava_flower_crop lava_ore leaves_flower leek_crop light_obsidian +lightning_summoner +lurk_block lurk_bud +lurk_end_stone lurk_fruit lurk_grass lurk_log lurk_mushroom lurk_orchid lurk_spring +magic_letter_box maple_flower +mine +mining_machine mock_strawberry +monitor +monitor_activated mooli_crop mouth_flower nether_coal_ore @@ -69,29 +108,47 @@ nether_lapis_ore nether_redstone_ore nether_stick_flower nightmare_block +nuke_block pink_dandelion pink_fan_flower pink_flower_block +plain_tower_summoner +purpur_summoner +radiate_dirt +radiate_stone +radiate_stonebrick +raining_summoner red_flower_block red_gem_ore +red_lantern +red_patterned_stonebrick red_spider_lily red_stonebrick rice_crop rosemary rotten_flesh_block russet_grass +scale_block +small_stone_block_entity smooth_amethyst_block +snow_brick_block snow_flower snow_lotus solidified_lava_block soul_soil_diamond_ore +soul_summoner soybean_crop spark_flower spell_flower star_flower steel_block stick_flower +stone_heap +stone_road stream_ore +sunny_summoner +sweet_berries_block +thin_rope_block thyme uranium_block uranium_ore diff --git a/list/creative_tabs.txt b/list/creative_tabs.txt index 5c11bd2..501e35c 100644 --- a/list/creative_tabs.txt +++ b/list/creative_tabs.txt @@ -1,4 +1,5 @@ decisland_accessories_tab +decisland_blocks_tab decisland_crops_tab decisland_foods_tab decisland_masks_tab diff --git a/list/entities.txt b/list/entities.txt index edb0f14..536fe73 100644 --- a/list/entities.txt +++ b/list/entities.txt @@ -15,6 +15,7 @@ copper_dart coral_dart deep_energy diamond_dart +elf_of_leaves emerald_dart energy_ball energy_ray @@ -32,6 +33,7 @@ iron_dart jellyfish_by_jellyfish_staff lapis_bullet lava_dart +leaves_golem mind_controller muddy_ball netherite_dart @@ -59,3 +61,4 @@ wave_energy winter_energy wither_cloud wood_dart +zombie_warrior diff --git a/list/items.txt b/list/items.txt index 07c42dd..0d5b108 100644 --- a/list/items.txt +++ b/list/items.txt @@ -2,6 +2,7 @@ a_bowl_of_rice a_piece_of_salmon absolute_zero abyssal_controller_mask +abyssal_summoner agent_mask alchemic_stone alex_mask @@ -26,10 +27,12 @@ archer_stones_bag arctic_fox_mask ash ash_blaze_mask +ash_cage ash_key ash_knight_mask ash_pufferfish ash_pufferfish_mask +ash_summoner autumn_leaves axolotl_blue_mask axolotl_cyan_mask @@ -41,6 +44,7 @@ balloon_flower bamboo_katana bat_bait bat_mask +bat_summoner bat_wing bee_mask bizarre_chilli @@ -70,6 +74,7 @@ boomber_mask bracken brain_rice breeze_flower +broken_dirt brown_bear_mask brown_mooshroom_mask bullet_bag @@ -80,6 +85,7 @@ camouflage_pants candy candy_block candy_cane +cave_crate cave_spider_mask challenge_of_ash chicken_mask @@ -87,6 +93,7 @@ chiseled_ice_brick chocolate_cookie chocolates christmas_cap +christmas_gift_block cloud_flower coal_fish coal_nugget @@ -111,6 +118,7 @@ corrupted_sword cow_mask crab_leg crab_leg_cooked +crate creeper_mask crimson_lamp crimson_slime_mask @@ -134,6 +142,7 @@ dead_wood_rapier decrepit_atlantis deep_dandelion deep_staff +deep_summoner depart_grass desert_fan_flower diamond_apple @@ -148,6 +157,7 @@ diamond_sickle diamond_staff dirt_boots dirt_chestplate +dirt_ghost_block dirt_helmet dirt_leggings dolphin_mask @@ -174,6 +184,8 @@ emerald_ring emerald_staff emerald_sword empty_totem +enchanted_summoner +end_altar end_coal_ore end_diamond_ore end_emerald_ore @@ -214,6 +226,7 @@ everlasting_winter_leggings everlasting_winter_sickle everlasting_winter_staff everlasting_winter_stick +everlasting_winter_summoner everlasting_winter_sword evil_snow_man_mask experience_book @@ -221,6 +234,7 @@ experience_book_empty experience_book_pro_empty experience_flower_seeds eye_of_nature +eye_of_nature_log fan_flower fang_mace farmer_hat @@ -228,11 +242,14 @@ final_crystal_nucleus fire_ring firefly_bottle flare_magic_book +flesh_block flintlock flintlock_bullet flintlock_pro flower_essence +flowing_block following_particle +forest_summoner formal_style_clothes formal_style_pants fox_mask @@ -243,7 +260,9 @@ fritillary fritillary_seeds frozen_ball frozen_boots +frozen_cage frozen_chestplate +frozen_crate frozen_dart frozen_fish frozen_helmet @@ -254,12 +273,14 @@ frozen_power_debris frozen_ray_staff frozen_spider_mask frozen_staff +fuse gargoyle_mask gas_bomb ghast_mask ghost_dagger ghost_essence ghost_flintlock +ghost_ice ghost_ingot ghost_sickle ghost_sword @@ -282,7 +303,11 @@ gold_flower gold_ring gold_sickle gold_yuanbao +golden_bookshelf +golden_bookshelf_frame +golden_chain golden_dagger +golden_fence_block golden_lamp golden_staff gray_shoes @@ -312,6 +337,7 @@ hunter_book hunter_bullet_bag husk_mask ice_blaze_mask +ice_bookshelf ice_brick ice_brick_block ice_cream @@ -321,6 +347,7 @@ ice_lantern ice_mixed_brick ice_nugget ice_rod +ice_rope_block ice_sword ice_zombie_mask illager_mask @@ -339,6 +366,7 @@ iron_key iron_sickle iron_staff iron_stick +item_picker jacket jellyfish_staff jellyfish_staff_projectile_render @@ -346,8 +374,11 @@ jiuzhi_jacket jiuzhi_pants jiuzhi_shoes knight_helmet +lace_block_black +lace_block_light_red lamp_flower lamprey +lampshade lapis_apple lapis_bullet_render lapis_dagger @@ -379,9 +410,12 @@ lester_pants lester_shoes light_obsidian lightning_stone +lightning_summoner lollipop long_bread +lurk_block lurk_bud +lurk_end_stone lurk_fruit lurk_grass lurk_log @@ -392,13 +426,18 @@ magic_article magic_chest_debris magic_crystal magic_ice_cream +magic_letter_box magic_powder magic_surge_core magma_cube_mask maple_flower melon_piece mind_controller +mine +mining_machine mock_strawberry +monitor +monitor_activated mooli mooli_seeds moon_jellyfish @@ -433,6 +472,7 @@ netherite_dart netherite_sickle night_sword nightmare +nuke_block obsidian_golem_mask old_book old_monster_mask @@ -449,6 +489,7 @@ pink_fan_flower pink_flower_block pink_jellyfish pirate_bullet_bag +plain_tower_summoner player_ghost_mask poison_dart poison_fish @@ -463,15 +504,22 @@ pufferfish_mask pulse_stone pumpkin_candy pure_ingot +purpur_summoner radiate_creeper_mask radiate_crystal +radiate_dirt radiate_enderman_mask +radiate_stone +radiate_stonebrick +raining_summoner rapier red_flower_block red_gem red_gem_debris red_gem_hat red_gem_ore +red_lantern +red_patterned_stonebrick red_spider_lily red_stonebrick redstone_apple @@ -490,6 +538,7 @@ rupert_helmet rupert_leggings russet_grass sardine +scale_block scale_sword scimitar sea_turtle_mask @@ -515,9 +564,11 @@ slime_pickaxe sliver_yuanbao small_stone small_stone_block +small_stone_block_entity smoke_bomb smooth_amethyst_block snailfish +snow_brick_block snow_flower snow_lotus snowball_magic_book @@ -529,6 +580,7 @@ soul_key soul_skeleton_mask soul_soil_diamond_ore soul_staff +soul_summoner soul_wake_bullet_render soul_zombie_mask soybean @@ -560,8 +612,10 @@ stone_boots stone_chestplate stone_dagger stone_dart +stone_heap stone_helmet stone_leggings +stone_road stones_bag storm_battleaxe storm_flintlock @@ -577,14 +631,17 @@ stream_stone strider_mask striped_pants sun_stone +sunny_summoner swamp_drowned_mask swamp_golem_mask +sweet_berries_block sword_fish sword_of_deep sword_of_guard sword_of_halloween the_blade the_imperial_sword +thin_rope_block throwable_bomb thunder_rapier thunder_staff diff --git a/settings.gradle b/settings.gradle index 8feb3df..6fd4c2c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,11 @@ pluginManagement { repositories { + // 阿里云 Gradle 插件镜像(国内加速) + maven { url = 'https://maven.aliyun.com/repository/gradle-plugin' } + maven { url = 'https://maven.aliyun.com/repository/public' } + // 镜像缺失时回退官方源 gradlePluginPortal() + mavenCentral() } plugins { id 'org.jetbrains.kotlin.jvm' version '2.2.0' diff --git a/src/generated/resources/assets/decisland/blockstates/abyssal_summoner.json b/src/generated/resources/assets/decisland/blockstates/abyssal_summoner.json new file mode 100644 index 0000000..b71dcb8 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/abyssal_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/abyssal_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/ash_cage.json b/src/generated/resources/assets/decisland/blockstates/ash_cage.json new file mode 100644 index 0000000..1a3f883 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/ash_cage.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/ash_cage" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/ash_summoner.json b/src/generated/resources/assets/decisland/blockstates/ash_summoner.json new file mode 100644 index 0000000..ef8c6c1 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/ash_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/ash_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/bat_summoner.json b/src/generated/resources/assets/decisland/blockstates/bat_summoner.json new file mode 100644 index 0000000..80124fc --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/bat_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/bat_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/broken_dirt.json b/src/generated/resources/assets/decisland/blockstates/broken_dirt.json new file mode 100644 index 0000000..44f6763 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/broken_dirt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/broken_dirt" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/cave_crate.json b/src/generated/resources/assets/decisland/blockstates/cave_crate.json new file mode 100644 index 0000000..c6e0ed6 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/cave_crate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/cave_crate" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/christmas_gift_block.json b/src/generated/resources/assets/decisland/blockstates/christmas_gift_block.json new file mode 100644 index 0000000..c94fd99 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/christmas_gift_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/christmas_gift_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/crate.json b/src/generated/resources/assets/decisland/blockstates/crate.json new file mode 100644 index 0000000..8a4db2f --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/crate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/crate" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/deep_summoner.json b/src/generated/resources/assets/decisland/blockstates/deep_summoner.json new file mode 100644 index 0000000..b91c674 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/deep_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/deep_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/dirt_ghost_block.json b/src/generated/resources/assets/decisland/blockstates/dirt_ghost_block.json new file mode 100644 index 0000000..b1caed2 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/dirt_ghost_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/dirt_ghost_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/enchanted_summoner.json b/src/generated/resources/assets/decisland/blockstates/enchanted_summoner.json new file mode 100644 index 0000000..be5451f --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/enchanted_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/enchanted_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/end_altar.json b/src/generated/resources/assets/decisland/blockstates/end_altar.json new file mode 100644 index 0000000..66b9e93 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/end_altar.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/end_altar" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/everlasting_winter_summoner.json b/src/generated/resources/assets/decisland/blockstates/everlasting_winter_summoner.json new file mode 100644 index 0000000..1ebd4b7 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/everlasting_winter_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/everlasting_winter_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/eye_of_nature_log.json b/src/generated/resources/assets/decisland/blockstates/eye_of_nature_log.json new file mode 100644 index 0000000..ae90bf5 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/eye_of_nature_log.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/eye_of_nature_log" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/flesh_block.json b/src/generated/resources/assets/decisland/blockstates/flesh_block.json new file mode 100644 index 0000000..83b79a0 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/flesh_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/flesh_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/flowing_block.json b/src/generated/resources/assets/decisland/blockstates/flowing_block.json new file mode 100644 index 0000000..66e5ff7 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/flowing_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/flowing_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/forest_summoner.json b/src/generated/resources/assets/decisland/blockstates/forest_summoner.json new file mode 100644 index 0000000..de6b2f9 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/forest_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/forest_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/frozen_cage.json b/src/generated/resources/assets/decisland/blockstates/frozen_cage.json new file mode 100644 index 0000000..6e29355 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/frozen_cage.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/frozen_cage" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/frozen_crate.json b/src/generated/resources/assets/decisland/blockstates/frozen_crate.json new file mode 100644 index 0000000..35814ae --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/frozen_crate.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/frozen_crate" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/fuse.json b/src/generated/resources/assets/decisland/blockstates/fuse.json new file mode 100644 index 0000000..e94bc6a --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/fuse.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/fuse" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/ghost_ice.json b/src/generated/resources/assets/decisland/blockstates/ghost_ice.json new file mode 100644 index 0000000..fcbb4d7 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/ghost_ice.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/ghost_ice" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/golden_chain.json b/src/generated/resources/assets/decisland/blockstates/golden_chain.json new file mode 100644 index 0000000..648c4e5 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/golden_chain.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/golden_chain" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/golden_fence_block.json b/src/generated/resources/assets/decisland/blockstates/golden_fence_block.json new file mode 100644 index 0000000..9773d87 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/golden_fence_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/golden_fence_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/ice_bookshelf.json b/src/generated/resources/assets/decisland/blockstates/ice_bookshelf.json new file mode 100644 index 0000000..90f726c --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/ice_bookshelf.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/ice_bookshelf" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/ice_rope_block.json b/src/generated/resources/assets/decisland/blockstates/ice_rope_block.json new file mode 100644 index 0000000..58b8c5b --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/ice_rope_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/ice_rope_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/item_picker.json b/src/generated/resources/assets/decisland/blockstates/item_picker.json new file mode 100644 index 0000000..c32d529 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/item_picker.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/item_picker" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/lace_block_black.json b/src/generated/resources/assets/decisland/blockstates/lace_block_black.json new file mode 100644 index 0000000..ed3c552 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/lace_block_black.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/lace_block_black" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/lace_block_light_red.json b/src/generated/resources/assets/decisland/blockstates/lace_block_light_red.json new file mode 100644 index 0000000..e861359 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/lace_block_light_red.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/lace_block_light_red" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/lampshade.json b/src/generated/resources/assets/decisland/blockstates/lampshade.json new file mode 100644 index 0000000..561cca4 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/lampshade.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/lampshade" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/lightning_summoner.json b/src/generated/resources/assets/decisland/blockstates/lightning_summoner.json new file mode 100644 index 0000000..0dc1a47 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/lightning_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/lightning_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/lurk_block.json b/src/generated/resources/assets/decisland/blockstates/lurk_block.json new file mode 100644 index 0000000..e6ed1b2 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/lurk_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/lurk_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/lurk_end_stone.json b/src/generated/resources/assets/decisland/blockstates/lurk_end_stone.json new file mode 100644 index 0000000..9f799c2 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/lurk_end_stone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/lurk_end_stone" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/mine.json b/src/generated/resources/assets/decisland/blockstates/mine.json new file mode 100644 index 0000000..3ddc9c3 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/mine.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/mine" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/mining_machine.json b/src/generated/resources/assets/decisland/blockstates/mining_machine.json new file mode 100644 index 0000000..1472317 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/mining_machine.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/mining_machine" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/monitor.json b/src/generated/resources/assets/decisland/blockstates/monitor.json new file mode 100644 index 0000000..d33c9f3 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/monitor.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/monitor" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/monitor_activated.json b/src/generated/resources/assets/decisland/blockstates/monitor_activated.json new file mode 100644 index 0000000..51798dd --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/monitor_activated.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/monitor_activated" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/nuke_block.json b/src/generated/resources/assets/decisland/blockstates/nuke_block.json new file mode 100644 index 0000000..e990aec --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/nuke_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/nuke_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/plain_tower_summoner.json b/src/generated/resources/assets/decisland/blockstates/plain_tower_summoner.json new file mode 100644 index 0000000..b2f83f8 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/plain_tower_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/plain_tower_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/purpur_summoner.json b/src/generated/resources/assets/decisland/blockstates/purpur_summoner.json new file mode 100644 index 0000000..dae376f --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/purpur_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/purpur_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/radiate_dirt.json b/src/generated/resources/assets/decisland/blockstates/radiate_dirt.json new file mode 100644 index 0000000..73de43b --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/radiate_dirt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/radiate_dirt" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/radiate_stone.json b/src/generated/resources/assets/decisland/blockstates/radiate_stone.json new file mode 100644 index 0000000..785e4f6 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/radiate_stone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/radiate_stone" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/radiate_stonebrick.json b/src/generated/resources/assets/decisland/blockstates/radiate_stonebrick.json new file mode 100644 index 0000000..118db20 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/radiate_stonebrick.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/radiate_stonebrick" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/raining_summoner.json b/src/generated/resources/assets/decisland/blockstates/raining_summoner.json new file mode 100644 index 0000000..67f6f97 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/raining_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/raining_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/red_patterned_stonebrick.json b/src/generated/resources/assets/decisland/blockstates/red_patterned_stonebrick.json new file mode 100644 index 0000000..e90cd63 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/red_patterned_stonebrick.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/red_patterned_stonebrick" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/scale_block.json b/src/generated/resources/assets/decisland/blockstates/scale_block.json new file mode 100644 index 0000000..0123c29 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/scale_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/scale_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/small_stone_block_entity.json b/src/generated/resources/assets/decisland/blockstates/small_stone_block_entity.json new file mode 100644 index 0000000..1bdb794 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/small_stone_block_entity.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/small_stone_block_entity" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/snow_brick_block.json b/src/generated/resources/assets/decisland/blockstates/snow_brick_block.json new file mode 100644 index 0000000..4751e13 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/snow_brick_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/snow_brick_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/soul_summoner.json b/src/generated/resources/assets/decisland/blockstates/soul_summoner.json new file mode 100644 index 0000000..c21cfb4 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/soul_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/soul_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/stone_heap.json b/src/generated/resources/assets/decisland/blockstates/stone_heap.json new file mode 100644 index 0000000..89b2e71 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/stone_heap.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/stone_heap" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/stone_road.json b/src/generated/resources/assets/decisland/blockstates/stone_road.json new file mode 100644 index 0000000..d2ea2cf --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/stone_road.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/stone_road" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/sunny_summoner.json b/src/generated/resources/assets/decisland/blockstates/sunny_summoner.json new file mode 100644 index 0000000..1ea1338 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/sunny_summoner.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/sunny_summoner" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/sweet_berries_block.json b/src/generated/resources/assets/decisland/blockstates/sweet_berries_block.json new file mode 100644 index 0000000..b6cc802 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/sweet_berries_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/sweet_berries_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/blockstates/thin_rope_block.json b/src/generated/resources/assets/decisland/blockstates/thin_rope_block.json new file mode 100644 index 0000000..da9b1f5 --- /dev/null +++ b/src/generated/resources/assets/decisland/blockstates/thin_rope_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/thin_rope_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/lang/en_us.json b/src/generated/resources/assets/decisland/lang/en_us.json index 8f5f823..b6e66fc 100644 --- a/src/generated/resources/assets/decisland/lang/en_us.json +++ b/src/generated/resources/assets/decisland/lang/en_us.json @@ -538,6 +538,8 @@ "item.decisland.a_piece_of_salmon": "a Piece of Salmon", "item.decisland.absolute_zero": "Absolute Zero", "item.decisland.abyssal_controller_mask": "Abyssal Controller Mask", + "item.decisland.abyssal_controller_spawn_egg": "Spawn Abyssal Controller", + "item.decisland.abyssal_shadow_spawn_egg": "Spawn Abyssal Shadow", "item.decisland.agent_mask": "Agent Mask", "item.decisland.alchemic_stone": "Alchemic Stone", "item.decisland.alex_mask": "Alex Mask", @@ -553,17 +555,27 @@ "item.decisland.amethyst_ray_staff": "Amethyst Ray Sfaff", "item.decisland.amethyst_sword": "Amethyst Sword", "item.decisland.angel_purification": "Angel Purification", + "item.decisland.angry_chicken_spawn_egg": "Spawn Angry Chicken", "item.decisland.apple_juice": "Apple Juice", "item.decisland.apple_pie": "Apple Pie", "item.decisland.archer_bullet_bag": "Archer Bullet Bag", "item.decisland.archer_hat": "Archer Hat", + "item.decisland.archer_spawn_egg": "Spawn Archer", "item.decisland.archer_stones_bag": "Archer Stones Bag", "item.decisland.arctic_fox_mask": "Arcitc Fox Mask", "item.decisland.ash_blaze_mask": "Ash Blaze Mask", + "item.decisland.ash_blaze_spawn_egg": "Spawn Ash Blaze", + "item.decisland.ash_bomb_spawn_egg": "Spawn Ash Bomb", + "item.decisland.ash_horse_head_spawn_egg": "Spawn Ash Horse Head", "item.decisland.ash_key": "Ash Key", + "item.decisland.ash_knight_head_spawn_egg": "Spawn Ash Knight Head", "item.decisland.ash_knight_mask": "Ash Knight Mask", + "item.decisland.ash_knight_spawn_egg": "Spawn Ash Knight", "item.decisland.ash_pufferfish": "Inflamed Ash Pufferfish", "item.decisland.ash_pufferfish_mask": "Ash Pufferfish Mask", + "item.decisland.ash_pufferfish_spawn_egg": "Spawn Ash Pufferfish", + "item.decisland.ash_sword_phantom_spawn_egg": "Spawn Ash Sword Phantom", + "item.decisland.ash_sword_spawn_egg": "Spawn Ash Sword", "item.decisland.autumn_leaves": "Autumn Leaves", "item.decisland.axolotl_blue_mask": "Axolotl Blue Mask", "item.decisland.axolotl_cyan_mask": "Axolotl Cyan Mask", @@ -571,10 +583,12 @@ "item.decisland.axolotl_lucy_mask": "Axolotl Lucy Mask", "item.decisland.axolotl_wild_mask": "Axolotl Wild Mask", "item.decisland.baby_blue_eyes_flower": "Baby Blue Eyes Flower", + "item.decisland.baby_ender_dragon_spawn_egg": "Spawn Baby Ender Dragon", "item.decisland.balloon_flower": "Balloon Flower", "item.decisland.bamboo_katana": "Bamboo Katana", "item.decisland.bamboo_yataghan": "Bamboo Yataghan", "item.decisland.bat_bait": "Bat Bait", + "item.decisland.bat_charger_spawn_egg": "Spawn Bat Charger", "item.decisland.bat_mask": "Bat Mask", "item.decisland.bat_staff": "Bat Staff", "item.decisland.bat_wing": "Incomplete Bat Wing", @@ -584,6 +598,7 @@ "item.decisland.black_courtesy": "Black Courtesy", "item.decisland.black_shoes": "Black Shoes", "item.decisland.black_shorts": "Black Shorts", + "item.decisland.blackstone_thorn_spawn_egg": "Spawn Blackstone Thorn", "item.decisland.blaze_mask": "Blaze Mask", "item.decisland.blaze_staff": "Blaze Staff", "item.decisland.blizzard_staff": "Blizzard Staff", @@ -593,6 +608,7 @@ "item.decisland.blood_meat": "Blood Meat", "item.decisland.blood_sickle": "Blood Sickle", "item.decisland.blood_worm": "Blood Worm", + "item.decisland.blood_zombie_spawn_egg": "Spawn Blood Zombie", "item.decisland.blue_cat_ears": "Blue Cat Ears", "item.decisland.blue_gem": "Blue Gem", "item.decisland.blue_gem_debris": "Blue Gem Debris", @@ -601,6 +617,7 @@ "item.decisland.blue_of_the_sea": "Blue Of The Sea", "item.decisland.bomber": "Bomber", "item.decisland.bomber_bullet": "Bomber Bullet", + "item.decisland.bomber_spawn_egg": "Spawn Bomber", "item.decisland.bone_sword": "Bone Sword", "item.decisland.book_of_deep": "Book of Deep", "item.decisland.boomber_mask": "Bommber Mask", @@ -608,6 +625,7 @@ "item.decisland.brain_rice": "Brain Rice", "item.decisland.breeze_flower": "Breeze Flower", "item.decisland.brown_bear_mask": "Brown Bear Mask", + "item.decisland.brown_bear_spawn_egg": "Spawn Brown Bear", "item.decisland.brown_mooshroom_mask": "Brown Mooshroom Mask", "item.decisland.bullet_bag": "Bullet Bag", "item.decisland.butter_flower": "Butter Flower", @@ -616,10 +634,13 @@ "item.decisland.camouflage_pants": "Camouflage Pants", "item.decisland.candy": "Candy", "item.decisland.candy_cane": "Candy Cane", + "item.decisland.carnager_spawn_egg": "Spawn Carnager", "item.decisland.catapult": "Catapult", "item.decisland.cave_spider_mask": "Cave Spider Mask", "item.decisland.challenge_of_ash": "Challenge Of Ash", "item.decisland.chaos_staff": "Chaos Staff", + "item.decisland.chest_monster_spawn_egg": "Spawn Chest Monster", + "item.decisland.chester_spawn_egg": "Spawn Chester", "item.decisland.chicken_mask": "Chicken Mask", "item.decisland.chicken_staff": "Chicken Staff", "item.decisland.chocolate_cookie": "Chocolate Cookie", @@ -627,6 +648,7 @@ "item.decisland.christmas_cap": "Christmas Cap", "item.decisland.christmas_gift": "Christmas Gift", "item.decisland.christmas_sock": "Christmas Sock", + "item.decisland.clam_spawn_egg": "Spawn Clam", "item.decisland.cloud_flower": "Cloud Flower", "item.decisland.coal_fish": "Coal Fish", "item.decisland.coal_nugget": "Coal Nugget", @@ -649,8 +671,10 @@ "item.decisland.cow_mask": "Cow Mask", "item.decisland.crab_leg": "Crab Leg", "item.decisland.crab_leg_cooked": "Cooked Crab Leg", + "item.decisland.crab_spawn_egg": "Spawn Crab", "item.decisland.creeper_mask": "Creeper Mask", "item.decisland.crimson_slime_mask": "Crimson Slime Mask", + "item.decisland.crimson_slime_spawn_egg": "Spawn Crimson Slime", "item.decisland.crinum": "Crinum", "item.decisland.crying_boots": "Crying Boots", "item.decisland.crying_chestplate": "Crying Chestplate", @@ -663,8 +687,10 @@ "item.decisland.dark_debris": "Dark Debris", "item.decisland.dark_pearl": "Dark Pearl", "item.decisland.dark_snow_man_mask": "Dark Snow Man Mask", + "item.decisland.dark_snow_man_spawn_egg": "Spawn Dark Snow Man", "item.decisland.dark_stone": "Dark Stone", "item.decisland.dark_werewolf_mask": "Dark Werewolf Mask", + "item.decisland.dark_werewolf_spawn_egg": "Spawn Dark Werewolf", "item.decisland.dark_zombie_mask": "Dark Zombie Mask", "item.decisland.dead_wood_dagger": "Dead Wood Dagger", "item.decisland.dead_wood_rapier": "Dead Wood Rapier", @@ -688,6 +714,7 @@ "item.decisland.dirt_chestplate": "Dirt Chestplate", "item.decisland.dirt_helmet": "Dirt Helmet", "item.decisland.dirt_leggings": "Dirt Leggings", + "item.decisland.doctor_spawn_egg": "Spawn Doctor", "item.decisland.dolphin_mask": "Dolphin Mask", "item.decisland.dragon_fireball_by_player": "Dragon Fireball", "item.decisland.drift_bottle": "Drift Bottle", @@ -697,8 +724,12 @@ "item.decisland.dust_staff": "Dust Staff", "item.decisland.echo_of_deep": "Echo of Deep", "item.decisland.elf_of_ash_mask": "Elf Of Ash Mask", + "item.decisland.elf_of_ash_spawn_egg": "Spawn Elf Of Ash", "item.decisland.elf_of_chaos_mask": "Elf Of Chaos Mask", + "item.decisland.elf_of_chaos_spawn_egg": "Spawn Elf Of Chaos", "item.decisland.elf_of_deep_mask": "Elf Of Deep Mask", + "item.decisland.elf_of_deep_spawn_egg": "Spawn Elf Of Deep", + "item.decisland.elf_of_dust_spawn_egg": "Spawn Elf Of Dust", "item.decisland.elf_of_leaves_mask": "Elf Of Leaves Mask", "item.decisland.emerald_apple": "Emerald Apple", "item.decisland.emerald_apple_enchanted": "Enchanted Emerald Apple", @@ -716,7 +747,14 @@ "item.decisland.emerald_staff": "Emerald Staff", "item.decisland.emerald_sword": "Emerald Sword", "item.decisland.empty_totem": "Empty Totem", + "item.decisland.enchant_armor_by_boss_spawn_egg": "Spawn Enchant Armor", + "item.decisland.enchant_armor_spawn_egg": "Spawn Enchant Armor", + "item.decisland.enchant_diamond_armor_spawn_egg": "Spawn Enchant Diamond Armor", + "item.decisland.enchant_illager_1_spawn_egg": "Spawn Enchant Illager", + "item.decisland.enchant_illager_2_spawn_egg": "Spawn Enchant Illager", + "item.decisland.enchant_illager_spawn_egg": "Spawn Enchant Illager", "item.decisland.end_stone_golem_mask": "End Stone Golem Mask", + "item.decisland.end_stone_golem_spawn_egg": "Spawn Endstone Golem", "item.decisland.ender_bone": "Ender Bone", "item.decisland.ender_breath": "Ender Breath", "item.decisland.ender_core": "Ender Core", @@ -725,33 +763,44 @@ "item.decisland.ender_fish": "Ender Fish", "item.decisland.ender_powder": "Ender Powder", "item.decisland.ender_ring": "Ender Ring", + "item.decisland.ender_snail_spawn_egg": "Spawn Ender Snail", + "item.decisland.ender_snake_spawn_egg": "Spawn Ender Snake", "item.decisland.ender_stone": "Ender Stone", "item.decisland.ender_substance": "Ender Substance", "item.decisland.ender_witch_mask": "Ender Witch Mask", + "item.decisland.ender_witch_puppet_spawn_egg": "Spawn Ender Witch Puppet", + "item.decisland.ender_witch_spawn_egg": "Spawn Ender Witch", "item.decisland.enderman_mask": "Enderman Mask", "item.decisland.energy_ray_staff": "Energy Ray Staff", "item.decisland.energy_totem": "Energy Totem", "item.decisland.enriched_uranium": "Enriched Uranium", "item.decisland.entity_soul": "Entity Soul", + "item.decisland.entity_soul_1_spawn_egg": "Spawn Entity Soul", "item.decisland.entity_soul_mask": "Entity Soul Mask", + "item.decisland.entity_soul_spawn_egg": "Spawn Entity Soul", "item.decisland.es_clothes": "Es Clothes", "item.decisland.es_pants": "Es Pants", "item.decisland.es_shoes": "Es Shoes", + "item.decisland.escaped_soul_entity_spawn_egg": "Spawn Escaped Soul", "item.decisland.everlasting_winter_boots": "Everlasting Winter Boots", "item.decisland.everlasting_winter_chestplate": "Everlasting Winter Chestplate", "item.decisland.everlasting_winter_dagger": "Everlasting Winter Dagger", "item.decisland.everlasting_winter_dart": "Everlasting Dart", "item.decisland.everlasting_winter_flintlock": "Everlasting Winter Flintlock", + "item.decisland.everlasting_winter_ghast_1_spawn_egg": "Spawn Everlasting Winter Ghast", "item.decisland.everlasting_winter_ghast_mask": "Everlasting Winter Ghast Mask", + "item.decisland.everlasting_winter_ghast_spawn_egg": "Spawn Everlasting Winter Ghast", "item.decisland.everlasting_winter_heart": "Everlasting Winter Heart", "item.decisland.everlasting_winter_helmet": "Everlasting Winter Helmet", "item.decisland.everlasting_winter_ingot": "Everlasting Winter Ingot", "item.decisland.everlasting_winter_leggings": "Everlasting Winter Leggings", + "item.decisland.everlasting_winter_shadow_spawn_egg": "Spawn Everlasting Winter Shadow", "item.decisland.everlasting_winter_sickle": "Everlasting Winter Sickle", "item.decisland.everlasting_winter_staff": "Everlasting Winter Staff", "item.decisland.everlasting_winter_stick": "Everlasting Winter Stick", "item.decisland.everlasting_winter_sword": "Everlasting Winter Sword", "item.decisland.evil_snow_man_mask": "Evil Snow Man Mask", + "item.decisland.evil_snow_man_spawn_egg": "Spawn Evil Snow Man", "item.decisland.experience_book": "Experience Book", "item.decisland.experience_book_empty": "Empty Experience Book", "item.decisland.experience_book_pro_empty": "Empty Experience Book Pro", @@ -764,6 +813,7 @@ "item.decisland.final_crystal_nucleus": "Final Crystal Nucleus", "item.decisland.fire_heart": "Fire Heart", "item.decisland.fire_ring": "Fire Ring", + "item.decisland.fire_storm_spawn_egg": "Spawn Fire Storm", "item.decisland.fire_totem": "Fire Totem", "item.decisland.firefly_bottle": "Firefly Bottle", "item.decisland.flare_magic_book": "Flare Magic Book", @@ -778,6 +828,8 @@ "item.decisland.frank_mask": "Frank Mask", "item.decisland.fried_egg": "Fried Egg", "item.decisland.fried_melon_seed": "Fried Melon Seed", + "item.decisland.friendly_little_soul_spawn_egg": "Spawn Friendly Little Soul", + "item.decisland.friendly_spider_spawn_egg": "Spawn Friendly Spider", "item.decisland.fritillary": "Fritillary", "item.decisland.fritillary_seeds": "Fritillary Seeds", "item.decisland.frozen_ball": "Frozen Ball", @@ -785,28 +837,43 @@ "item.decisland.frozen_chestplate": "Frozen Chestplate", "item.decisland.frozen_dart": "Frozen Dart", "item.decisland.frozen_fish": "Frozen Fish", + "item.decisland.frozen_ghast_spawn_egg": "Spawn Frozen Ghast", + "item.decisland.frozen_heart_sleeping_spawn_egg": "Spawn Frozen Heart Sleeping", + "item.decisland.frozen_heart_spawn_egg": "Spawn Frozen Heart", "item.decisland.frozen_helmet": "Frozen Helmet", "item.decisland.frozen_leggings": "Frozen Leggings", + "item.decisland.frozen_man_spawn_egg": "Spawn Frozen Man", "item.decisland.frozen_mirror_flower": "Frozen Mirror Flower", "item.decisland.frozen_power": "Frozen Power", "item.decisland.frozen_power_debris": "Frozen Power Debris", "item.decisland.frozen_ray_staff": "Frozen Ray Staff", + "item.decisland.frozen_shadow_spawn_egg": "Spawn Frozen Shadow", "item.decisland.frozen_spider_mask": "Frozen Spider Mask", + "item.decisland.frozen_spider_spawn_egg": "Spawn Frozen Spider", "item.decisland.frozen_staff": "Frozen Staff", "item.decisland.gargoyle_mask": "Gargoyle Mask", + "item.decisland.gargoyle_spawn_egg": "Spawn Gargoyle", "item.decisland.gas_bomb": "Gas Bomb", "item.decisland.ghast_mask": "Ghast Mask", "item.decisland.ghost_dagger": "The Raider Of Soul", + "item.decisland.ghost_diamond_axe_spawn_egg": "Spawn Ghost Diamond Axe", + "item.decisland.ghost_diamond_staff_spawn_egg": "Spawn Ghost Diamond Staff", + "item.decisland.ghost_diamond_sword_spawn_egg": "Spawn Ghost Diamond Sword", "item.decisland.ghost_dirt_wall": "Ghost Dirt Wall", "item.decisland.ghost_essence": "Ghost Essence", "item.decisland.ghost_flintlock": "Ghost Flintlock", "item.decisland.ghost_ingot": "Ghost Ingot", + "item.decisland.ghost_iron_axe_spawn_egg": "Spawn Ghost Iron Axe", + "item.decisland.ghost_iron_sword_spawn_egg": "Spawn Ghost Iron Sword", "item.decisland.ghost_sickle": "The Reaper Of Soul", "item.decisland.ghost_summoner": "Ghost Summoner", "item.decisland.ghost_sword": "The Absorber Of Soul", + "item.decisland.ghost_wooden_staff_spawn_egg": "Spawn Ghost Wooden Staff", + "item.decisland.ghost_wooden_sword_spawn_egg": "Spawn Ghost Wooden Sword", "item.decisland.giant_bat_wings": "Giant Bat Wings", "item.decisland.giant_ivy": "Giant Ivy", "item.decisland.gingerbread_man": "Gingerbread Man", + "item.decisland.gingerbread_man_by_totem_spawn_egg": "Spawn Gingerbread Man", "item.decisland.gingerbread_man_mask": "Gingerbread Man Mask", "item.decisland.gingerbread_sword": "Gingerbread Sword", "item.decisland.gingerbread_totem": "Gingerbread Totem", @@ -818,6 +885,9 @@ "item.decisland.glass_pickaxe": "Glass Pickaxe", "item.decisland.glass_tank": "Glass Tank", "item.decisland.goblin_mask": "Goblin Mask", + "item.decisland.goblin_sniper_spawn_egg": "Spawn Goblin Sniper", + "item.decisland.goblin_spawn_egg": "Spawn Goblin", + "item.decisland.goblin_wizard_spawn_egg": "Spawn Goblin Wizard", "item.decisland.god_of_destroy": "God Of Destroy", "item.decisland.god_of_sun": "God Of Sun", "item.decisland.gold_dart": "Gold Dart", @@ -852,23 +922,34 @@ "item.decisland.high_concentration_uranium": "High Concentration Uranium", "item.decisland.hook_rope": "Hook Rope", "item.decisland.host_of_deep_mask": "Host Of Deep Mask", + "item.decisland.host_of_deep_spawn_egg": "Spawn Host Of Deep", "item.decisland.houttuynia": "Houttuynia", "item.decisland.houttuynia_seeds": "Houttuynia Seeds", "item.decisland.hunter_book": "Book of Hunter", "item.decisland.hunter_bullet_bag": "Hunter Bullet Bag", "item.decisland.husk_mask": "Huck Mask", + "item.decisland.ice_bat_spawn_egg": "Spawn Ice Bat", "item.decisland.ice_blaze_mask": "Ice Blaze Mask", + "item.decisland.ice_blaze_spawn_egg": "Spawn Ice Blaze", "item.decisland.ice_brick": "Ice Brick", "item.decisland.ice_cream": "Ice Cream", + "item.decisland.ice_creeper_spawn_egg": "Spawn Ice Creeper", "item.decisland.ice_heart": "Heart Of Ice", "item.decisland.ice_hook_rope": "Ice Hook Rope", "item.decisland.ice_ingot": "Ice Ingot", + "item.decisland.ice_monster_spawn_egg": "Spawn Ice Monster", "item.decisland.ice_nugget": "Ice Nugget", "item.decisland.ice_rod": "Ice Rod", + "item.decisland.ice_spirit_spawn_egg": "Spawn Ice Spirit", "item.decisland.ice_sword": "Ice Sword", + "item.decisland.ice_thorn_spawn_egg": "Spawn Ice Thorn", + "item.decisland.ice_wizard_spawn_egg": "Spawn Ice Wizard", "item.decisland.ice_zombie_mask": "Ice Zombie Mask", + "item.decisland.ice_zombie_spawn_egg": "Spawn Ice Zombie", "item.decisland.illager_mask": "Illager Mask", "item.decisland.illager_sword": "Illager Sword", + "item.decisland.illusion_zombie_spawn_egg": "Spawn Illusion Zombie", + "item.decisland.illusioner_spawn_egg": "Spawn Illusioner", "item.decisland.infinite_crystal_nucleus_1": "Infinite Crystal Nucleus I", "item.decisland.infinite_crystal_nucleus_2": "Infinite Crystal Nucleus II", "item.decisland.infinite_crystal_nucleus_3": "Infinite Crystal Nucleus III", @@ -890,6 +971,8 @@ "item.decisland.jiuzhi_jacket": "Jiuzhi Jacket", "item.decisland.jiuzhi_pants": "Jiuzhi Pants", "item.decisland.jiuzhi_shoes": "Jiuzhi Shoes", + "item.decisland.jungle_spider_spawn_egg": "Spawn Jungle Spider", + "item.decisland.king_of_pillager_spawn_egg": "Spawn King Of Pillager", "item.decisland.knight_helmet": "Helmet Of Knight", "item.decisland.lamp_flower": "Lamp Flower", "item.decisland.lamprey": "Lamprey", @@ -910,6 +993,7 @@ "item.decisland.lava_helmet": "Lava Helmet", "item.decisland.lava_ingot": "Lava Ingot", "item.decisland.lava_leggings": "Lava Leggings", + "item.decisland.lava_lizard_spawn_egg": "Spawn Lava Lizard", "item.decisland.lava_nugget": "Lava Nugget", "item.decisland.lava_sword": "Lava Sword", "item.decisland.leaves_dagger": "Leaves Dagger", @@ -924,12 +1008,17 @@ "item.decisland.lester_shoes": "Lester Shoes", "item.decisland.levitation_cloud": "Levitation Cloud", "item.decisland.levitation_dirt_wall": "Levitation Dirt Wall", + "item.decisland.life_insect_spawn_egg": "Spawn Life Insect", "item.decisland.lightning_stone": "Lightning Stone", + "item.decisland.little_bat_spawn_egg": "Spawn Little Bat", + "item.decisland.little_soul_spawn_egg": "Spawn Little Soul", "item.decisland.lollipop": "Lollipop", "item.decisland.long_bread": "Long Bread", "item.decisland.lurk_bud": "Lurk Bud", "item.decisland.lurk_fruit": "Lurk Fruit", "item.decisland.lurk_orchid": "Lurk Orchid", + "item.decisland.lurk_skeleton_spawn_egg": "Spawn Lurk Skeleton", + "item.decisland.lurk_zombie_spawn_egg": "Spawn Lurk Zombie", "item.decisland.magic_article": "Magic Article", "item.decisland.magic_chest_debris": "Magic Chest Debris", "item.decisland.magic_crystal": "Magic Crystal", @@ -952,20 +1041,33 @@ "item.decisland.muddy_fish": "Muddy Fish", "item.decisland.mummy_mask": "Mummy Mask", "item.decisland.mummy_skeleton_mask": "Mummy Skeleton Mask", + "item.decisland.mummy_skeleton_spawn_egg": "Spawn Mummy Skeleton", + "item.decisland.mummy_spawn_egg": "Spawn Mummy", + "item.decisland.murloc_spawn_egg": "Spawn Murloc", + "item.decisland.murloc_wizard_spawn_egg": "Spawn Murloc Wizard", "item.decisland.mushroom_mask": "Mushroom Mask", + "item.decisland.mushroom_monster_spawn_egg": "Spawn Mushroom Monster", + "item.decisland.mushroom_zombie_spawn_egg": "Spawn Mushroom Zombie", "item.decisland.mysterious_key": "Mysterious Key", "item.decisland.mysterious_key_debris": "Mysterious Key Debris", "item.decisland.mystical_skeleton_mask": "Mystical Skeleton Mask", + "item.decisland.mystical_skeleton_spawn_egg": "Spawn Mystical Skeleton", "item.decisland.natural_ring": "Natural Ring", "item.decisland.natural_spear": "Natural Spear", "item.decisland.nature_essence": "Nature Essence", "item.decisland.nautilus_alive": "Nautilus Alive", + "item.decisland.nautilus_spawn_egg": "Spawn Nautilus", "item.decisland.nether_creeper_mask": "Nether Creeper Mask", + "item.decisland.nether_creeper_spawn_egg": "Spawn Nether Creeper", "item.decisland.nether_dandelion": "Nether Dandelion", "item.decisland.nether_golem_mask": "Nether Golem Mask", + "item.decisland.nether_golem_spawn_egg": "Spawn Nether Golem", "item.decisland.nether_phantom_mask": "Nether Phantom Mask", + "item.decisland.nether_phantom_spawn_egg": "Spawn Nether Phantom", "item.decisland.nether_skeleton_mask": "Nether Skeleton Mask", + "item.decisland.nether_skeleton_spawn_egg": "Spawn Nether Skeleton", "item.decisland.nether_skeleton_wizard_mask": "Nether Skeleton Wizard Mask", + "item.decisland.nether_skeleton_wizard_spawn_egg": "Spawn Nether Skeleton Wizard", "item.decisland.nether_stick_flower": "Nether Stick Flower", "item.decisland.netherite_dagger": "Netherite Dagger", "item.decisland.netherite_dart": "Netherite Dart", @@ -973,6 +1075,7 @@ "item.decisland.night_sword": "The Night", "item.decisland.nightmare": "Nightmare", "item.decisland.obsidian_golem_mask": "Obsdian Golem Mask", + "item.decisland.obsidian_golem_spawn_egg": "Spawn Obsidian Golem", "item.decisland.ocean_totem": "Ocean Totem", "item.decisland.old_book": "Ancient Book", "item.decisland.old_monster_mask": "Old Monster Mask", @@ -985,32 +1088,43 @@ "item.decisland.piglin_chestplate": "Piglin Chestplate", "item.decisland.piglin_leggings": "Piglin Leggings", "item.decisland.pigzombie_mask": "Pigzombie Mask", + "item.decisland.pillager_by_boss_spawn_egg": "Spawn Pillager", "item.decisland.pine_cone": "Pine Cone", "item.decisland.pink_dandelion": "Pink Dandelion", "item.decisland.pink_fan_flower": "Pink Fan Flower", "item.decisland.pink_jellyfish": "Pink Jellyfish", "item.decisland.pirate_bullet_bag": "Pirate Bullet Bag", + "item.decisland.pirate_spawn_egg": "Spawn Pirate", "item.decisland.player_ghost_mask": "Player Ghost Mask", + "item.decisland.player_ghost_spawn_egg": "Spawn Player Ghost", "item.decisland.poison_bag": "Poison Bag", "item.decisland.poison_dart": "Poison Dart", "item.decisland.poison_fish": "Poison Fish", "item.decisland.poison_gland": "Poison Gland", "item.decisland.polar_wolf_mask": "Polar Wolf Mask", + "item.decisland.polar_wolf_spawn_egg": "Spawn Polar Wolf", "item.decisland.polarbear_mask": "Polarbear Mask", "item.decisland.pollution_algae": "Pollutional Algae", "item.decisland.potato_rice": "Potato Rice", "item.decisland.predators_mask": "Predators Mask", + "item.decisland.predators_spawn_egg": "Spawn Predators", "item.decisland.prehistoric_monster_mask": "Prehistoric Monster Mask", "item.decisland.pufferfish_mask": "Pufferfish Mask", "item.decisland.pulse_stone": "Pulse Stone", "item.decisland.pumpkin_candy": "Pumpkin Candy", + "item.decisland.pumpkin_slime_spawn_egg": "Spawn Pumpkin Slime", "item.decisland.pure_ingot": "Pure Ingot", "item.decisland.radiate_creeper_mask": "Radiate Creeper Mask", + "item.decisland.radiate_creeper_spawn_egg": "Spawn Radiate Creeper", "item.decisland.radiate_crystal": "Radiate Crystal", "item.decisland.radiate_enderman_mask": "Radiate Enderman Mask", + "item.decisland.radiate_enderman_spawn_egg": "Spawn Radiate Enderman", + "item.decisland.radiate_skeleton_spawn_egg": "Spawn Radiate Skeleton", + "item.decisland.radiate_spider_spawn_egg": "Spawn Radiate Spider", "item.decisland.radiate_spreader": "Radiate Spreader", "item.decisland.radiate_sword": "Radiate Sword", "item.decisland.rapier": "Rapier", + "item.decisland.real_soul_spawn_egg": "Spawn Real Soul", "item.decisland.red_bag": "Red Bag", "item.decisland.red_gem": "Red Gem", "item.decisland.red_gem_debris": "Red Gem Debris", @@ -1025,23 +1139,37 @@ "item.decisland.rosemary": "Rosemary", "item.decisland.rough_steel": "Rough Steel", "item.decisland.rumorer_mask": "Rumorer Mask", + "item.decisland.rumorer_spawn_egg": "Spawn Rumorer", "item.decisland.rupert_boots": "Rupert Boots", "item.decisland.rupert_chestplate": "Rupert Chestplate", "item.decisland.rupert_helmet": "Rupert Helmet", "item.decisland.rupert_leggings": "Rupert Leggings", "item.decisland.russet_grass": "Russet Grass", "item.decisland.sardine": "Sardine", + "item.decisland.sardine_spawn_egg": "Spawn Sardine", + "item.decisland.saucer_spawn_egg": "Spawn Saucer", "item.decisland.scale_sword": "Scale Sword", "item.decisland.scarecrow": "Scarecrow", "item.decisland.scimitar": "Scimitar", "item.decisland.sea_turtle_mask": "Sea Turtle Mask", "item.decisland.sea_urchin": "Sea Urchin", + "item.decisland.sea_urchin_spawn_egg": "Spawn Sea Urchin", + "item.decisland.shadow_archer_spawn_egg": "Spawn Shadow Archer", "item.decisland.shadow_creeper_mask": "Shadow Creeper Mask", + "item.decisland.shadow_creeper_spawn_egg": "Spawn Shadow Creeper", "item.decisland.shadow_crystal": "Shadow Crystal", "item.decisland.shadow_feather": "Shadow Feather", + "item.decisland.shadow_of_deep_spawn_egg": "Spawn Shadow Of Deep", "item.decisland.shadow_of_sea_mask": "Shadow Of Sea Mask", + "item.decisland.shadow_of_sea_spawn_egg": "Spawn Shadow Of Sea", "item.decisland.shadow_skeleton_mask": "Shadow Skeleton Mask", + "item.decisland.shadow_skeleton_puppet_spawn_egg": "Spawn Shadow Skeleton Puppet", + "item.decisland.shadow_skeleton_spawn_egg": "Spawn Shadow Skeleton", + "item.decisland.shadow_soul_1_spawn_egg": "Spawn Shadow Soul", + "item.decisland.shadow_soul_2_spawn_egg": "Spawn Shadow Soul", "item.decisland.shadow_zombie_mask": "Shadow Zombie Mask", + "item.decisland.shadow_zombie_puppet_spawn_egg": "Spawn Shadow Zombie Puppet", + "item.decisland.shadow_zombie_spawn_egg": "Spawn Shadow Zombie", "item.decisland.sharp_coral": "Sharp Coral", "item.decisland.shell": "Shell", "item.decisland.short_flintlock": "Short Flintlock", @@ -1049,10 +1177,16 @@ "item.decisland.shulker_mask": "Shulker Mask", "item.decisland.simple_car": "Simple Car", "item.decisland.simple_glider": "Simple Glider", + "item.decisland.simple_glider_spawn_egg": "Spawn Simple Glider", "item.decisland.skeleton_assassin_mask": "Skeleton Assassin Mask", + "item.decisland.skeleton_assassin_spawn_egg": "Spawn Skeleton Assassin", "item.decisland.skeleton_fish": "Skeleton Fish", + "item.decisland.skeleton_knight_commander_spawn_egg": "Spawn Skeleton Knight Commander", "item.decisland.skeleton_knight_mask": "Skeleton Knight Mask", + "item.decisland.skeleton_knight_spawn_egg": "Spawn Skeleton Knight", "item.decisland.skeleton_mask": "Skeleton Mask", + "item.decisland.skeleton_warrior_spawn_egg": "Spawn Skeleton Warrior", + "item.decisland.skeleton_wizard_spawn_egg": "Spawn Skeleton Wizard", "item.decisland.slime_axe": "Slime Axe", "item.decisland.slime_mask": "Slime Mask", "item.decisland.slime_pickaxe": "Slime Pickaxe", @@ -1064,15 +1198,24 @@ "item.decisland.snow_flower": "Snow Flower", "item.decisland.snow_lotus": "Snow Lotus", "item.decisland.snowball_magic_book": "Snowball Magic Book", + "item.decisland.soldier_spawn_egg": "Spawn Soldier", + "item.decisland.son_of_chaos_spawn_egg": "Spawn Son Of Chaos", + "item.decisland.son_of_nature_spawn_egg": "Spawn Son Of Nature", "item.decisland.soul": "Soul", "item.decisland.soul_blaze_mask": "Soul Blaze Mask", "item.decisland.soul_blaze_rod": "Soul Blaze Rod", + "item.decisland.soul_blaze_spawn_egg": "Spawn Soul Blaze", "item.decisland.soul_fireball": "Soul Fireball", + "item.decisland.soul_insect_spawn_egg": "Spawn Soul Insect", "item.decisland.soul_key": "Soul Key", "item.decisland.soul_skeleton_mask": "Soul Skeleton Mask", + "item.decisland.soul_skeleton_spawn_egg": "Spawn Soul Skeleton", + "item.decisland.soul_soldier_spawn_egg": "Spawn Soul Soldier", + "item.decisland.soul_spawn_egg": "Spawn Soul", "item.decisland.soul_staff": "The Breath Of Soul", "item.decisland.soul_wake_bullet_render": "Soul Wake Bullet Render", "item.decisland.soul_zombie_mask": "Soul Zombie Mask", + "item.decisland.soul_zombie_spawn_egg": "Spawn Soul Zombie", "item.decisland.soybean": "Soybean", "item.decisland.spark_flower": "Spark Flower", "item.decisland.spell_flower": "Spell Flower", @@ -1084,6 +1227,7 @@ "item.decisland.star_debris": "Star Debris", "item.decisland.star_flintlock": "Star Flintlock", "item.decisland.star_flower": "Star Flower", + "item.decisland.star_spawn_egg": "Spawn Star", "item.decisland.star_sword": "The Bursting Star", "item.decisland.steel_battleaxe": "Steel Battleaxe", "item.decisland.steel_boots": "Steel Boots", @@ -1103,6 +1247,7 @@ "item.decisland.stone_chestplate": "Stone Chestplate", "item.decisland.stone_dagger": "Stone Dagger", "item.decisland.stone_dart": "Stone Dart", + "item.decisland.stone_golem_spawn_egg": "Spawn Stone Golem", "item.decisland.stone_helmet": "Stone Helmet", "item.decisland.stone_leggings": "Stone Leggings", "item.decisland.stones_bag": "Stones Bag", @@ -1121,7 +1266,9 @@ "item.decisland.striped_pants": "Striped Pants", "item.decisland.sun_stone": "Sun Stone", "item.decisland.swamp_drowned_mask": "Swamp Drowned Mask", + "item.decisland.swamp_drowned_spawn_egg": "Spawn Swamp Drowned", "item.decisland.swamp_golem_mask": "Swamp Golem Mask", + "item.decisland.swamp_golem_spawn_egg": "Spawn Swamp Golem", "item.decisland.sword_fish": "Sword Fish", "item.decisland.sword_of_deep": "Black Domain", "item.decisland.sword_of_guard": "The Spirit Of Guard", @@ -1135,6 +1282,8 @@ "item.decisland.thyme": "Thyme", "item.decisland.time_compass": "Time Compass", "item.decisland.tnt_creeper_mask": "Tnt Creeper Mask", + "item.decisland.tnt_creeper_spawn_egg": "Spawn TNT Creeper", + "item.decisland.tnt_snow_man_spawn_egg": "Spawn TNT Snow Man", "item.decisland.tofu": "Tofu", "item.decisland.tropical_fish": "Tropical Fish", "item.decisland.tropical_fish_cooked": "Cooked Tropical Fish", @@ -1147,18 +1296,25 @@ "item.decisland.unknow_book": "Unknow Book", "item.decisland.uranium": "Uranium", "item.decisland.uranium_apple": "Uranium Apple", + "item.decisland.vampire_bat_by_boss_spawn_egg": "Spawn Vampire Bat", + "item.decisland.vampire_bat_spawn_egg": "Spawn Vampire Bat", "item.decisland.vengeful_ghost_mask": "Vengeful Ghost Mask", + "item.decisland.vengeful_ghost_spawn_egg": "Spawn Vengeful Ghost", "item.decisland.vex_mask": "Vex Mask", "item.decisland.village_guardian": "Village Guardian", "item.decisland.villager_mask": "Villager Mask", + "item.decisland.vindicator_by_boss_spawn_egg": "Spawn Vindicator", "item.decisland.void_whispering_dagger": "The Void Whispering", "item.decisland.vortex": "Vortex", "item.decisland.wandering_trader_mask": "Wandering Trader Mask", "item.decisland.warden_sword": "Warden Sword", "item.decisland.warped_skeleton_mask": "Warped Skeleton Mask", + "item.decisland.warped_skeleton_spawn_egg": "Spawn Warped Skeleton", "item.decisland.waste": "Waste", + "item.decisland.watcher_spawn_egg": "Spawn Watcher", "item.decisland.wave_magic_book": "Wave Magic Book", "item.decisland.werewolf_mask": "Werewolf Mask", + "item.decisland.werewolf_spawn_egg": "Spawn Werewolf", "item.decisland.white_shoes": "White Shoes", "item.decisland.white_t_shirt": "White T Shirt", "item.decisland.wind_dagger": "Wind Dagger", @@ -1185,8 +1341,10 @@ "item.decisland.yellow_jellyfish": "Yellow Jellyfish", "item.decisland.zombie_brain": "Zombie Brain", "item.decisland.zombie_fish": "Zombie Fish", + "item.decisland.zombie_fish_spawn_egg": "Spawn Zombie Fish", "item.decisland.zombie_mask": "Zombie Mask", "item.decisland.zombie_summoner_mask": "Zombie Summoner Mask", + "item.decisland.zombie_summoner_spawn_egg": "Spawn Zombie Summoner", "item.decisland.zombie_villager_mask": "Zombie Villager Mask", "item.decisland.zombie_warrior_mask": "Zombie Warrior Mask", "item.record_star.desc": "fish - 拥抱星辰", @@ -1317,7 +1475,9 @@ "item.spawn_egg.entity.dec:zombie_summoner.name": "Spawn Zombie Summoner", "item.spawn_egg.entity.dec:zombie_warrior.name": "Spawn Zombie Warrior", "itemGroup.decisland_accessories_tab": "DecIsland Accessories", + "itemGroup.decisland_blocks_tab": "DecIsland Blocks", "itemGroup.decisland_crops_tab": "DecIsland Crops", + "itemGroup.decisland_entities_tab": "DecIsland Entities", "itemGroup.decisland_foods_tab": "DecIsland Foods", "itemGroup.decisland_masks_tab": "DecIsland Masks", "itemGroup.decisland_materials_tab": "DecIsland Materials", diff --git a/src/generated/resources/assets/decisland/lang/zh_cn.json b/src/generated/resources/assets/decisland/lang/zh_cn.json index a1ceb38..00945cf 100644 --- a/src/generated/resources/assets/decisland/lang/zh_cn.json +++ b/src/generated/resources/assets/decisland/lang/zh_cn.json @@ -538,6 +538,8 @@ "item.decisland.a_piece_of_salmon": "生鱼片", "item.decisland.absolute_zero": "绝对零度", "item.decisland.abyssal_controller_mask": "深海牢笼面具", + "item.decisland.abyssal_controller_spawn_egg": "生成 深海牢笼", + "item.decisland.abyssal_shadow_spawn_egg": "生成深海之影", "item.decisland.agent_mask": "机器人面具", "item.decisland.alchemic_stone": "炼金石", "item.decisland.alex_mask": "艾利克斯面具", @@ -553,17 +555,27 @@ "item.decisland.amethyst_ray_staff": "紫水晶射线杖", "item.decisland.amethyst_sword": "紫水晶剑", "item.decisland.angel_purification": "净化使者", + "item.decisland.angry_chicken_spawn_egg": "生成愤怒小鸡", "item.decisland.apple_juice": "苹果汁", "item.decisland.apple_pie": "苹果派", "item.decisland.archer_bullet_bag": "射手子弹袋", "item.decisland.archer_hat": "射手帽", + "item.decisland.archer_spawn_egg": "生成 弓箭手", "item.decisland.archer_stones_bag": "射手石子袋", "item.decisland.arctic_fox_mask": "雪狐面具", "item.decisland.ash_blaze_mask": "灰烬烈焰人面具", + "item.decisland.ash_blaze_spawn_egg": "生成 灰烬烈焰人", + "item.decisland.ash_bomb_spawn_egg": "生成灰烬炸弹", + "item.decisland.ash_horse_head_spawn_egg": "生成灰烬马的头", "item.decisland.ash_key": "灰烬钥匙", + "item.decisland.ash_knight_head_spawn_egg": "生成灰烬之首", "item.decisland.ash_knight_mask": "灰烬骑士面具", + "item.decisland.ash_knight_spawn_egg": "生成 灰烬骑士", "item.decisland.ash_pufferfish": "红肿灰烬豚", "item.decisland.ash_pufferfish_mask": "灰烬河豚面具", + "item.decisland.ash_pufferfish_spawn_egg": "生成 灰烬豚", + "item.decisland.ash_sword_phantom_spawn_egg": "生成灰烬剑影", + "item.decisland.ash_sword_spawn_egg": "生成灰烬之刃", "item.decisland.autumn_leaves": "秋叶", "item.decisland.axolotl_blue_mask": "蓝色美西螈面具", "item.decisland.axolotl_cyan_mask": "青色美西螈面具", @@ -571,10 +583,12 @@ "item.decisland.axolotl_lucy_mask": "粉红色美西螈面具", "item.decisland.axolotl_wild_mask": "棕色面具", "item.decisland.baby_blue_eyes_flower": "喜林草", + "item.decisland.baby_ender_dragon_spawn_egg": "生成 末影幼龙", "item.decisland.balloon_flower": "桔梗花", "item.decisland.bamboo_katana": "竹太刀", "item.decisland.bamboo_yataghan": "竹长剑", "item.decisland.bat_bait": "蝙蝠诱饵", + "item.decisland.bat_charger_spawn_egg": "生成蝙蝠冲锋者", "item.decisland.bat_mask": "蝙蝠面具", "item.decisland.bat_staff": "蝙蝠杖", "item.decisland.bat_wing": "残缺蝙蝠翅", @@ -584,6 +598,7 @@ "item.decisland.black_courtesy": "黑礼帽", "item.decisland.black_shoes": "黑鞋子", "item.decisland.black_shorts": "黑短裤", + "item.decisland.blackstone_thorn_spawn_egg": "生成黑石刺", "item.decisland.blaze_mask": "烈焰人面具", "item.decisland.blaze_staff": "烈焰法杖", "item.decisland.blizzard_staff": "暴风雪法杖", @@ -593,6 +608,7 @@ "item.decisland.blood_meat": "血腥肉块", "item.decisland.blood_sickle": "血色镰刀", "item.decisland.blood_worm": "血蠕虫", + "item.decisland.blood_zombie_spawn_egg": "生成 血肉之躯", "item.decisland.blue_cat_ears": "蓝色猫耳", "item.decisland.blue_gem": "蓝宝石", "item.decisland.blue_gem_debris": "蓝宝石碎片", @@ -601,6 +617,7 @@ "item.decisland.blue_of_the_sea": "海之忧伤", "item.decisland.bomber": "轰炸者", "item.decisland.bomber_bullet": "轰炸弹", + "item.decisland.bomber_spawn_egg": "生成 轰炸者", "item.decisland.bone_sword": "骨刃", "item.decisland.book_of_deep": "深渊之书", "item.decisland.boomber_mask": "轰炸者面具", @@ -608,6 +625,7 @@ "item.decisland.brain_rice": "脑花拌饭", "item.decisland.breeze_flower": "微风之歌", "item.decisland.brown_bear_mask": "棕熊面具", + "item.decisland.brown_bear_spawn_egg": "生成 棕熊", "item.decisland.brown_mooshroom_mask": "棕色蘑菇牛面具", "item.decisland.bullet_bag": "子弹袋", "item.decisland.butter_flower": "黄油郁金香", @@ -616,10 +634,13 @@ "item.decisland.camouflage_pants": "迷彩裤", "item.decisland.candy": "糖果", "item.decisland.candy_cane": "拐棍糖", + "item.decisland.carnager_spawn_egg": "生成 屠杀者", "item.decisland.catapult": "弹弓", "item.decisland.cave_spider_mask": "洞穴蜘蛛面具", "item.decisland.challenge_of_ash": "灰烬挑战书", "item.decisland.chaos_staff": "混沌召唤杖", + "item.decisland.chest_monster_spawn_egg": "生成 箱子怪", + "item.decisland.chester_spawn_egg": "生成 储存者", "item.decisland.chicken_mask": "小鸡面具", "item.decisland.chicken_staff": "小鸡法杖", "item.decisland.chocolate_cookie": "巧克力曲奇", @@ -627,6 +648,7 @@ "item.decisland.christmas_cap": "圣诞帽", "item.decisland.christmas_gift": "圣诞礼物", "item.decisland.christmas_sock": "圣诞袜", + "item.decisland.clam_spawn_egg": "生成 蛤", "item.decisland.cloud_flower": "坠云", "item.decisland.coal_fish": "煤炭鱼", "item.decisland.coal_nugget": "煤炭粒", @@ -649,8 +671,10 @@ "item.decisland.cow_mask": "牛面具", "item.decisland.crab_leg": "螃蟹腿", "item.decisland.crab_leg_cooked": "烤熟的螃蟹腿", + "item.decisland.crab_spawn_egg": "生成 螃蟹", "item.decisland.creeper_mask": "苦力怕面具", "item.decisland.crimson_slime_mask": "猩红史莱姆面具", + "item.decisland.crimson_slime_spawn_egg": "生成 绯红史莱姆", "item.decisland.crinum": "海百合", "item.decisland.crying_boots": "曜泣之靴", "item.decisland.crying_chestplate": "曜泣胸甲", @@ -663,8 +687,10 @@ "item.decisland.dark_debris": "暗夜碎片", "item.decisland.dark_pearl": "暗黑珍珠", "item.decisland.dark_snow_man_mask": "暗黑雪人面具", + "item.decisland.dark_snow_man_spawn_egg": "生成 黑暗雪人", "item.decisland.dark_stone": "黑暗石", "item.decisland.dark_werewolf_mask": "暗狼人面具", + "item.decisland.dark_werewolf_spawn_egg": "生成 暗狼人", "item.decisland.dark_zombie_mask": "暗黑僵尸面具", "item.decisland.dead_wood_dagger": "枯蔓", "item.decisland.dead_wood_rapier": "枯木之握", @@ -688,6 +714,7 @@ "item.decisland.dirt_chestplate": "泥土胸甲", "item.decisland.dirt_helmet": "泥土头盔", "item.decisland.dirt_leggings": "泥土护腿", + "item.decisland.doctor_spawn_egg": "生成 医生", "item.decisland.dolphin_mask": "海豚面具", "item.decisland.dragon_fireball_by_player": "龙息弹", "item.decisland.drift_bottle": "漂流瓶", @@ -697,8 +724,12 @@ "item.decisland.dust_staff": "尘埃召唤杖", "item.decisland.echo_of_deep": "深渊回影", "item.decisland.elf_of_ash_mask": "灰烬精灵面具", + "item.decisland.elf_of_ash_spawn_egg": "生成 灰烬精灵", "item.decisland.elf_of_chaos_mask": "混乱精灵面具面具", + "item.decisland.elf_of_chaos_spawn_egg": "生成 混沌之灵", "item.decisland.elf_of_deep_mask": "深渊精灵面具", + "item.decisland.elf_of_deep_spawn_egg": "生成 深渊精灵", + "item.decisland.elf_of_dust_spawn_egg": "生成尘埃精灵", "item.decisland.elf_of_leaves_mask": "绿叶精灵面具", "item.decisland.emerald_apple": "绿宝石苹果", "item.decisland.emerald_apple_enchanted": "附魔绿宝石苹果", @@ -716,7 +747,14 @@ "item.decisland.emerald_staff": "绿宝石法杖", "item.decisland.emerald_sword": "绿宝石剑", "item.decisland.empty_totem": "空图腾", + "item.decisland.enchant_armor_by_boss_spawn_egg": "生成附魔盔甲", + "item.decisland.enchant_armor_spawn_egg": "生成 附魔盔甲", + "item.decisland.enchant_diamond_armor_spawn_egg": "生成 附魔钻石甲", + "item.decisland.enchant_illager_1_spawn_egg": "生成附魔师", + "item.decisland.enchant_illager_2_spawn_egg": "生成附魔师", + "item.decisland.enchant_illager_spawn_egg": "生成 附魔师", "item.decisland.end_stone_golem_mask": "末地石傀儡面具", + "item.decisland.end_stone_golem_spawn_egg": "生成 末地石傀儡", "item.decisland.ender_bone": "末影骨", "item.decisland.ender_breath": "末影之息", "item.decisland.ender_core": "末影核心", @@ -725,33 +763,44 @@ "item.decisland.ender_fish": "末影鱼", "item.decisland.ender_powder": "末影粉末", "item.decisland.ender_ring": "末影戒", + "item.decisland.ender_snail_spawn_egg": "生成 末影蜗牛", + "item.decisland.ender_snake_spawn_egg": "生成 末影蟒", "item.decisland.ender_stone": "末影石", "item.decisland.ender_substance": "潜影物质", "item.decisland.ender_witch_mask": "末影女巫面具", + "item.decisland.ender_witch_puppet_spawn_egg": "生成末影女巫分身", + "item.decisland.ender_witch_spawn_egg": "生成 末影女巫", "item.decisland.enderman_mask": "末影人面具", "item.decisland.energy_ray_staff": "能量射线杖", "item.decisland.energy_totem": "能量图腾", "item.decisland.enriched_uranium": "浓缩铀", "item.decisland.entity_soul": "实体灵魂", + "item.decisland.entity_soul_1_spawn_egg": "生成真实之魂", "item.decisland.entity_soul_mask": "实体灵魂面具", + "item.decisland.entity_soul_spawn_egg": "生成 真实之魂", "item.decisland.es_clothes": "ES上衣", "item.decisland.es_pants": "ES裤子", "item.decisland.es_shoes": "ES鞋子", + "item.decisland.escaped_soul_entity_spawn_egg": "生成逃逸之魂", "item.decisland.everlasting_winter_boots": "永冬靴", "item.decisland.everlasting_winter_chestplate": "永冬胸甲", "item.decisland.everlasting_winter_dagger": "永冬短剑", "item.decisland.everlasting_winter_dart": "永冬手里剑", "item.decisland.everlasting_winter_flintlock": "永冬枪", + "item.decisland.everlasting_winter_ghast_1_spawn_egg": "生成永冬恶魂", "item.decisland.everlasting_winter_ghast_mask": "永冬恶魂面具", + "item.decisland.everlasting_winter_ghast_spawn_egg": "生成 永冬恶魂", "item.decisland.everlasting_winter_heart": "永冬之心", "item.decisland.everlasting_winter_helmet": "永冬头盔", "item.decisland.everlasting_winter_ingot": "永冬锭", "item.decisland.everlasting_winter_leggings": "永冬护腿", + "item.decisland.everlasting_winter_shadow_spawn_egg": "生成永冬之影", "item.decisland.everlasting_winter_sickle": "永冬镰刀", "item.decisland.everlasting_winter_staff": "永冬法杖", "item.decisland.everlasting_winter_stick": "永冬棍", "item.decisland.everlasting_winter_sword": "永冬长剑", "item.decisland.evil_snow_man_mask": "邪恶雪人面具", + "item.decisland.evil_snow_man_spawn_egg": "生成 邪恶雪人", "item.decisland.experience_book": "经验书", "item.decisland.experience_book_empty": "空的经验书", "item.decisland.experience_book_pro_empty": "空的汲取之书", @@ -764,6 +813,7 @@ "item.decisland.final_crystal_nucleus": "终极晶核", "item.decisland.fire_heart": "烈火之心", "item.decisland.fire_ring": "烈焰戒", + "item.decisland.fire_storm_spawn_egg": "生成烈焰风暴", "item.decisland.fire_totem": "火焰图腾", "item.decisland.firefly_bottle": "萤火虫瓶", "item.decisland.flare_magic_book": "耀斑魔法书", @@ -778,6 +828,8 @@ "item.decisland.frank_mask": "弗兰克面具", "item.decisland.fried_egg": "煎蛋", "item.decisland.fried_melon_seed": "炒瓜子", + "item.decisland.friendly_little_soul_spawn_egg": "生成友好小幽灵", + "item.decisland.friendly_spider_spawn_egg": "生成友好蜘蛛", "item.decisland.fritillary": "贝母", "item.decisland.fritillary_seeds": "贝母种子", "item.decisland.frozen_ball": "冰霜魔法球", @@ -785,28 +837,43 @@ "item.decisland.frozen_chestplate": "霜冻甲", "item.decisland.frozen_dart": "霜冻手里剑", "item.decisland.frozen_fish": "冰霜鱼", + "item.decisland.frozen_ghast_spawn_egg": "生成 冰霜恶魂", + "item.decisland.frozen_heart_sleeping_spawn_egg": "生成睡着的冰冻之心", + "item.decisland.frozen_heart_spawn_egg": "生成 冰冻之心", "item.decisland.frozen_helmet": "霜冻头盔", "item.decisland.frozen_leggings": "霜冻护腿", + "item.decisland.frozen_man_spawn_egg": "生成 冰人", "item.decisland.frozen_mirror_flower": "冰镜花", "item.decisland.frozen_power": "冰霜能量", "item.decisland.frozen_power_debris": "冰霜能量碎片", "item.decisland.frozen_ray_staff": "冰能量射线杖", + "item.decisland.frozen_shadow_spawn_egg": "生成 寒霜之影", "item.decisland.frozen_spider_mask": "冰冻蜘蛛面具", + "item.decisland.frozen_spider_spawn_egg": "生成 冰冻蜘蛛", "item.decisland.frozen_staff": "冰法杖", "item.decisland.gargoyle_mask": "石像鬼面具", + "item.decisland.gargoyle_spawn_egg": "生成 石像鬼", "item.decisland.gas_bomb": "毒气弹", "item.decisland.ghast_mask": "恶魂面具", "item.decisland.ghost_dagger": "灵魂突击者", + "item.decisland.ghost_diamond_axe_spawn_egg": "生成 鬼魂钻石斧", + "item.decisland.ghost_diamond_staff_spawn_egg": "生成 鬼魂钻石法杖", + "item.decisland.ghost_diamond_sword_spawn_egg": "生成 鬼魂钻石剑", "item.decisland.ghost_dirt_wall": "鬼魂土墙", "item.decisland.ghost_essence": "幽魂精华", "item.decisland.ghost_flintlock": "幽魂猎杀者", "item.decisland.ghost_ingot": "幽魂锭", + "item.decisland.ghost_iron_axe_spawn_egg": "生成 鬼魂铁斧", + "item.decisland.ghost_iron_sword_spawn_egg": "生成 鬼魂铁剑", "item.decisland.ghost_sickle": "灵魂收割者", "item.decisland.ghost_summoner": "唤魂者", "item.decisland.ghost_sword": "灵魂吸收者", + "item.decisland.ghost_wooden_staff_spawn_egg": "生成 鬼魂木法杖", + "item.decisland.ghost_wooden_sword_spawn_egg": "生成鬼魂木剑", "item.decisland.giant_bat_wings": "巨型蝙蝠翅", "item.decisland.giant_ivy": "巨藤", "item.decisland.gingerbread_man": "姜饼人", + "item.decisland.gingerbread_man_by_totem_spawn_egg": "生成姜饼人", "item.decisland.gingerbread_man_mask": "姜饼人面具", "item.decisland.gingerbread_sword": "姜饼剑", "item.decisland.gingerbread_totem": "姜饼图腾", @@ -818,6 +885,9 @@ "item.decisland.glass_pickaxe": "玻璃镐", "item.decisland.glass_tank": "玻璃缸", "item.decisland.goblin_mask": "哥布林面具", + "item.decisland.goblin_sniper_spawn_egg": "生成 哥布林狙击手", + "item.decisland.goblin_spawn_egg": "生成 哥布林", + "item.decisland.goblin_wizard_spawn_egg": "生成 哥布林法师", "item.decisland.god_of_destroy": "破坏之神", "item.decisland.god_of_sun": "太阳神", "item.decisland.gold_dart": "金手里剑", @@ -852,23 +922,34 @@ "item.decisland.high_concentration_uranium": "高纯度铀", "item.decisland.hook_rope": "钩锁", "item.decisland.host_of_deep_mask": "深渊之主面具", + "item.decisland.host_of_deep_spawn_egg": "生成 深渊之主", "item.decisland.houttuynia": "折耳根", "item.decisland.houttuynia_seeds": "折耳根种子", "item.decisland.hunter_book": "猎人之书", "item.decisland.hunter_bullet_bag": "猎人子弹袋", "item.decisland.husk_mask": "剥皮者面具", + "item.decisland.ice_bat_spawn_egg": "生成 冰冻蝙蝠", "item.decisland.ice_blaze_mask": "寒霜人面具", + "item.decisland.ice_blaze_spawn_egg": "生成 寒霜人", "item.decisland.ice_brick": "冰砖", "item.decisland.ice_cream": "冰淇淋", + "item.decisland.ice_creeper_spawn_egg": "生成 冰冻苦力怕", "item.decisland.ice_heart": "冰冻之心", "item.decisland.ice_hook_rope": "极寒钩锁", "item.decisland.ice_ingot": "冰锭", + "item.decisland.ice_monster_spawn_egg": "生成 冰雪怪", "item.decisland.ice_nugget": "冰粒", "item.decisland.ice_rod": "寒霜棍", + "item.decisland.ice_spirit_spawn_egg": "生成 冰魂", "item.decisland.ice_sword": "冰棱", + "item.decisland.ice_thorn_spawn_egg": "生成冰刺", + "item.decisland.ice_wizard_spawn_egg": "生成 寒潮法师", "item.decisland.ice_zombie_mask": "寒冰僵尸面具", + "item.decisland.ice_zombie_spawn_egg": "生成 寒冰僵尸", "item.decisland.illager_mask": "刌民面具", "item.decisland.illager_sword": "绝望长剑", + "item.decisland.illusion_zombie_spawn_egg": "生成 幻影僵尸", + "item.decisland.illusioner_spawn_egg": "生成 幻术师", "item.decisland.infinite_crystal_nucleus_1": "无限晶核I", "item.decisland.infinite_crystal_nucleus_2": "无限晶核II", "item.decisland.infinite_crystal_nucleus_3": "无限晶核III", @@ -890,6 +971,8 @@ "item.decisland.jiuzhi_jacket": "玖治夹克", "item.decisland.jiuzhi_pants": "玖治裤子", "item.decisland.jiuzhi_shoes": "玖治鞋", + "item.decisland.jungle_spider_spawn_egg": "生成 丛林蜘蛛", + "item.decisland.king_of_pillager_spawn_egg": "生成 掠夺者之王", "item.decisland.knight_helmet": "骑士头盔", "item.decisland.lamp_flower": "灯笼花", "item.decisland.lamprey": "七鳃鳗", @@ -910,6 +993,7 @@ "item.decisland.lava_helmet": "狱岩头盔", "item.decisland.lava_ingot": "岩浆锭", "item.decisland.lava_leggings": "狱岩护腿", + "item.decisland.lava_lizard_spawn_egg": "生成 熔岩蜥蜴", "item.decisland.lava_nugget": "炙热粒", "item.decisland.lava_sword": "岩浆之剑", "item.decisland.leaves_dagger": "绿叶短刀", @@ -924,12 +1008,17 @@ "item.decisland.lester_shoes": "里斯特鞋", "item.decisland.levitation_cloud": "悬浮云", "item.decisland.levitation_dirt_wall": "飘浮土墙", + "item.decisland.life_insect_spawn_egg": "生成 生命虫", "item.decisland.lightning_stone": "雷电石", + "item.decisland.little_bat_spawn_egg": "生成小蝙蝠", + "item.decisland.little_soul_spawn_egg": "生成小幽灵", "item.decisland.lollipop": "棒棒糖", "item.decisland.long_bread": "长面包", "item.decisland.lurk_bud": "潜声芽", "item.decisland.lurk_fruit": "潜声果", "item.decisland.lurk_orchid": "潜声兰", + "item.decisland.lurk_skeleton_spawn_egg": "生成 潜声骷髅", + "item.decisland.lurk_zombie_spawn_egg": "生成 潜声僵尸", "item.decisland.magic_article": "魔法充能条", "item.decisland.magic_chest_debris": "魔法箱子碎片", "item.decisland.magic_crystal": "魔法水晶", @@ -952,20 +1041,33 @@ "item.decisland.muddy_fish": "泥鱼", "item.decisland.mummy_mask": "木乃伊面具", "item.decisland.mummy_skeleton_mask": "干尸面具", + "item.decisland.mummy_skeleton_spawn_egg": "生成 干尸", + "item.decisland.mummy_spawn_egg": "生成 木乃伊", + "item.decisland.murloc_spawn_egg": "生成 鱼人", + "item.decisland.murloc_wizard_spawn_egg": "生成 鱼人法师", "item.decisland.mushroom_mask": "蘑菇面具", + "item.decisland.mushroom_monster_spawn_egg": "生成 蘑菇怪", + "item.decisland.mushroom_zombie_spawn_egg": "生成 真菌僵尸", "item.decisland.mysterious_key": "神秘钥匙", "item.decisland.mysterious_key_debris": "神秘钥匙碎片", "item.decisland.mystical_skeleton_mask": "神秘骷髅面具", + "item.decisland.mystical_skeleton_spawn_egg": "生成 神秘骷髅", "item.decisland.natural_ring": "自然戒", "item.decisland.natural_spear": "自然之矛", "item.decisland.nature_essence": "自然精华", "item.decisland.nautilus_alive": "活的鹦鹉螺", + "item.decisland.nautilus_spawn_egg": "生成 鹦鹉螺", "item.decisland.nether_creeper_mask": "地狱苦力怕面具", + "item.decisland.nether_creeper_spawn_egg": "生成 地狱苦力怕", "item.decisland.nether_dandelion": "地狱蒲公英", "item.decisland.nether_golem_mask": "地狱傀儡面具", + "item.decisland.nether_golem_spawn_egg": "生成 地狱傀儡", "item.decisland.nether_phantom_mask": "地狱幻翼面具", + "item.decisland.nether_phantom_spawn_egg": "生成 地狱幻翼", "item.decisland.nether_skeleton_mask": "地狱骷髅面具", + "item.decisland.nether_skeleton_spawn_egg": "生成 地狱骷髅", "item.decisland.nether_skeleton_wizard_mask": "地狱骷髅法师面具", + "item.decisland.nether_skeleton_wizard_spawn_egg": "生成 地狱骷髅法师", "item.decisland.nether_stick_flower": "矮棍花", "item.decisland.netherite_dagger": "下界合金短剑", "item.decisland.netherite_dart": "下界合金手里剑", @@ -973,6 +1075,7 @@ "item.decisland.night_sword": "夜之刃", "item.decisland.nightmare": "夜魔", "item.decisland.obsidian_golem_mask": "黑曜石傀儡面具", + "item.decisland.obsidian_golem_spawn_egg": "生成 黑曜石傀儡", "item.decisland.ocean_totem": "海洋图腾", "item.decisland.old_book": "古老的书", "item.decisland.old_monster_mask": "老怪物面具", @@ -985,32 +1088,43 @@ "item.decisland.piglin_chestplate": "猪灵护甲", "item.decisland.piglin_leggings": "猪灵护腿", "item.decisland.pigzombie_mask": "僵尸猪人面具", + "item.decisland.pillager_by_boss_spawn_egg": "生成掠夺者", "item.decisland.pine_cone": "松果", "item.decisland.pink_dandelion": "星云蒲公英", "item.decisland.pink_fan_flower": "粉扇花", "item.decisland.pink_jellyfish": "粉水母", "item.decisland.pirate_bullet_bag": "海盗子弹袋", + "item.decisland.pirate_spawn_egg": "生成 海盗", "item.decisland.player_ghost_mask": "鬼魂面具", + "item.decisland.player_ghost_spawn_egg": "生成 不屈的灵魂", "item.decisland.poison_bag": "毒囊", "item.decisland.poison_dart": "剧毒手里剑", "item.decisland.poison_fish": "剧毒鱼", "item.decisland.poison_gland": "剧毒腺体", "item.decisland.polar_wolf_mask": "北极狼面具", + "item.decisland.polar_wolf_spawn_egg": "生成 北极狼", "item.decisland.polarbear_mask": "北极熊面具", "item.decisland.pollution_algae": "污染海藻", "item.decisland.potato_rice": "土豆焖饭", "item.decisland.predators_mask": "扑食者面具", + "item.decisland.predators_spawn_egg": "生成 扑食者", "item.decisland.prehistoric_monster_mask": "远古怪物面具", "item.decisland.pufferfish_mask": "河豚面具", "item.decisland.pulse_stone": "脉冲石", "item.decisland.pumpkin_candy": "南瓜糖", + "item.decisland.pumpkin_slime_spawn_egg": "生成 南瓜头史莱姆", "item.decisland.pure_ingot": "纯洁之锭", "item.decisland.radiate_creeper_mask": "辐射苦力怕面具", + "item.decisland.radiate_creeper_spawn_egg": "生成 辐射苦力怕", "item.decisland.radiate_crystal": "辐射水晶", "item.decisland.radiate_enderman_mask": "辐射末影人面具", + "item.decisland.radiate_enderman_spawn_egg": "生成 辐射末影人", + "item.decisland.radiate_skeleton_spawn_egg": "生成 辐射骷髅", + "item.decisland.radiate_spider_spawn_egg": "生成 辐射蜘蛛", "item.decisland.radiate_spreader": "堕落之神", "item.decisland.radiate_sword": "堕落圣刃", "item.decisland.rapier": "刺剑", + "item.decisland.real_soul_spawn_egg": "生成 真魂", "item.decisland.red_bag": "红包", "item.decisland.red_gem": "红宝石", "item.decisland.red_gem_debris": "红宝石碎片", @@ -1025,23 +1139,37 @@ "item.decisland.rosemary": "迷迭香", "item.decisland.rough_steel": "粗制钢料", "item.decisland.rumorer_mask": "灵异面具", + "item.decisland.rumorer_spawn_egg": "生成 灵异闻者", "item.decisland.rupert_boots": "鲁伯特靴", "item.decisland.rupert_chestplate": "鲁伯特胸甲", "item.decisland.rupert_helmet": "鲁伯特头盔", "item.decisland.rupert_leggings": "鲁伯特护腿", "item.decisland.russet_grass": "赤褐草", "item.decisland.sardine": "沙丁鱼", + "item.decisland.sardine_spawn_egg": "生成 沙丁鱼", + "item.decisland.saucer_spawn_egg": "生成 飞碟", "item.decisland.scale_sword": "鳞之刃", "item.decisland.scarecrow": "稻草人", "item.decisland.scimitar": "弯刀", "item.decisland.sea_turtle_mask": "海龟面具", "item.decisland.sea_urchin": "海胆", + "item.decisland.sea_urchin_spawn_egg": "生成 海胆", + "item.decisland.shadow_archer_spawn_egg": "生成 暗影射手", "item.decisland.shadow_creeper_mask": "暗影苦力怕面具", + "item.decisland.shadow_creeper_spawn_egg": "生成 暗影苦力怕", "item.decisland.shadow_crystal": "暗影水晶", "item.decisland.shadow_feather": "暗影羽", + "item.decisland.shadow_of_deep_spawn_egg": "生成 深渊之影", "item.decisland.shadow_of_sea_mask": "幻翼海妖面具", + "item.decisland.shadow_of_sea_spawn_egg": "生成 幻影海妖", "item.decisland.shadow_skeleton_mask": "幻翼骷髅面具", + "item.decisland.shadow_skeleton_puppet_spawn_egg": "生成暗影骷髅分身", + "item.decisland.shadow_skeleton_spawn_egg": "生成 暗影骷髅", + "item.decisland.shadow_soul_1_spawn_egg": "生成暗影灵魂", + "item.decisland.shadow_soul_2_spawn_egg": "生成暗影灵魂", "item.decisland.shadow_zombie_mask": "幻翼僵尸面具", + "item.decisland.shadow_zombie_puppet_spawn_egg": "生成暗影僵尸分身", + "item.decisland.shadow_zombie_spawn_egg": "生成 暗影僵尸", "item.decisland.sharp_coral": "尖锐珊瑚", "item.decisland.shell": "贝壳", "item.decisland.short_flintlock": "短燧发枪", @@ -1049,10 +1177,16 @@ "item.decisland.shulker_mask": "潜影贝面具", "item.decisland.simple_car": "简单小车", "item.decisland.simple_glider": "简单滑翔机", + "item.decisland.simple_glider_spawn_egg": "生成简单滑翔机", "item.decisland.skeleton_assassin_mask": "骷髅刺客面具", + "item.decisland.skeleton_assassin_spawn_egg": "生成 骷髅刺客", "item.decisland.skeleton_fish": "骷髅鱼", + "item.decisland.skeleton_knight_commander_spawn_egg": "生成 骷髅骑士长", "item.decisland.skeleton_knight_mask": "骷髅骑士面具", + "item.decisland.skeleton_knight_spawn_egg": "生成 骷髅骑士", "item.decisland.skeleton_mask": "骷髅面具", + "item.decisland.skeleton_warrior_spawn_egg": "生成 骷髅战士", + "item.decisland.skeleton_wizard_spawn_egg": "生成 骷髅法师", "item.decisland.slime_axe": "史莱姆斧", "item.decisland.slime_mask": "史莱姆面具", "item.decisland.slime_pickaxe": "史莱姆镐", @@ -1064,15 +1198,23 @@ "item.decisland.snow_flower": "雪地圣女", "item.decisland.snow_lotus": "雪莲花", "item.decisland.snowball_magic_book": "冰冻能量书", + "item.decisland.soldier_spawn_egg": "生成 士兵", + "item.decisland.son_of_nature_spawn_egg": "生成自然之子", "item.decisland.soul": "灵魂", "item.decisland.soul_blaze_mask": "灵魂烈焰人面具", "item.decisland.soul_blaze_rod": "灵魂烈焰棒", + "item.decisland.soul_blaze_spawn_egg": "生成 灵魂烈焰人", "item.decisland.soul_fireball": "灵魂烈焰弹", + "item.decisland.soul_insect_spawn_egg": "生成 灵魂虫", "item.decisland.soul_key": "灵魂钥匙", "item.decisland.soul_skeleton_mask": "灵魂骷髅面具", + "item.decisland.soul_skeleton_spawn_egg": "生成 灵魂骷髅", + "item.decisland.soul_soldier_spawn_egg": "生成 灵魂士兵", + "item.decisland.soul_spawn_egg": "生成 灵魂", "item.decisland.soul_staff": "灵魂之息", "item.decisland.soul_wake_bullet_render": "灵魂尾迹渲染", "item.decisland.soul_zombie_mask": "灵魂僵尸面具", + "item.decisland.soul_zombie_spawn_egg": "生成 灵魂僵尸", "item.decisland.soybean": "大豆", "item.decisland.spark_flower": "庭院丁香", "item.decisland.spell_flower": "印法花", @@ -1084,6 +1226,7 @@ "item.decisland.star_debris": "星体碎片", "item.decisland.star_flintlock": "星落", "item.decisland.star_flower": "星星花", + "item.decisland.star_spawn_egg": "生成 星星", "item.decisland.star_sword": "迸发之星", "item.decisland.steel_battleaxe": "钢战斧", "item.decisland.steel_boots": "钢靴", @@ -1103,6 +1246,7 @@ "item.decisland.stone_chestplate": "石头胸甲", "item.decisland.stone_dagger": "石短剑", "item.decisland.stone_dart": "石手里剑", + "item.decisland.stone_golem_spawn_egg": "生成 石头傀儡", "item.decisland.stone_helmet": "石头头盔", "item.decisland.stone_leggings": "石头护腿", "item.decisland.stones_bag": "石子袋", @@ -1121,7 +1265,9 @@ "item.decisland.striped_pants": "条纹裤", "item.decisland.sun_stone": "日光石", "item.decisland.swamp_drowned_mask": "淤骸面具", + "item.decisland.swamp_drowned_spawn_egg": "生成 淤骸", "item.decisland.swamp_golem_mask": "沼泽巨怪面具", + "item.decisland.swamp_golem_spawn_egg": "生成 沼泽巨怪", "item.decisland.sword_fish": "剑鱼", "item.decisland.sword_of_deep": "黑域", "item.decisland.sword_of_guard": "侍卫之灵", @@ -1135,6 +1281,8 @@ "item.decisland.thyme": "百里香", "item.decisland.time_compass": "时间指针", "item.decisland.tnt_creeper_mask": "TNT苦力怕面具", + "item.decisland.tnt_creeper_spawn_egg": "生成 TNT苦力怕", + "item.decisland.tnt_snow_man_spawn_egg": "生成 TNT雪人", "item.decisland.tofu": "豆腐", "item.decisland.tropical_fish": "热带鱼", "item.decisland.tropical_fish_cooked": "烤熟的热带鱼", @@ -1147,18 +1295,25 @@ "item.decisland.unknow_book": "未知的书", "item.decisland.uranium": "铀", "item.decisland.uranium_apple": "铀苹果", + "item.decisland.vampire_bat_by_boss_spawn_egg": "生成吸血蝙蝠", + "item.decisland.vampire_bat_spawn_egg": "生成 吸血蝙蝠", "item.decisland.vengeful_ghost_mask": "怨魂面具", + "item.decisland.vengeful_ghost_spawn_egg": "生成 怨魂", "item.decisland.vex_mask": "恼鬼面具", "item.decisland.village_guardian": "村庄守卫", "item.decisland.villager_mask": "村民面具", + "item.decisland.vindicator_by_boss_spawn_egg": "生成卫道士", "item.decisland.void_whispering_dagger": "虚空之低语", "item.decisland.vortex": "旋涡", "item.decisland.wandering_trader_mask": "流浪商人面具", "item.decisland.warden_sword": "匿潜刃", "item.decisland.warped_skeleton_mask": "扭曲骷髅面具", + "item.decisland.warped_skeleton_spawn_egg": "生成 扭曲骷髅", "item.decisland.waste": "废料", + "item.decisland.watcher_spawn_egg": "生成 看守者", "item.decisland.wave_magic_book": "波涌魔法书", "item.decisland.werewolf_mask": "狼人面具", + "item.decisland.werewolf_spawn_egg": "生成 狼人", "item.decisland.white_shoes": "白鞋", "item.decisland.white_t_shirt": "白短袖", "item.decisland.wind_dagger": "冽风", @@ -1185,8 +1340,10 @@ "item.decisland.yellow_jellyfish": "黄水母", "item.decisland.zombie_brain": "僵尸大脑", "item.decisland.zombie_fish": "僵尸鱼", + "item.decisland.zombie_fish_spawn_egg": "生成 僵尸鱼", "item.decisland.zombie_mask": "僵尸面具", "item.decisland.zombie_summoner_mask": "僵尸召唤师面具", + "item.decisland.zombie_summoner_spawn_egg": "生成 僵尸召唤师", "item.decisland.zombie_villager_mask": "僵尸村民面具", "item.decisland.zombie_warrior_mask": "僵尸战士面具", "item.record_star.desc": "fish - 拥抱星辰", @@ -1317,7 +1474,9 @@ "item.spawn_egg.entity.dec:zombie_summoner.name": "生成 僵尸召唤师", "item.spawn_egg.entity.dec:zombie_warrior.name": "生成 僵尸战士", "itemGroup.decisland_accessories_tab": "DecIsland 饰品", + "itemGroup.decisland_blocks_tab": "DecIsland 方块", "itemGroup.decisland_crops_tab": "DecIsland 作物", + "itemGroup.decisland_entities_tab": "DecIsland 生物", "itemGroup.decisland_foods_tab": "DecIsland 食物", "itemGroup.decisland_masks_tab": "DecIsland 面具", "itemGroup.decisland_materials_tab": "DecIsland 材料", diff --git a/src/generated/resources/assets/decisland/models/block/abyssal_summoner.json b/src/generated/resources/assets/decisland/models/block/abyssal_summoner.json new file mode 100644 index 0000000..5f58089 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/abyssal_summoner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/abyssal_summoner" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/ash_cage.json b/src/generated/resources/assets/decisland/models/block/ash_cage.json new file mode 100644 index 0000000..51758ea --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/ash_cage.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/ash_cage" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/ash_summoner.json b/src/generated/resources/assets/decisland/models/block/ash_summoner.json new file mode 100644 index 0000000..fd9c064 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/ash_summoner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/ash_summoner" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/bat_summoner.json b/src/generated/resources/assets/decisland/models/block/bat_summoner.json new file mode 100644 index 0000000..e573d1a --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/bat_summoner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/bat_summoner" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/broken_dirt.json b/src/generated/resources/assets/decisland/models/block/broken_dirt.json new file mode 100644 index 0000000..493a264 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/broken_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/broken_dirt" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/cave_crate.json b/src/generated/resources/assets/decisland/models/block/cave_crate.json new file mode 100644 index 0000000..2bbbe87 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/cave_crate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/cave_crate_locked" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/christmas_gift_block.json b/src/generated/resources/assets/decisland/models/block/christmas_gift_block.json new file mode 100644 index 0000000..8681c8b --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/christmas_gift_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/christmas_gift_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/crate.json b/src/generated/resources/assets/decisland/models/block/crate.json new file mode 100644 index 0000000..84dda4f --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/crate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/crate_locked" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/deep_summoner.json b/src/generated/resources/assets/decisland/models/block/deep_summoner.json new file mode 100644 index 0000000..041d591 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/deep_summoner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/deep_summoner" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/dirt_ghost_block.json b/src/generated/resources/assets/decisland/models/block/dirt_ghost_block.json new file mode 100644 index 0000000..282621e --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/dirt_ghost_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/dirt_ghost_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/enchanted_summoner.json b/src/generated/resources/assets/decisland/models/block/enchanted_summoner.json new file mode 100644 index 0000000..469a6ed --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/enchanted_summoner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/enchanted_summoner_up", + "side": "decisland:block/enchanted_summoner_side", + "top": "decisland:block/enchanted_summoner_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/end_altar.json b/src/generated/resources/assets/decisland/models/block/end_altar.json new file mode 100644 index 0000000..a10e0eb --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/end_altar.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/end_altar_down", + "side": "decisland:block/end_altar_side", + "top": "decisland:block/end_altar_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/everlasting_winter_summoner.json b/src/generated/resources/assets/decisland/models/block/everlasting_winter_summoner.json new file mode 100644 index 0000000..85e0682 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/everlasting_winter_summoner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/everlasting_winter_summoner" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/eye_of_nature_log.json b/src/generated/resources/assets/decisland/models/block/eye_of_nature_log.json new file mode 100644 index 0000000..dba476a --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/eye_of_nature_log.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/eye_of_nature_log" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/flesh_block.json b/src/generated/resources/assets/decisland/models/block/flesh_block.json new file mode 100644 index 0000000..a786330 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/flesh_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/flesh_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/flowing_block.json b/src/generated/resources/assets/decisland/models/block/flowing_block.json new file mode 100644 index 0000000..4c99be2 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/flowing_block.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/flowing_block_down", + "side": "decisland:block/flowing_block_side_0", + "top": "decisland:block/flowing_block_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/forest_summoner.json b/src/generated/resources/assets/decisland/models/block/forest_summoner.json new file mode 100644 index 0000000..b5c22c7 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/forest_summoner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/forest_summoner" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/frozen_cage.json b/src/generated/resources/assets/decisland/models/block/frozen_cage.json new file mode 100644 index 0000000..ed81446 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/frozen_cage.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/frozen_cage" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/frozen_crate.json b/src/generated/resources/assets/decisland/models/block/frozen_crate.json new file mode 100644 index 0000000..26677fc --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/frozen_crate.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/crate_locked", + "side": "decisland:block/frozen_crate_locked", + "top": "decisland:block/frozen_crate_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/fuse.json b/src/generated/resources/assets/decisland/models/block/fuse.json new file mode 100644 index 0000000..9321ecb --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/fuse.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/fuse" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/ghost_ice.json b/src/generated/resources/assets/decisland/models/block/ghost_ice.json new file mode 100644 index 0000000..e3466b6 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/ghost_ice.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/ghost_ice" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/golden_chain.json b/src/generated/resources/assets/decisland/models/block/golden_chain.json new file mode 100644 index 0000000..7cfa139 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/golden_chain.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/golden_chain" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/golden_fence_block.json b/src/generated/resources/assets/decisland/models/block/golden_fence_block.json new file mode 100644 index 0000000..720741e --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/golden_fence_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/golden_fence_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/ice_bookshelf.json b/src/generated/resources/assets/decisland/models/block/ice_bookshelf.json new file mode 100644 index 0000000..8080563 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/ice_bookshelf.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/ice_brick_block", + "side": "decisland:block/ice_bookshelf_side", + "top": "decisland:block/ice_brick_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/ice_rope_block.json b/src/generated/resources/assets/decisland/models/block/ice_rope_block.json new file mode 100644 index 0000000..7c34ce4 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/ice_rope_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/ice_rope_block_0" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/item_picker.json b/src/generated/resources/assets/decisland/models/block/item_picker.json new file mode 100644 index 0000000..8a24362 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/item_picker.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/item_picker_down", + "side": "decisland:block/item_picker_side", + "top": "decisland:block/item_picker_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/lace_block_black.json b/src/generated/resources/assets/decisland/models/block/lace_block_black.json new file mode 100644 index 0000000..cb35262 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/lace_block_black.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/lace_block_black_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/lace_block_light_red.json b/src/generated/resources/assets/decisland/models/block/lace_block_light_red.json new file mode 100644 index 0000000..cb90cb5 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/lace_block_light_red.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/lace_block_light_red_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/lampshade.json b/src/generated/resources/assets/decisland/models/block/lampshade.json new file mode 100644 index 0000000..43c3057 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/lampshade.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/lampshade" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/lightning_summoner.json b/src/generated/resources/assets/decisland/models/block/lightning_summoner.json new file mode 100644 index 0000000..a936673 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/lightning_summoner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/weather_console_down", + "side": "decisland:block/lightning_summoner", + "top": "decisland:block/weather_console_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/lurk_block.json b/src/generated/resources/assets/decisland/models/block/lurk_block.json new file mode 100644 index 0000000..de09f1e --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/lurk_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/lurk_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/lurk_end_stone.json b/src/generated/resources/assets/decisland/models/block/lurk_end_stone.json new file mode 100644 index 0000000..271895e --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/lurk_end_stone.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/end_stone", + "side": "decisland:block/lurk_end_stone_side", + "top": "decisland:block/lurk_end_stone_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/mine.json b/src/generated/resources/assets/decisland/models/block/mine.json new file mode 100644 index 0000000..80c948d --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/mine.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/mine", + "side": "decisland:block/mine", + "top": "decisland:block/mine_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/mining_machine.json b/src/generated/resources/assets/decisland/models/block/mining_machine.json new file mode 100644 index 0000000..3e9924f --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/mining_machine.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/mining_machine_down", + "side": "decisland:block/mining_machine_side", + "top": "decisland:block/mining_machine_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/monitor.json b/src/generated/resources/assets/decisland/models/block/monitor.json new file mode 100644 index 0000000..9e457f8 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/monitor.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/lurk_log_up", + "side": "decisland:block/monitor", + "top": "decisland:block/lurk_log_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/monitor_activated.json b/src/generated/resources/assets/decisland/models/block/monitor_activated.json new file mode 100644 index 0000000..41da0d7 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/monitor_activated.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/lurk_log_up", + "side": "decisland:block/monitor_activated", + "top": "decisland:block/lurk_log_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/nuke_block.json b/src/generated/resources/assets/decisland/models/block/nuke_block.json new file mode 100644 index 0000000..17813d2 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/nuke_block.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "minecraft:block/tnt_bottom", + "side": "decisland:block/nuke_side", + "top": "minecraft:block/tnt_top" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/plain_tower_summoner.json b/src/generated/resources/assets/decisland/models/block/plain_tower_summoner.json new file mode 100644 index 0000000..4a37185 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/plain_tower_summoner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/plain_tower_summoner_up", + "side": "decisland:block/plain_tower_summoner_side", + "top": "decisland:block/plain_tower_summoner_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/purpur_summoner.json b/src/generated/resources/assets/decisland/models/block/purpur_summoner.json new file mode 100644 index 0000000..6a4f83c --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/purpur_summoner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/purpur_summoner_up", + "side": "decisland:block/purpur_summoner_side", + "top": "decisland:block/purpur_summoner_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/radiate_dirt.json b/src/generated/resources/assets/decisland/models/block/radiate_dirt.json new file mode 100644 index 0000000..42fb623 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/radiate_dirt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/radiate_dirt" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/radiate_stone.json b/src/generated/resources/assets/decisland/models/block/radiate_stone.json new file mode 100644 index 0000000..cdbb278 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/radiate_stone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/radiate_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/radiate_stonebrick.json b/src/generated/resources/assets/decisland/models/block/radiate_stonebrick.json new file mode 100644 index 0000000..d97be17 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/radiate_stonebrick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/radiate_stonebrick" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/raining_summoner.json b/src/generated/resources/assets/decisland/models/block/raining_summoner.json new file mode 100644 index 0000000..d86377f --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/raining_summoner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/weather_console_down", + "side": "decisland:block/raining_summoner", + "top": "decisland:block/weather_console_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/red_patterned_stonebrick.json b/src/generated/resources/assets/decisland/models/block/red_patterned_stonebrick.json new file mode 100644 index 0000000..2c28629 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/red_patterned_stonebrick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/red_patterned_stonebrick_side" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/scale_block.json b/src/generated/resources/assets/decisland/models/block/scale_block.json new file mode 100644 index 0000000..be65aa6 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/scale_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/scale_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/small_stone_block_entity.json b/src/generated/resources/assets/decisland/models/block/small_stone_block_entity.json new file mode 100644 index 0000000..ca345ba --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/small_stone_block_entity.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/small_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/snow_brick_block.json b/src/generated/resources/assets/decisland/models/block/snow_brick_block.json new file mode 100644 index 0000000..1383040 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/snow_brick_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/snow_brick_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/soul_summoner.json b/src/generated/resources/assets/decisland/models/block/soul_summoner.json new file mode 100644 index 0000000..fa6e5e5 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/soul_summoner.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/soul_summoner" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/stone_heap.json b/src/generated/resources/assets/decisland/models/block/stone_heap.json new file mode 100644 index 0000000..ca345ba --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/stone_heap.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/small_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/stone_road.json b/src/generated/resources/assets/decisland/models/block/stone_road.json new file mode 100644 index 0000000..ca345ba --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/stone_road.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/small_stone" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/sunny_summoner.json b/src/generated/resources/assets/decisland/models/block/sunny_summoner.json new file mode 100644 index 0000000..9be1379 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/sunny_summoner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "decisland:block/weather_console_down", + "side": "decisland:block/sunny_summoner", + "top": "decisland:block/weather_console_up" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/sweet_berries_block.json b/src/generated/resources/assets/decisland/models/block/sweet_berries_block.json new file mode 100644 index 0000000..4d49a16 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/sweet_berries_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/sweet_berries_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/block/thin_rope_block.json b/src/generated/resources/assets/decisland/models/block/thin_rope_block.json new file mode 100644 index 0000000..0b9df65 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/block/thin_rope_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "decisland:block/thin_rope_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/abyssal_summoner.json b/src/generated/resources/assets/decisland/models/item/abyssal_summoner.json new file mode 100644 index 0000000..758c83f --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/abyssal_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/abyssal_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/ash_cage.json b/src/generated/resources/assets/decisland/models/item/ash_cage.json new file mode 100644 index 0000000..c472734 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/ash_cage.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/ash_cage" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/ash_summoner.json b/src/generated/resources/assets/decisland/models/item/ash_summoner.json new file mode 100644 index 0000000..e0da62c --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/ash_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/ash_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/bat_summoner.json b/src/generated/resources/assets/decisland/models/item/bat_summoner.json new file mode 100644 index 0000000..f2560f1 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/bat_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/bat_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/broken_dirt.json b/src/generated/resources/assets/decisland/models/item/broken_dirt.json new file mode 100644 index 0000000..c5d29a7 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/broken_dirt.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/broken_dirt" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/cave_crate.json b/src/generated/resources/assets/decisland/models/item/cave_crate.json new file mode 100644 index 0000000..9b3f507 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/cave_crate.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/cave_crate" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/christmas_gift_block.json b/src/generated/resources/assets/decisland/models/item/christmas_gift_block.json new file mode 100644 index 0000000..1256811 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/christmas_gift_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/christmas_gift_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/crate.json b/src/generated/resources/assets/decisland/models/item/crate.json new file mode 100644 index 0000000..b8d5a25 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/crate.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/crate" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/deep_summoner.json b/src/generated/resources/assets/decisland/models/item/deep_summoner.json new file mode 100644 index 0000000..4cd6218 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/deep_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/deep_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/dirt_ghost_block.json b/src/generated/resources/assets/decisland/models/item/dirt_ghost_block.json new file mode 100644 index 0000000..797d11d --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/dirt_ghost_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/dirt_ghost_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/enchanted_summoner.json b/src/generated/resources/assets/decisland/models/item/enchanted_summoner.json new file mode 100644 index 0000000..bad319e --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/enchanted_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/enchanted_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/end_altar.json b/src/generated/resources/assets/decisland/models/item/end_altar.json new file mode 100644 index 0000000..f834f8b --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/end_altar.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/end_altar" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/everlasting_winter_summoner.json b/src/generated/resources/assets/decisland/models/item/everlasting_winter_summoner.json new file mode 100644 index 0000000..c1c4206 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/everlasting_winter_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/everlasting_winter_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/eye_of_nature_log.json b/src/generated/resources/assets/decisland/models/item/eye_of_nature_log.json new file mode 100644 index 0000000..f1b2d1d --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/eye_of_nature_log.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/eye_of_nature_log" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/flesh_block.json b/src/generated/resources/assets/decisland/models/item/flesh_block.json new file mode 100644 index 0000000..5a8bc40 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/flesh_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/flesh_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/flowing_block.json b/src/generated/resources/assets/decisland/models/item/flowing_block.json new file mode 100644 index 0000000..ae13271 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/flowing_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/flowing_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/forest_summoner.json b/src/generated/resources/assets/decisland/models/item/forest_summoner.json new file mode 100644 index 0000000..3250111 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/forest_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/forest_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/frozen_cage.json b/src/generated/resources/assets/decisland/models/item/frozen_cage.json new file mode 100644 index 0000000..4778ffb --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/frozen_cage.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/frozen_cage" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/frozen_crate.json b/src/generated/resources/assets/decisland/models/item/frozen_crate.json new file mode 100644 index 0000000..5e0eace --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/frozen_crate.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/frozen_crate" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/fuse.json b/src/generated/resources/assets/decisland/models/item/fuse.json new file mode 100644 index 0000000..8e89394 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/fuse.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/fuse" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/ghost_ice.json b/src/generated/resources/assets/decisland/models/item/ghost_ice.json new file mode 100644 index 0000000..4a779c6 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/ghost_ice.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/ghost_ice" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/golden_bookshelf.json b/src/generated/resources/assets/decisland/models/item/golden_bookshelf.json new file mode 100644 index 0000000..78b78e6 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/golden_bookshelf.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/golden_bookshelf" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/golden_bookshelf_frame.json b/src/generated/resources/assets/decisland/models/item/golden_bookshelf_frame.json new file mode 100644 index 0000000..2b3adff --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/golden_bookshelf_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/golden_bookshelf_frame" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/golden_chain.json b/src/generated/resources/assets/decisland/models/item/golden_chain.json new file mode 100644 index 0000000..c5f57fc --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/golden_chain.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/golden_chain" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/golden_fence_block.json b/src/generated/resources/assets/decisland/models/item/golden_fence_block.json new file mode 100644 index 0000000..b395c3c --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/golden_fence_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/golden_fence_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/ice_bookshelf.json b/src/generated/resources/assets/decisland/models/item/ice_bookshelf.json new file mode 100644 index 0000000..f07d115 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/ice_bookshelf.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/ice_bookshelf" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/ice_rope_block.json b/src/generated/resources/assets/decisland/models/item/ice_rope_block.json new file mode 100644 index 0000000..29c16ba --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/ice_rope_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/ice_rope_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/item_picker.json b/src/generated/resources/assets/decisland/models/item/item_picker.json new file mode 100644 index 0000000..8466204 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/item_picker.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/item_picker" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/lace_block_black.json b/src/generated/resources/assets/decisland/models/item/lace_block_black.json new file mode 100644 index 0000000..e2de493 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/lace_block_black.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/lace_block_black" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/lace_block_light_red.json b/src/generated/resources/assets/decisland/models/item/lace_block_light_red.json new file mode 100644 index 0000000..c9f4281 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/lace_block_light_red.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/lace_block_light_red" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/lampshade.json b/src/generated/resources/assets/decisland/models/item/lampshade.json new file mode 100644 index 0000000..6b75cac --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/lampshade.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/lampshade" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/lightning_summoner.json b/src/generated/resources/assets/decisland/models/item/lightning_summoner.json new file mode 100644 index 0000000..e3d32cf --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/lightning_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/lightning_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/lurk_block.json b/src/generated/resources/assets/decisland/models/item/lurk_block.json new file mode 100644 index 0000000..5cd48d1 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/lurk_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/lurk_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/lurk_end_stone.json b/src/generated/resources/assets/decisland/models/item/lurk_end_stone.json new file mode 100644 index 0000000..0d5e340 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/lurk_end_stone.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/lurk_end_stone" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/magic_letter_box.json b/src/generated/resources/assets/decisland/models/item/magic_letter_box.json new file mode 100644 index 0000000..07baf2e --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/magic_letter_box.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/magic_letter_box" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/mine.json b/src/generated/resources/assets/decisland/models/item/mine.json new file mode 100644 index 0000000..b14fc58 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/mine.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/mine" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/mining_machine.json b/src/generated/resources/assets/decisland/models/item/mining_machine.json new file mode 100644 index 0000000..3232436 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/mining_machine.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/mining_machine" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/monitor.json b/src/generated/resources/assets/decisland/models/item/monitor.json new file mode 100644 index 0000000..a348b09 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/monitor.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/monitor" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/monitor_activated.json b/src/generated/resources/assets/decisland/models/item/monitor_activated.json new file mode 100644 index 0000000..0777653 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/monitor_activated.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/monitor_activated" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/nuke_block.json b/src/generated/resources/assets/decisland/models/item/nuke_block.json new file mode 100644 index 0000000..000da55 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/nuke_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/nuke_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/plain_tower_summoner.json b/src/generated/resources/assets/decisland/models/item/plain_tower_summoner.json new file mode 100644 index 0000000..4178562 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/plain_tower_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/plain_tower_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/purpur_summoner.json b/src/generated/resources/assets/decisland/models/item/purpur_summoner.json new file mode 100644 index 0000000..78c2350 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/purpur_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/purpur_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/radiate_dirt.json b/src/generated/resources/assets/decisland/models/item/radiate_dirt.json new file mode 100644 index 0000000..c3f2087 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/radiate_dirt.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/radiate_dirt" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/radiate_stone.json b/src/generated/resources/assets/decisland/models/item/radiate_stone.json new file mode 100644 index 0000000..ee58696 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/radiate_stone.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/radiate_stone" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/radiate_stonebrick.json b/src/generated/resources/assets/decisland/models/item/radiate_stonebrick.json new file mode 100644 index 0000000..cda3e0f --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/radiate_stonebrick.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/radiate_stonebrick" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/raining_summoner.json b/src/generated/resources/assets/decisland/models/item/raining_summoner.json new file mode 100644 index 0000000..c401e3a --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/raining_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/raining_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/red_lantern.json b/src/generated/resources/assets/decisland/models/item/red_lantern.json new file mode 100644 index 0000000..4f2eeae --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/red_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/red_lantern" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/red_patterned_stonebrick.json b/src/generated/resources/assets/decisland/models/item/red_patterned_stonebrick.json new file mode 100644 index 0000000..c3082b6 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/red_patterned_stonebrick.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/red_patterned_stonebrick" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/scale_block.json b/src/generated/resources/assets/decisland/models/item/scale_block.json new file mode 100644 index 0000000..24d9fc8 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/scale_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/scale_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/small_stone_block_entity.json b/src/generated/resources/assets/decisland/models/item/small_stone_block_entity.json new file mode 100644 index 0000000..9025de1 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/small_stone_block_entity.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/small_stone_block_entity" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/snow_brick_block.json b/src/generated/resources/assets/decisland/models/item/snow_brick_block.json new file mode 100644 index 0000000..06f17eb --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/snow_brick_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/snow_brick_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/soul_summoner.json b/src/generated/resources/assets/decisland/models/item/soul_summoner.json new file mode 100644 index 0000000..631d662 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/soul_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/soul_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/stone_heap.json b/src/generated/resources/assets/decisland/models/item/stone_heap.json new file mode 100644 index 0000000..1ca4c0f --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/stone_heap.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/stone_heap" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/stone_road.json b/src/generated/resources/assets/decisland/models/item/stone_road.json new file mode 100644 index 0000000..30117b6 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/stone_road.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/stone_road" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/sunny_summoner.json b/src/generated/resources/assets/decisland/models/item/sunny_summoner.json new file mode 100644 index 0000000..35617e4 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/sunny_summoner.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/sunny_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/sweet_berries_block.json b/src/generated/resources/assets/decisland/models/item/sweet_berries_block.json new file mode 100644 index 0000000..da54d65 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/sweet_berries_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/sweet_berries_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/decisland/models/item/thin_rope_block.json b/src/generated/resources/assets/decisland/models/item/thin_rope_block.json new file mode 100644 index 0000000..f315ba9 --- /dev/null +++ b/src/generated/resources/assets/decisland/models/item/thin_rope_block.json @@ -0,0 +1,3 @@ +{ + "parent": "decisland:block/thin_rope_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/abyssal_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/abyssal_summoner.json new file mode 100644 index 0000000..25046f9 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/abyssal_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/abyssal_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/ash_cage.json b/src/generated/resources/data/decisland/loot_table/blocks/ash_cage.json new file mode 100644 index 0000000..707c638 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/ash_cage.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ash_cage" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/ash_cage" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/ash_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/ash_summoner.json new file mode 100644 index 0000000..ecc7170 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/ash_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/ash_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/bat_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/bat_summoner.json new file mode 100644 index 0000000..d7dd822 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/bat_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/bat_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/broken_dirt.json b/src/generated/resources/data/decisland/loot_table/blocks/broken_dirt.json new file mode 100644 index 0000000..c8ac05e --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/broken_dirt.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:broken_dirt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/broken_dirt" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/cave_crate.json b/src/generated/resources/data/decisland/loot_table/blocks/cave_crate.json new file mode 100644 index 0000000..94c68df --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/cave_crate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:cave_crate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/cave_crate" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/christmas_gift_block.json b/src/generated/resources/data/decisland/loot_table/blocks/christmas_gift_block.json new file mode 100644 index 0000000..4ec2862 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/christmas_gift_block.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:christmas_cap", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:gingerbread_man", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "decisland:gingerbread_sword", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "decisland:candy_cane", + "weight": 3 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/christmas_gift_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/crate.json b/src/generated/resources/data/decisland/loot_table/blocks/crate.json new file mode 100644 index 0000000..9f760cf --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/crate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:crate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/crate" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/deep_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/deep_summoner.json new file mode 100644 index 0000000..a81e128 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/deep_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/deep_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/dirt_ghost_block.json b/src/generated/resources/data/decisland/loot_table/blocks/dirt_ghost_block.json new file mode 100644 index 0000000..2cb47fc --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/dirt_ghost_block.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/dirt_ghost_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/enchanted_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/enchanted_summoner.json new file mode 100644 index 0000000..6cd8176 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/enchanted_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/enchanted_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/end_altar.json b/src/generated/resources/data/decisland/loot_table/blocks/end_altar.json new file mode 100644 index 0000000..c8201b6 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/end_altar.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:end_altar" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/end_altar" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/everlasting_winter_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/everlasting_winter_summoner.json new file mode 100644 index 0000000..4f9d82c --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/everlasting_winter_summoner.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:everlasting_winter_summoner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/everlasting_winter_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/eye_of_nature_log.json b/src/generated/resources/data/decisland/loot_table/blocks/eye_of_nature_log.json new file mode 100644 index 0000000..190657e --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/eye_of_nature_log.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:eye_of_nature" + }, + { + "type": "minecraft:item", + "name": "minecraft:oak_log" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/eye_of_nature_log" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/flesh_block.json b/src/generated/resources/data/decisland/loot_table/blocks/flesh_block.json new file mode 100644 index 0000000..3288e04 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/flesh_block.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/flesh_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/flowing_block.json b/src/generated/resources/data/decisland/loot_table/blocks/flowing_block.json new file mode 100644 index 0000000..febc230 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/flowing_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:flowing_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/flowing_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/forest_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/forest_summoner.json new file mode 100644 index 0000000..13dd8c2 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/forest_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/forest_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/frozen_cage.json b/src/generated/resources/data/decisland/loot_table/blocks/frozen_cage.json new file mode 100644 index 0000000..a64556a --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/frozen_cage.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:frozen_cage" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/frozen_cage" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/frozen_crate.json b/src/generated/resources/data/decisland/loot_table/blocks/frozen_crate.json new file mode 100644 index 0000000..f4bfb03 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/frozen_crate.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:frozen_crate" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/frozen_crate" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/fuse.json b/src/generated/resources/data/decisland/loot_table/blocks/fuse.json new file mode 100644 index 0000000..413d710 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/fuse.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:fuse" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/fuse" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/ghost_ice.json b/src/generated/resources/data/decisland/loot_table/blocks/ghost_ice.json new file mode 100644 index 0000000..eadab1b --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/ghost_ice.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/ghost_ice" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/golden_bookshelf.json b/src/generated/resources/data/decisland/loot_table/blocks/golden_bookshelf.json new file mode 100644 index 0000000..a0e2f58 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/golden_bookshelf.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:golden_bookshelf" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/golden_bookshelf" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/golden_bookshelf_frame.json b/src/generated/resources/data/decisland/loot_table/blocks/golden_bookshelf_frame.json new file mode 100644 index 0000000..df0a3d0 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/golden_bookshelf_frame.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:golden_bookshelf_frame" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/golden_bookshelf_frame" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/golden_chain.json b/src/generated/resources/data/decisland/loot_table/blocks/golden_chain.json new file mode 100644 index 0000000..2c86a33 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/golden_chain.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:golden_chain" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/golden_chain" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/golden_fence_block.json b/src/generated/resources/data/decisland/loot_table/blocks/golden_fence_block.json new file mode 100644 index 0000000..cb89a2d --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/golden_fence_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:golden_fence_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/golden_fence_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/ice_bookshelf.json b/src/generated/resources/data/decisland/loot_table/blocks/ice_bookshelf.json new file mode 100644 index 0000000..29de65d --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/ice_bookshelf.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:book", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "decisland:snowball_magic_book" + }, + { + "type": "minecraft:item", + "name": "decisland:old_book", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:lapis_magic_book" + }, + { + "type": "minecraft:item", + "name": "decisland:experience_book_empty" + }, + { + "type": "minecraft:item", + "name": "decisland:experience_book" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/ice_bookshelf" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/ice_rope_block.json b/src/generated/resources/data/decisland/loot_table/blocks/ice_rope_block.json new file mode 100644 index 0000000..3b062f3 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/ice_rope_block.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/ice_rope_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/item_picker.json b/src/generated/resources/data/decisland/loot_table/blocks/item_picker.json new file mode 100644 index 0000000..2ba2228 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/item_picker.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:item_picker" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/item_picker" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/lace_block_black.json b/src/generated/resources/data/decisland/loot_table/blocks/lace_block_black.json new file mode 100644 index 0000000..d555e41 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/lace_block_black.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:lace_block_black" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/lace_block_black" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/lace_block_light_red.json b/src/generated/resources/data/decisland/loot_table/blocks/lace_block_light_red.json new file mode 100644 index 0000000..c43c539 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/lace_block_light_red.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:lace_block_light_red" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/lace_block_light_red" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/lampshade.json b/src/generated/resources/data/decisland/loot_table/blocks/lampshade.json new file mode 100644 index 0000000..a8c8cd7 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/lampshade.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:lampshade" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/lampshade" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/lightning_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/lightning_summoner.json new file mode 100644 index 0000000..c3c4182 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/lightning_summoner.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:lightning_summoner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/lightning_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/lurk_block.json b/src/generated/resources/data/decisland/loot_table/blocks/lurk_block.json new file mode 100644 index 0000000..f0af470 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/lurk_block.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "chance": 0.1, + "condition": "minecraft:random_chance" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:lurk_spring" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/lurk_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/lurk_end_stone.json b/src/generated/resources/data/decisland/loot_table/blocks/lurk_end_stone.json new file mode 100644 index 0000000..5f09316 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/lurk_end_stone.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:lurk_end_stone" + }, + { + "type": "minecraft:item", + "name": "minecraft:end_stone", + "weight": 4 + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/lurk_end_stone" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/magic_letter_box.json b/src/generated/resources/data/decisland/loot_table/blocks/magic_letter_box.json new file mode 100644 index 0000000..0f77f33 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/magic_letter_box.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:magic_letter_box" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/magic_letter_box" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/mine.json b/src/generated/resources/data/decisland/loot_table/blocks/mine.json new file mode 100644 index 0000000..af5af32 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/mine.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:mine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/mine" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/mining_machine.json b/src/generated/resources/data/decisland/loot_table/blocks/mining_machine.json new file mode 100644 index 0000000..e260045 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/mining_machine.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:mining_machine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/mining_machine" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/monitor.json b/src/generated/resources/data/decisland/loot_table/blocks/monitor.json new file mode 100644 index 0000000..2cea38f --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/monitor.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:monitor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/monitor" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/monitor_activated.json b/src/generated/resources/data/decisland/loot_table/blocks/monitor_activated.json new file mode 100644 index 0000000..d08ad32 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/monitor_activated.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:monitor" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/monitor_activated" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/nuke_block.json b/src/generated/resources/data/decisland/loot_table/blocks/nuke_block.json new file mode 100644 index 0000000..3984e5b --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/nuke_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:nuke_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/nuke_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/plain_tower_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/plain_tower_summoner.json new file mode 100644 index 0000000..218858f --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/plain_tower_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/plain_tower_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/purpur_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/purpur_summoner.json new file mode 100644 index 0000000..8b2058a --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/purpur_summoner.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:purpur_summoner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/purpur_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/radiate_dirt.json b/src/generated/resources/data/decisland/loot_table/blocks/radiate_dirt.json new file mode 100644 index 0000000..d14c4f6 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/radiate_dirt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:radiate_dirt" + }, + { + "type": "minecraft:item", + "name": "minecraft:dirt" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/radiate_dirt" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/radiate_stone.json b/src/generated/resources/data/decisland/loot_table/blocks/radiate_stone.json new file mode 100644 index 0000000..aad8688 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/radiate_stone.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:radiate_stone" + }, + { + "type": "minecraft:item", + "name": "decisland:small_stone" + }, + { + "type": "minecraft:item", + "name": "minecraft:cobblestone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/radiate_stone" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/radiate_stonebrick.json b/src/generated/resources/data/decisland/loot_table/blocks/radiate_stonebrick.json new file mode 100644 index 0000000..be0220b --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/radiate_stonebrick.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:radiate_stone" + }, + { + "type": "minecraft:item", + "name": "decisland:small_stone" + }, + { + "type": "minecraft:item", + "name": "minecraft:cobblestone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/radiate_stonebrick" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/raining_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/raining_summoner.json new file mode 100644 index 0000000..82c6b60 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/raining_summoner.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:raining_summoner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/raining_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/red_lantern.json b/src/generated/resources/data/decisland/loot_table/blocks/red_lantern.json new file mode 100644 index 0000000..4b0239d --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/red_lantern.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:red_lantern" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/red_lantern" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/red_patterned_stonebrick.json b/src/generated/resources/data/decisland/loot_table/blocks/red_patterned_stonebrick.json new file mode 100644 index 0000000..7112143 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/red_patterned_stonebrick.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:red_patterned_stonebrick" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/red_patterned_stonebrick" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/scale_block.json b/src/generated/resources/data/decisland/loot_table/blocks/scale_block.json new file mode 100644 index 0000000..b52c1fd --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/scale_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:scale_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/scale_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/small_stone_block_entity.json b/src/generated/resources/data/decisland/loot_table/blocks/small_stone_block_entity.json new file mode 100644 index 0000000..bfae0fe --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/small_stone_block_entity.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:small_stone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/small_stone_block_entity" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/snow_brick_block.json b/src/generated/resources/data/decisland/loot_table/blocks/snow_brick_block.json new file mode 100644 index 0000000..f4420db --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/snow_brick_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:snow_brick_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/snow_brick_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/soul_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/soul_summoner.json new file mode 100644 index 0000000..7071f07 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/soul_summoner.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/soul_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/stone_heap.json b/src/generated/resources/data/decisland/loot_table/blocks/stone_heap.json new file mode 100644 index 0000000..3953785 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/stone_heap.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "decisland:small_stone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/stone_heap" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/stone_road.json b/src/generated/resources/data/decisland/loot_table/blocks/stone_road.json new file mode 100644 index 0000000..b53bf65 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/stone_road.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "decisland:small_stone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/stone_road" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/sunny_summoner.json b/src/generated/resources/data/decisland/loot_table/blocks/sunny_summoner.json new file mode 100644 index 0000000..3d843a4 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/sunny_summoner.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:sunny_summoner" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/sunny_summoner" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/sweet_berries_block.json b/src/generated/resources/data/decisland/loot_table/blocks/sweet_berries_block.json new file mode 100644 index 0000000..71609c2 --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/sweet_berries_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:sweet_berries_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "decisland:blocks/sweet_berries_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/decisland/loot_table/blocks/thin_rope_block.json b/src/generated/resources/data/decisland/loot_table/blocks/thin_rope_block.json new file mode 100644 index 0000000..e16dd8a --- /dev/null +++ b/src/generated/resources/data/decisland/loot_table/blocks/thin_rope_block.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "random_sequence": "decisland:blocks/thin_rope_block" +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/axe.json b/src/generated/resources/data/minecraft/tags/block/mineable/axe.json index 3a9796f..5d8d2fb 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/axe.json @@ -1,5 +1,12 @@ { "values": [ - "decisland:lurk_log" + "decisland:lurk_log", + "decisland:eye_of_nature_log", + "decisland:crate", + "decisland:frozen_crate", + "decisland:cave_crate", + "decisland:golden_bookshelf", + "decisland:golden_bookshelf_frame", + "decisland:magic_letter_box" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index 5456b8d..3c8d872 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -34,6 +34,33 @@ "decisland:smooth_amethyst_block", "decisland:solidified_lava_block", "decisland:steel_block", - "decisland:uranium_block" + "decisland:uranium_block", + "decisland:ash_cage", + "decisland:frozen_cage", + "decisland:lurk_end_stone", + "decisland:radiate_stone", + "decisland:radiate_stonebrick", + "decisland:red_patterned_stonebrick", + "decisland:scale_block", + "decisland:snow_brick_block", + "decisland:golden_fence_block", + "decisland:end_altar", + "decisland:purpur_summoner", + "decisland:enchanted_summoner", + "decisland:plain_tower_summoner", + "decisland:ash_summoner", + "decisland:abyssal_summoner", + "decisland:bat_summoner", + "decisland:deep_summoner", + "decisland:forest_summoner", + "decisland:soul_summoner", + "decisland:everlasting_winter_summoner", + "decisland:monitor", + "decisland:monitor_activated", + "decisland:item_picker", + "decisland:mining_machine", + "decisland:mine", + "decisland:flowing_block", + "decisland:golden_chain" ] } \ No newline at end of file diff --git a/src/main/java/com/dec/decisland/DecIsland.kt b/src/main/java/com/dec/decisland/DecIsland.kt index 9e5f029..36093e5 100644 --- a/src/main/java/com/dec/decisland/DecIsland.kt +++ b/src/main/java/com/dec/decisland/DecIsland.kt @@ -3,6 +3,7 @@ package com.dec.decisland import com.dec.decisland.attachment.ModAttachments import com.dec.decisland.block.ModBlocks import com.dec.decisland.effect.ModEffects +import com.dec.decisland.entity.GeneratedMobs import com.dec.decisland.entity.ModEntities import com.dec.decisland.item.ModCreativeModeTabs import com.dec.decisland.item.ModItems @@ -53,6 +54,7 @@ class DecIsland(modEventBus: IEventBus, modContainer: ModContainer) { ModBlocks.register(modEventBus) ModEntities.registry(modEventBus) + GeneratedMobs.register(modEventBus) ModCreativeModeTabs.register(modEventBus) ModParticles.register(modEventBus) ModEffects.register(modEventBus) diff --git a/src/main/java/com/dec/decisland/DecIslandClient.kt b/src/main/java/com/dec/decisland/DecIslandClient.kt index b760278..a6852a1 100644 --- a/src/main/java/com/dec/decisland/DecIslandClient.kt +++ b/src/main/java/com/dec/decisland/DecIslandClient.kt @@ -48,6 +48,67 @@ object DecIslandClientEvents { ItemBlockRenderTypes.setRenderLayer(block, RenderType.cutout()) } ItemBlockRenderTypes.setRenderLayer(Crop.CORN_CROP.get(), RenderType.cutout()) + + // 基岩版移植方块渲染层(alpha_test → cutout,blend → translucent) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.ASH_CAGE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.FROZEN_CAGE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.RED_LANTERN.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.ICE_BOOKSHELF.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.LURK_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.LURK_END_STONE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.RADIATE_STONE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.RADIATE_DIRT.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.RADIATE_STONEBRICK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.RED_PATTERNED_STONEBRICK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.BROKEN_DIRT.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.FLESH_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.SCALE_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.SWEET_BERRIES_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.SNOW_BRICK_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.FUSE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.EYE_OF_NATURE_LOG.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.LACE_BLOCK_BLACK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.LACE_BLOCK_LIGHT_RED.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.THIN_ROPE_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.CRATE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.FROZEN_CRATE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.CAVE_CRATE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.GOLDEN_FENCE_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.GOLDEN_BOOKSHELF.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.GOLDEN_BOOKSHELF_FRAME.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.NUKE_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.END_ALTAR.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.LIGHTNING_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.RAINING_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.SUNNY_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.PURPUR_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.ENCHANTED_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.PLAIN_TOWER_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.ASH_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.ABYSSAL_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.BAT_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.DEEP_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.FOREST_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.SOUL_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.EVERLASTING_WINTER_SUMMONER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MONITOR.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MONITOR_ACTIVATED.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.ITEM_PICKER.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINING_MACHINE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MAGIC_LETTER_BOX.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.FLOWING_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.CHRISTMAS_GIFT_BLOCK.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.GOLDEN_CHAIN.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.LAMPSHADE.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.STONE_HEAP.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.STONE_ROAD.get(), RenderType.cutout()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.SMALL_STONE_BLOCK_ENTITY.get(), RenderType.cutout()) + + // blend → translucent + ItemBlockRenderTypes.setRenderLayer(ModBlocks.GHOST_ICE.get(), RenderType.translucent()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.DIRT_GHOST_BLOCK.get(), RenderType.translucent()) + ItemBlockRenderTypes.setRenderLayer(ModBlocks.ICE_ROPE_BLOCK.get(), RenderType.translucent()) } } } diff --git a/src/main/java/com/dec/decisland/block/ModBlocks.kt b/src/main/java/com/dec/decisland/block/ModBlocks.kt index fc4e193..36d2633 100644 --- a/src/main/java/com/dec/decisland/block/ModBlocks.kt +++ b/src/main/java/com/dec/decisland/block/ModBlocks.kt @@ -6,6 +6,7 @@ import com.dec.decisland.block.custom.FlowerGhostBlock import com.dec.decisland.block.custom.NightmareBlock import com.dec.decisland.block.custom.SimpleCropBlock import com.dec.decisland.block.custom.SimplePlantBlock +import com.dec.decisland.block.custom.ShapedBlock import com.dec.decisland.block.custom.SnowPortalBlock import com.dec.decisland.block.custom.CornCropBlock import com.dec.decisland.datagen.ModBlockLootTablesProvider @@ -14,6 +15,8 @@ import com.dec.decisland.item.ModItems import com.dec.decisland.item.category.Material import com.dec.decisland.item.category.Food import com.dec.decisland.item.category.Crop +import com.dec.decisland.item.category.Weapon +import com.dec.decisland.item.category.Fashion import net.minecraft.core.Direction import net.minecraft.data.models.BlockModelGenerators import net.minecraft.data.models.model.DelegatedModel @@ -49,6 +52,8 @@ import net.minecraft.world.level.block.state.properties.Property import net.minecraft.world.level.material.PushReaction import net.minecraft.world.level.material.MapColor import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition +import net.minecraft.world.phys.shapes.Shapes +import net.minecraft.world.phys.shapes.VoxelShape import net.minecraft.advancements.critereon.StatePropertiesPredicate import net.neoforged.bus.api.IEventBus import net.neoforged.neoforge.registries.DeferredBlock @@ -68,16 +73,21 @@ object ModBlocks { val sideTexture: String? = null, val topTexture: String? = null, val bottomTexture: String? = null, + val texture: String? = null, + val customPath: String? = null, ) { enum class Kind { CUBE_ALL, CUBE_BOTTOM_TOP, COLUMN, + CUSTOM, } companion object { fun cubeAll(): BlockModelSpec = BlockModelSpec(Kind.CUBE_ALL) + fun cubeAll(texture: String): BlockModelSpec = BlockModelSpec(Kind.CUBE_ALL, texture = texture) + fun cubeBottomTop( sideTexture: String, topTexture: String, @@ -88,6 +98,8 @@ object ModBlocks { sideTexture: String, topTexture: String, ): BlockModelSpec = BlockModelSpec(Kind.COLUMN, sideTexture, topTexture) + + fun custom(path: String): BlockModelSpec = BlockModelSpec(Kind.CUSTOM, customPath = path) } } @@ -99,9 +111,10 @@ object ModBlocks { val lightLevel: Int = 0, val friction: Float? = null, val requiresCorrectTool: Boolean = false, + val noOcclusion: Boolean = false, val tags: List> = emptyList(), val model: BlockModelSpec = BlockModelSpec.cubeAll(), - val creativeTab: Supplier = ModCreativeModeTabs.DECISLAND_MATERIALS_TAB, + val creativeTab: Supplier = ModCreativeModeTabs.DECISLAND_BLOCKS_TAB, val factory: Function = Function(::Block), val loot: LootSpec = LootSpec.self(), ) @@ -126,21 +139,39 @@ object ModBlocks { val crossModel: Boolean, ) + private data class WeightedDrop( + val item: Supplier, + val weight: Int, + val maxCount: Int = 1, + ) + private data class LootSpec( val dropItem: Supplier? = null, val minCount: Float = 1.0f, val maxCount: Float = 1.0f, val silkTouch: Boolean = false, + val chance: Float? = null, + val weighted: List? = null, + val noDrop: Boolean = false, ) { companion object { fun self(): LootSpec = LootSpec() + fun none(): LootSpec = LootSpec(noDrop = true) + fun drop( item: Supplier, minCount: Float = 1.0f, maxCount: Float = 1.0f, silkTouch: Boolean = false, ): LootSpec = LootSpec(item, minCount, maxCount, silkTouch) + + fun chance( + item: Supplier, + chance: Float, + ): LootSpec = LootSpec(item, chance = chance) + + fun weighted(entries: List): LootSpec = LootSpec(weighted = entries) } } @@ -742,6 +773,710 @@ object ModBlocks { .build(), ) + // ==================== 基岩版移植方块(第二波:笼子/灯笼/书架/特殊掉落) ==================== + + // 红灯笼碰撞箱:基岩版 origin [-5,1,-5] size [10,12,10] + private val RED_LANTERN_SHAPE: VoxelShape = Shapes.box(3.0 / 16, 1.0 / 16, 3.0 / 16, 13.0 / 16, 13.0 / 16, 13.0 / 16) + // 圣诞礼物碰撞箱:origin [-4,0,-4] size [8,8,8] + private val CHRISTMAS_GIFT_SHAPE: VoxelShape = Shapes.box(4.0 / 16, 0.0, 4.0 / 16, 12.0 / 16, 8.0 / 16, 12.0 / 16) + // 金链碰撞箱:origin [-2.5,0,-2.5] size [5,16,5] + private val GOLDEN_CHAIN_SHAPE: VoxelShape = Shapes.box(5.5 / 16, 0.0, 5.5 / 16, 10.5 / 16, 1.0, 10.5 / 16) + // 灯罩碰撞箱:origin [-8,0,5] size [16,16,3](贴背板的竖直板) + private val LAMPSHADE_SHAPE: VoxelShape = Shapes.box(0.0, 0.0, 13.0 / 16, 1.0, 1.0, 1.0) + // 石堆碰撞箱:origin [-6,0,-6] size [13,2,13] + private val STONE_HEAP_SHAPE: VoxelShape = Shapes.box(2.0 / 16, 0.0, 2.0 / 16, 15.0 / 16, 2.0 / 16, 15.0 / 16) + // 石板路碰撞箱:origin [-8,0,-8] size [16,2,16] + private val STONE_ROAD_SHAPE: VoxelShape = Shapes.box(0.0, 0.0, 0.0, 1.0, 2.0 / 16, 1.0) + // 小石子碰撞箱:origin [-2,0,-2] size [3,2,3] + private val SMALL_STONE_SHAPE: VoxelShape = Shapes.box(6.0 / 16, 0.0, 6.0 / 16, 9.0 / 16, 2.0 / 16, 9.0 / 16) + + @JvmField + val ASH_CAGE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "ash_cage", + destroyTime = 3.2f, explosionResistance = 500.0f, + sound = SoundType.METAL, + requiresCorrectTool = true, noOcclusion = true, + tags = pickaxeTags(), + ), + ) + + @JvmField + val FROZEN_CAGE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "frozen_cage", + destroyTime = 3.2f, explosionResistance = 500.0f, + sound = SoundType.GLASS, friction = 0.55f, + requiresCorrectTool = true, noOcclusion = true, + tags = pickaxeTags(), + ), + ) + + @JvmField + val RED_LANTERN: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "red_lantern", + destroyTime = 0.01f, explosionResistance = 0.0f, + sound = SoundType.GLASS, + lightLevel = 15, noOcclusion = true, + factory = Function { properties -> ShapedBlock(properties, RED_LANTERN_SHAPE) }, + model = BlockModelSpec.custom("red_lantern"), + ), + ) + + @JvmField + val ICE_BOOKSHELF: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "ice_bookshelf", + destroyTime = 1.5f, explosionResistance = 10.0f, + sound = SoundType.GLASS, friction = 0.55f, + model = BlockModelSpec.cubeBottomTop("ice_bookshelf_side", "ice_brick_block", "ice_brick_block"), + loot = LootSpec.weighted( + listOf( + WeightedDrop(Supplier { Items.BOOK }, 40, 3), + WeightedDrop(Supplier { Weapon.SNOWBALL_MAGIC_BOOK.get() }, 1), + WeightedDrop(Supplier { Material.OLD_BOOK.get() }, 3), + WeightedDrop(Supplier { Weapon.LAPIS_MAGIC_BOOK.get() }, 1), + WeightedDrop(Supplier { ModItems.EXPERIENCE_BOOK_EMPTY.get() }, 1), + WeightedDrop(Supplier { ModItems.EXPERIENCE_BOOK.get() }, 1), + ), + ), + ), + ) + + @JvmField + val LURK_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "lurk_block", + destroyTime = 0.5f, explosionResistance = 20.0f, + sound = SoundType.GRASS, noOcclusion = true, + loot = LootSpec.chance(Supplier { SimplePlant.LURK_SPRING.get() }, 0.1f), + ), + ) + + @JvmField + val LURK_END_STONE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "lurk_end_stone", + destroyTime = 3.0f, explosionResistance = 30.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("lurk_end_stone_side", "lurk_end_stone_up", "minecraft:end_stone"), + loot = LootSpec.weighted( + listOf( + WeightedDrop(Supplier { ModBlocks.LURK_END_STONE.get() }, 1), + WeightedDrop(Supplier { Items.END_STONE }, 4), + ), + ), + ), + ) + + @JvmField + val RADIATE_STONE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "radiate_stone", + destroyTime = 1.5f, explosionResistance = 15.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, noOcclusion = true, + tags = pickaxeTags(), + loot = LootSpec.weighted( + listOf( + WeightedDrop(Supplier { ModBlocks.RADIATE_STONE.get() }, 1), + WeightedDrop(Supplier { Material.SMALL_STONE.get() }, 1), + WeightedDrop(Supplier { Items.COBBLESTONE }, 1), + ), + ), + ), + ) + + @JvmField + val RADIATE_DIRT: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "radiate_dirt", + destroyTime = 1.0f, explosionResistance = 5.0f, + sound = SoundType.GRAVEL, noOcclusion = true, + loot = LootSpec.weighted( + listOf( + WeightedDrop(Supplier { ModBlocks.RADIATE_DIRT.get() }, 1), + WeightedDrop(Supplier { Items.DIRT }, 1), + ), + ), + ), + ) + + @JvmField + val RADIATE_STONEBRICK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "radiate_stonebrick", + destroyTime = 1.5f, explosionResistance = 15.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, noOcclusion = true, + tags = pickaxeTags(), + // 基岩版 radiate_stonebrick 的战利品表就是 radiate_stone.json(权重三选一) + loot = LootSpec.weighted( + listOf( + WeightedDrop(Supplier { ModBlocks.RADIATE_STONE.get() }, 1), + WeightedDrop(Supplier { Material.SMALL_STONE.get() }, 1), + WeightedDrop(Supplier { Items.COBBLESTONE }, 1), + ), + ), + ), + ) + + @JvmField + val RED_PATTERNED_STONEBRICK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "red_patterned_stonebrick", + destroyTime = 2.1f, explosionResistance = 10.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, noOcclusion = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeAll("red_patterned_stonebrick_side"), + ), + ) + + // ==================== 基岩版移植方块(第三波:建筑/装饰/储物) ==================== + + @JvmField + val BROKEN_DIRT: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec("broken_dirt", 0.7f, 0.0f, SoundType.GRAVEL, noOcclusion = true), + ) + + @JvmField + val FLESH_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "flesh_block", + destroyTime = 1.0f, explosionResistance = 0.0f, + sound = SoundType.HONEY_BLOCK, noOcclusion = true, + loot = LootSpec.none(), + ), + ) + + @JvmField + val SCALE_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "scale_block", + destroyTime = 4.0f, explosionResistance = 0.0f, + sound = SoundType.METAL, + lightLevel = 3, noOcclusion = true, + requiresCorrectTool = true, + tags = pickaxeTags(), + ), + ) + + @JvmField + val SWEET_BERRIES_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec("sweet_berries_block", 0.3f, 0.0f, SoundType.GRASS, noOcclusion = true), + ) + + @JvmField + val SNOW_BRICK_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "snow_brick_block", + destroyTime = 1.5f, explosionResistance = 10.0f, + sound = SoundType.SNOW, + requiresCorrectTool = true, noOcclusion = true, + tags = pickaxeTags(), + ), + ) + + @JvmField + val GHOST_ICE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "ghost_ice", + destroyTime = 1.0f, explosionResistance = 10.0f, + sound = SoundType.GLASS, friction = 0.98f, + noOcclusion = true, + loot = LootSpec.none(), + ), + ) + + @JvmField + val DIRT_GHOST_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "dirt_ghost_block", + destroyTime = 0.01f, explosionResistance = 0.0f, + sound = SoundType.GRAVEL, noOcclusion = true, + loot = LootSpec.none(), + ), + ) + + @JvmField + val FUSE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "fuse", + destroyTime = 0.3f, explosionResistance = 0.0f, + sound = SoundType.WOOL, noOcclusion = true, + ), + ) + + @JvmField + val EYE_OF_NATURE_LOG: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "eye_of_nature_log", + destroyTime = 3.0f, explosionResistance = 0.0f, + sound = SoundType.WOOD, noOcclusion = true, + tags = axeTags(), + loot = LootSpec.weighted( + listOf( + WeightedDrop(Supplier { Material.EYE_OF_NATURE.get() }, 1, 1), + WeightedDrop(Supplier { Items.OAK_LOG }, 1, 1), + ), + ), + ), + ) + + @JvmField + val LACE_BLOCK_BLACK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "lace_block_black", + destroyTime = 1.0f, explosionResistance = 0.0f, + sound = SoundType.WOOL, noOcclusion = true, + model = BlockModelSpec.cubeAll("lace_block_black_side"), + ), + ) + + @JvmField + val LACE_BLOCK_LIGHT_RED: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "lace_block_light_red", + destroyTime = 1.0f, explosionResistance = 0.0f, + sound = SoundType.WOOL, noOcclusion = true, + model = BlockModelSpec.cubeAll("lace_block_light_red_side"), + ), + ) + + @JvmField + val THIN_ROPE_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "thin_rope_block", + destroyTime = 0.01f, explosionResistance = 0.0f, + sound = SoundType.WOOL, noOcclusion = true, + loot = LootSpec.none(), + ), + ) + + @JvmField + val ICE_ROPE_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "ice_rope_block", + destroyTime = 0.01f, explosionResistance = 0.0f, + sound = SoundType.GLASS, noOcclusion = true, + model = BlockModelSpec.cubeAll("ice_rope_block_0"), + loot = LootSpec.none(), + ), + ) + + @JvmField + val CRATE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "crate", + destroyTime = 2.0f, explosionResistance = 10.0f, + sound = SoundType.WOOD, + tags = axeTags(), + model = BlockModelSpec.cubeAll("crate_locked"), + ), + ) + + @JvmField + val FROZEN_CRATE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "frozen_crate", + destroyTime = 2.0f, explosionResistance = 10.0f, + sound = SoundType.WOOD, + tags = axeTags(), + model = BlockModelSpec.cubeBottomTop("frozen_crate_locked", "frozen_crate_up", "crate_locked"), + ), + ) + + @JvmField + val CAVE_CRATE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "cave_crate", + destroyTime = 2.2f, explosionResistance = 10.0f, + sound = SoundType.WOOD, + tags = axeTags(), + model = BlockModelSpec.cubeAll("cave_crate_locked"), + ), + ) + + @JvmField + val GOLDEN_FENCE_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "golden_fence_block", + destroyTime = 2.0f, explosionResistance = 30.0f, + sound = SoundType.METAL, + requiresCorrectTool = true, + tags = pickaxeTags(), + ), + ) + + @JvmField + val GOLDEN_BOOKSHELF: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "golden_bookshelf", + destroyTime = 1.5f, explosionResistance = 30.0f, + sound = SoundType.WOOD, + lightLevel = 3, + tags = axeTags(), + // 前/后/侧面各不相同,使用手写六面模型 + model = BlockModelSpec.custom("golden_bookshelf"), + ), + ) + + @JvmField + val GOLDEN_BOOKSHELF_FRAME: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "golden_bookshelf_frame", + destroyTime = 1.5f, explosionResistance = 30.0f, + sound = SoundType.WOOD, + tags = axeTags(), + model = BlockModelSpec.custom("golden_bookshelf_frame"), + ), + ) + + @JvmField + val NUKE_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "nuke_block", + destroyTime = 1.0f, explosionResistance = 10.0f, + sound = SoundType.METAL, + model = BlockModelSpec.cubeBottomTop("nuke_side", "minecraft:tnt_top", "minecraft:tnt_bottom"), + ), + ) + + @JvmField + val END_ALTAR: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "end_altar", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("end_altar_side", "end_altar_up", "end_altar_down"), + ), + ) + + // ==================== 基岩版移植方块(第四波:召唤器/机器) ==================== + + @JvmField + val LIGHTNING_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "lightning_summoner", + destroyTime = 3.0f, explosionResistance = 10.0f, + sound = SoundType.METAL, + model = BlockModelSpec.cubeBottomTop("lightning_summoner", "weather_console_up", "weather_console_down"), + ), + ) + + @JvmField + val RAINING_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "raining_summoner", + destroyTime = 3.0f, explosionResistance = 10.0f, + sound = SoundType.METAL, + model = BlockModelSpec.cubeBottomTop("raining_summoner", "weather_console_up", "weather_console_down"), + ), + ) + + @JvmField + val SUNNY_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "sunny_summoner", + destroyTime = 3.0f, explosionResistance = 10.0f, + sound = SoundType.METAL, + model = BlockModelSpec.cubeBottomTop("sunny_summoner", "weather_console_up", "weather_console_down"), + ), + ) + + @JvmField + val PURPUR_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "purpur_summoner", + destroyTime = 5.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("purpur_summoner_side", "purpur_summoner_up", "purpur_summoner_up"), + ), + ) + + @JvmField + val ENCHANTED_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "enchanted_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("enchanted_summoner_side", "enchanted_summoner_up", "enchanted_summoner_up"), + loot = LootSpec.none(), + ), + ) + + @JvmField + val PLAIN_TOWER_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "plain_tower_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("plain_tower_summoner_side", "plain_tower_summoner_up", "plain_tower_summoner_up"), + loot = LootSpec.none(), + ), + ) + + @JvmField + val ASH_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "ash_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + loot = LootSpec.none(), + ), + ) + + @JvmField + val ABYSSAL_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "abyssal_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + loot = LootSpec.none(), + ), + ) + + @JvmField + val BAT_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "bat_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + loot = LootSpec.none(), + ), + ) + + @JvmField + val DEEP_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "deep_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + loot = LootSpec.none(), + ), + ) + + @JvmField + val FOREST_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "forest_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + loot = LootSpec.none(), + ), + ) + + @JvmField + val SOUL_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "soul_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + loot = LootSpec.none(), + ), + ) + + @JvmField + val EVERLASTING_WINTER_SUMMONER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "everlasting_winter_summoner", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + ), + ) + + @JvmField + val MONITOR: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "monitor", + destroyTime = 3.0f, explosionResistance = 50.0f, + sound = SoundType.METAL, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("monitor", "lurk_log_up", "lurk_log_up"), + ), + ) + + @JvmField + val MONITOR_ACTIVATED: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "monitor_activated", + destroyTime = 3.0f, explosionResistance = 50.0f, + sound = SoundType.METAL, + lightLevel = 1, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("monitor_activated", "lurk_log_up", "lurk_log_up"), + // 激活态掉落普通监视器 + loot = LootSpec.drop(Supplier { MONITOR.get() }), + ), + ) + + @JvmField + val ITEM_PICKER: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "item_picker", + destroyTime = 3.0f, explosionResistance = 10.0f, + sound = SoundType.METAL, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("item_picker_side", "item_picker_up", "item_picker_down"), + ), + ) + + @JvmField + val MINING_MACHINE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "mining_machine", + destroyTime = 3.0f, explosionResistance = 10.0f, + sound = SoundType.METAL, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("mining_machine_side", "mining_machine_up", "mining_machine_down"), + ), + ) + + @JvmField + val MINE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "mine", + destroyTime = 1.2f, explosionResistance = 7.0f, + sound = SoundType.METAL, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("mine", "mine_top", "mine"), + ), + ) + + @JvmField + val MAGIC_LETTER_BOX: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "magic_letter_box", + destroyTime = 1.0f, explosionResistance = 30.0f, + sound = SoundType.WOOD, + tags = axeTags(), + // 正面投信口与侧面不同,使用手写六面模型 + model = BlockModelSpec.custom("magic_letter_box"), + ), + ) + + @JvmField + val FLOWING_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "flowing_block", + destroyTime = 3.0f, explosionResistance = 100.0f, + sound = SoundType.STONE, + requiresCorrectTool = true, + tags = pickaxeTags(), + model = BlockModelSpec.cubeBottomTop("flowing_block_side_0", "flowing_block_up", "flowing_block_down"), + ), + ) + + // ==================== 基岩版移植方块(第五波:自定义碰撞箱) ==================== + + @JvmField + val CHRISTMAS_GIFT_BLOCK: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "christmas_gift_block", + destroyTime = 0.3f, explosionResistance = 0.0f, + sound = SoundType.WOOL, noOcclusion = true, + factory = Function { properties -> ShapedBlock(properties, CHRISTMAS_GIFT_SHAPE) }, + model = BlockModelSpec.cubeAll("christmas_gift_block"), + loot = LootSpec.weighted( + listOf( + WeightedDrop(Supplier { Fashion.CHRISTMAS_CAP.get() }, 3), + WeightedDrop(Supplier { Food.GINGERBREAD_MAN.get() }, 5), + WeightedDrop(Supplier { Weapon.GINGERBREAD_SWORD.get() }, 2), + WeightedDrop(Supplier { Weapon.CANDY_CANE.get() }, 3), + ), + ), + ), + ) + + @JvmField + val GOLDEN_CHAIN: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "golden_chain", + destroyTime = 1.7f, explosionResistance = 40.0f, + sound = SoundType.CHAIN, noOcclusion = true, + requiresCorrectTool = true, + tags = pickaxeTags(), + factory = Function { properties -> ShapedBlock(properties, GOLDEN_CHAIN_SHAPE) }, + ), + ) + + @JvmField + val LAMPSHADE: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "lampshade", + destroyTime = 1.0f, explosionResistance = 20.0f, + sound = SoundType.WOOL, noOcclusion = true, + factory = Function { properties -> ShapedBlock(properties, LAMPSHADE_SHAPE) }, + ), + ) + + @JvmField + val STONE_HEAP: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "stone_heap", + destroyTime = 0.2f, explosionResistance = 0.0f, + sound = SoundType.STONE, noOcclusion = true, + factory = Function { properties -> ShapedBlock(properties, STONE_HEAP_SHAPE) }, + model = BlockModelSpec.cubeAll("small_stone"), + loot = LootSpec.drop(Supplier { Material.SMALL_STONE.get() }, 2.0f, 5.0f), + ), + ) + + @JvmField + val STONE_ROAD: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "stone_road", + destroyTime = 0.2f, explosionResistance = 0.0f, + sound = SoundType.STONE, noOcclusion = true, + factory = Function { properties -> ShapedBlock(properties, STONE_ROAD_SHAPE) }, + model = BlockModelSpec.cubeAll("small_stone"), + loot = LootSpec.drop(Supplier { Material.SMALL_STONE.get() }, 2.0f, 5.0f), + ), + ) + + @JvmField + val SMALL_STONE_BLOCK_ENTITY: DeferredBlock = registerSimpleBedrockBlock( + SimpleBlockSpec( + name = "small_stone_block_entity", + destroyTime = 0.01f, explosionResistance = 0.0f, + sound = SoundType.STONE, noOcclusion = true, + factory = Function { properties -> ShapedBlock(properties, SMALL_STONE_SHAPE) }, + model = BlockModelSpec.cubeAll("small_stone"), + loot = LootSpec.drop(Supplier { Material.SMALL_STONE.get() }), + ), + ) + private fun registerBlock( name: String, func: Function, @@ -880,6 +1615,9 @@ object ModBlocks { if (spec.requiresCorrectTool) { properties.requiresCorrectToolForDrops() } + if (spec.noOcclusion) { + properties.noOcclusion() + } return properties } @@ -907,13 +1645,33 @@ object ModBlocks { val block = getBlockByName("block.${DecIsland.MOD_ID}.${spec.name}").value() when (spec.model.kind) { BlockModelSpec.Kind.CUBE_ALL -> { - blockModels.createTrivialCube(block) - // createTrivialCube 只生成方块模型与 blockstate,需要为 BlockItem 补一个委托物品模型 - if (block.asItem() != Items.AIR) { - delegateItemModel(blockModels, block, ModelLocationUtils.getModelLocation(block)) + val texture = spec.model.texture + if (texture != null) { + val model = ModelTemplates.CUBE_ALL.create( + block, + TextureMapping.cube(blockTexture(texture)), + blockModels.modelOutput, + ) + blockModels.blockStateOutput.accept(simpleBlock(block, model)) + delegateItemModel(blockModels, block, model) + } else { + blockModels.createTrivialCube(block) + // createTrivialCube 只生成方块模型与 blockstate,需要为 BlockItem 补一个委托物品模型 + if (block.asItem() != Items.AIR) { + delegateItemModel(blockModels, block, ModelLocationUtils.getModelLocation(block)) + } } } + BlockModelSpec.Kind.CUSTOM -> { + // 手写模型放在 assets/decisland/models/block/ 与 blockstates/ 下,这里仅委托物品模型 + delegateItemModel( + blockModels, + block, + ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "block/" + spec.model.customPath), + ) + } + BlockModelSpec.Kind.CUBE_BOTTOM_TOP -> { val model = ModelTemplates.CUBE_BOTTOM_TOP.create( block, @@ -992,7 +1750,13 @@ object ModBlocks { } } - private fun blockTexture(name: String): ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "block/$name") + private fun blockTexture(name: String): ResourceLocation = + if (':' in name) { + val (namespace, path) = name.split(':', limit = 2) + ResourceLocation.fromNamespaceAndPath(namespace, "block/$path") + } else { + ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "block/$name") + } private fun generateSimpleBlockLoot( spec: SimpleBlockSpec, @@ -1001,6 +1765,13 @@ object ModBlocks { val block = getBlockByName("block.${DecIsland.MOD_ID}.${spec.name}").value() val dropItem = spec.loot.dropItem?.get() when { + spec.loot.noDrop -> lootTables.addNoDrop(block) + spec.loot.weighted != null -> + lootTables.addWeightedDrop( + block, + spec.loot.weighted.map { Triple(it.item.get(), it.weight, it.maxCount) }, + ) + spec.loot.chance != null && dropItem != null -> lootTables.addChanceDrop(block, dropItem, spec.loot.chance) dropItem == null -> lootTables.addDropSelf(block) spec.loot.silkTouch -> lootTables.addSilkTouchRangeDrop(block, dropItem, spec.loot.minCount, spec.loot.maxCount) spec.loot.minCount == 1.0f && spec.loot.maxCount == 1.0f -> lootTables.addSingleItemDrop(block, dropItem) diff --git a/src/main/java/com/dec/decisland/block/custom/ShapedBlock.kt b/src/main/java/com/dec/decisland/block/custom/ShapedBlock.kt new file mode 100644 index 0000000..523a06a --- /dev/null +++ b/src/main/java/com/dec/decisland/block/custom/ShapedBlock.kt @@ -0,0 +1,19 @@ +package com.dec.decisland.block.custom + +import net.minecraft.core.BlockPos +import net.minecraft.world.level.BlockGetter +import net.minecraft.world.level.block.Block +import net.minecraft.world.level.block.state.BlockBehaviour +import net.minecraft.world.level.block.state.BlockState +import net.minecraft.world.phys.shapes.CollisionContext +import net.minecraft.world.phys.shapes.VoxelShape + +// 自定义碰撞箱/外形方块(基岩版 minecraft:collision_box 的 Java 等价物) +class ShapedBlock( + properties: BlockBehaviour.Properties, + private val shape: VoxelShape, +) : Block(properties) { + override fun getShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape = shape + + override fun getCollisionShape(state: BlockState, level: BlockGetter, pos: BlockPos, context: CollisionContext): VoxelShape = shape +} diff --git a/src/main/java/com/dec/decisland/client/bedrock/BedrockEmitterManager.kt b/src/main/java/com/dec/decisland/client/bedrock/BedrockEmitterManager.kt index 8876810..3c9a4f7 100644 --- a/src/main/java/com/dec/decisland/client/bedrock/BedrockEmitterManager.kt +++ b/src/main/java/com/dec/decisland/client/bedrock/BedrockEmitterManager.kt @@ -94,7 +94,10 @@ object BedrockEmitterManager { val velocity = computeVelocity(spawn.direction) val minecraft = Minecraft.getInstance() val engine = minecraft.particleEngine - val atlas = minecraft.modelManager.getAtlas(TextureAtlas.LOCATION_PARTICLES) + // NeoForge 21.1 的粒子图集由 ParticleEngine 私有持有并注册进 TextureManager + // (ModelManager 的 AtlasSet 不含 particles,getTextureAtlas 会 NPE) + val atlas = minecraft.textureManager.getTexture(TextureAtlas.LOCATION_PARTICLES) as? TextureAtlas + if (atlas == null) return val spriteId = spriteIds[(Math.random() * spriteIds.size).toInt().coerceIn(0, spriteIds.lastIndex)] val sprite = atlas.getSprite(spriteId) val particle = BedrockBillboardParticle( diff --git a/src/main/java/com/dec/decisland/client/bedrock/model/BedrockAnimatedEntityModel.kt b/src/main/java/com/dec/decisland/client/bedrock/model/BedrockAnimatedEntityModel.kt index fc76b25..d8fb71a 100644 --- a/src/main/java/com/dec/decisland/client/bedrock/model/BedrockAnimatedEntityModel.kt +++ b/src/main/java/com/dec/decisland/client/bedrock/model/BedrockAnimatedEntityModel.kt @@ -13,17 +13,17 @@ import net.minecraft.client.model.geom.builders.PartDefinition import net.minecraft.world.entity.Entity import kotlin.math.PI -class BedrockAnimatedEntityModel private constructor( +open class BedrockAnimatedEntityModel private constructor( private val bakedModel: BakedBedrockModel, - private val animation: BedrockAnimationClip, -) : EntityModel() { + var animation: BedrockAnimationClip, +) : EntityModel() { constructor(geometry: BedrockGeometry, animation: BedrockAnimationClip) : this( bakeModel(geometry), animation, ) override fun setupAnim( - entity: Entity, + entity: T, limbSwing: Float, limbSwingAmount: Float, ageInTicks: Float, @@ -33,6 +33,11 @@ class BedrockAnimatedEntityModel private constructor( applyAnimation(ageInTicks / 20.0f) } + fun applyClip(clip: BedrockAnimationClip, timeSeconds: Float) { + animation = clip + applyAnimation(timeSeconds) + } + override fun renderToBuffer( poseStack: PoseStack, buffer: VertexConsumer, @@ -116,6 +121,7 @@ class BedrockAnimatedEntityModel private constructor( geometry, bone, parentPivot = BedrockVec3.ZERO, + isRootBone = true, ) } @@ -142,10 +148,14 @@ class BedrockAnimatedEntityModel private constructor( geometry: BedrockGeometry, bone: BedrockBone, parentPivot: BedrockVec3, + isRootBone: Boolean = false, ) { + // 基岩几何 Y 轴向上、原点在脚底;Java 模型 Y 轴向下、脚底在 y=24: + // 根骨骼锚定 24 − pivot.y,子骨骼用 父pivot − 子pivot;X 镜像、Z 不镜像 + val boneYOffset = if (isRootBone) 24f - bone.pivot.y else parentPivot.y - bone.pivot.y val bonePose = PartPoseSnapshot( x = parentPivot.x - bone.pivot.x, - y = bone.pivot.y - parentPivot.y, + y = boneYOffset, z = bone.pivot.z - parentPivot.z, xRot = bone.rotation.x.toModelRadX(), yRot = bone.rotation.y.toModelRadY(), @@ -177,8 +187,8 @@ class BedrockAnimatedEntityModel private constructor( bone.cubes.forEachIndexed { index, cube -> val cubeName = "${bone.name}__cube_$index" val cubePose = PartPoseSnapshot( - x = cube.pivot.x - bone.pivot.x, - y = cube.pivot.y - bone.pivot.y, + x = bone.pivot.x - cube.pivot.x, + y = bone.pivot.y - cube.pivot.y, z = cube.pivot.z - bone.pivot.z, xRot = cube.rotation.x.toModelRadX(), yRot = cube.rotation.y.toModelRadY(), @@ -195,7 +205,7 @@ class BedrockAnimatedEntityModel private constructor( mirror(cube.mirror) addBox( cube.pivot.x - cube.origin.x - cube.size.x, - cube.origin.y - cube.pivot.y, + cube.pivot.y - cube.origin.y - cube.size.y, cube.origin.z - cube.pivot.z, cube.size.x, cube.size.y, diff --git a/src/main/java/com/dec/decisland/client/bedrock/model/BedrockEntityAssets.kt b/src/main/java/com/dec/decisland/client/bedrock/model/BedrockEntityAssets.kt index 5aa0188..c168c5d 100644 --- a/src/main/java/com/dec/decisland/client/bedrock/model/BedrockEntityAssets.kt +++ b/src/main/java/com/dec/decisland/client/bedrock/model/BedrockEntityAssets.kt @@ -4,6 +4,7 @@ import com.google.gson.JsonArray import com.google.gson.JsonElement import com.google.gson.JsonObject import com.google.gson.JsonParser +import com.google.gson.JsonPrimitive import net.minecraft.client.Minecraft import net.minecraft.resources.ResourceLocation import java.io.InputStream @@ -194,13 +195,23 @@ object BedrockEntityAssets { return null } + // 基岩动画可能含 Molang 表达式(如 "query.target_x_rotation"),无法静态求值 → 跳过该关键帧 return BedrockVec3( - array[0].asFloat, - array[1].asFloat, - array[2].asFloat, + array[0].asFloatOrNull() ?: return null, + array[1].asFloatOrNull() ?: return null, + array[2].asFloatOrNull() ?: return null, ) } + private fun JsonElement.asFloatOrNull(): Float? { + val primitive = this as? JsonPrimitive ?: return null + return when { + primitive.isNumber -> primitive.asFloat + primitive.isString -> primitive.asString.toFloatOrNull() + else -> null + } + } + private fun parseJson(resourceId: ResourceLocation): JsonObject { openResource(resourceId).use { stream -> if (stream == null) { diff --git a/src/main/java/com/dec/decisland/client/bedrock/model/SimpleBedrockMobModel.kt b/src/main/java/com/dec/decisland/client/bedrock/model/SimpleBedrockMobModel.kt new file mode 100644 index 0000000..9be3983 --- /dev/null +++ b/src/main/java/com/dec/decisland/client/bedrock/model/SimpleBedrockMobModel.kt @@ -0,0 +1,25 @@ +package com.dec.decisland.client.bedrock.model + +import net.minecraft.world.entity.Entity + +/** + * 通用基岩版生物模型:按移动状态在 idle / walk 两个动画剪辑间切换。 + */ +class SimpleBedrockMobModel( + geometry: BedrockGeometry, + private val idleClip: BedrockAnimationClip, + private val walkClip: BedrockAnimationClip, +) : BedrockAnimatedEntityModel(geometry, idleClip) { + + override fun setupAnim( + entity: T, + limbSwing: Float, + limbSwingAmount: Float, + ageInTicks: Float, + netHeadYaw: Float, + headPitch: Float, + ) { + animation = if (limbSwingAmount > 0.03f) walkClip else idleClip + applyAnimation(ageInTicks / 20.0f) + } +} diff --git a/src/main/java/com/dec/decisland/client/renderer/BedrockMobRenderer.kt b/src/main/java/com/dec/decisland/client/renderer/BedrockMobRenderer.kt new file mode 100644 index 0000000..d357b40 --- /dev/null +++ b/src/main/java/com/dec/decisland/client/renderer/BedrockMobRenderer.kt @@ -0,0 +1,36 @@ +package com.dec.decisland.client.renderer + +import com.dec.decisland.client.bedrock.model.BedrockEntityAssets +import com.dec.decisland.client.bedrock.model.SimpleBedrockMobModel +import com.mojang.blaze3d.vertex.PoseStack +import net.minecraft.client.renderer.entity.EntityRendererProvider +import net.minecraft.client.renderer.entity.MobRenderer +import net.minecraft.resources.ResourceLocation +import net.minecraft.world.entity.Mob + +/** + * 通用基岩版生物渲染器:烘焙 geometry + idle/walk 动画 + 自定义贴图,参数化缩放。 + */ +open class BedrockMobRenderer( + context: EntityRendererProvider.Context, + geometryLocation: ResourceLocation, + animationLocation: ResourceLocation, + idleName: String, + walkName: String, + private val textureLocation: ResourceLocation, + private val scale: Float = 1.0f, +) : MobRenderer>( + context, + SimpleBedrockMobModel( + BedrockEntityAssets.geometry(geometryLocation), + BedrockEntityAssets.animation(animationLocation, idleName), + BedrockEntityAssets.animation(animationLocation, walkName), + ), + 0.45f * scale, +) { + override fun getTextureLocation(entity: T): ResourceLocation = textureLocation + + override fun scale(entity: T, poseStack: PoseStack, partialTick: Float) { + poseStack.scale(scale, scale, scale) + } +} diff --git a/src/main/java/com/dec/decisland/client/renderer/BedrockProjectileRenderer.kt b/src/main/java/com/dec/decisland/client/renderer/BedrockProjectileRenderer.kt index 9d283af..317494b 100644 --- a/src/main/java/com/dec/decisland/client/renderer/BedrockProjectileRenderer.kt +++ b/src/main/java/com/dec/decisland/client/renderer/BedrockProjectileRenderer.kt @@ -20,7 +20,7 @@ open class BedrockProjectileRenderer( private val textureLocation: ResourceLocation, private val scale: Float, ) : EntityRenderer(context) { - private val model = BedrockAnimatedEntityModel( + private val model = BedrockAnimatedEntityModel( BedrockEntityAssets.geometry(geometryLocation), BedrockEntityAssets.animation(animationLocation, animationName), ) @@ -41,6 +41,8 @@ open class BedrockProjectileRenderer( packedLight: Int, ) { poseStack.pushPose() + // 模型烘焙锚点为脚底(y=24),直接渲染的实体按缩放比例补偿对齐 + poseStack.translate(0.0, -1.5 * scale, 0.0) poseStack.scale(scale, scale, scale) model.applyAnimation((entity.tickCount + partialTick) / 20.0f) val swirlOffset = ((entity.tickCount + partialTick) * 0.01f) % 1.0f diff --git a/src/main/java/com/dec/decisland/client/renderer/ElfOfLeavesRenderer.kt b/src/main/java/com/dec/decisland/client/renderer/ElfOfLeavesRenderer.kt new file mode 100644 index 0000000..0f651bf --- /dev/null +++ b/src/main/java/com/dec/decisland/client/renderer/ElfOfLeavesRenderer.kt @@ -0,0 +1,20 @@ +package com.dec.decisland.client.renderer + +import com.dec.decisland.DecIsland +import net.minecraft.client.renderer.entity.EntityRendererProvider +import net.minecraft.client.renderer.entity.VexRenderer +import net.minecraft.resources.ResourceLocation +import net.minecraft.world.entity.monster.Vex + +/** + * 绿叶精灵渲染器:复用原版 VexRenderer(飞行 + 俯冲姿态),仅替换贴图。 + * VexRenderer 默认 scale 0.4,与基岩版 geometry.vex + scale 0.4 一致。 + */ +class ElfOfLeavesRenderer(context: EntityRendererProvider.Context) : VexRenderer(context) { + override fun getTextureLocation(entity: Vex): ResourceLocation = TEXTURE_LOCATION + + companion object { + private val TEXTURE_LOCATION: ResourceLocation = + ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/elf_of_leaves.png") + } +} diff --git a/src/main/java/com/dec/decisland/client/renderer/GeneratedMobClient.kt b/src/main/java/com/dec/decisland/client/renderer/GeneratedMobClient.kt new file mode 100644 index 0000000..477331b --- /dev/null +++ b/src/main/java/com/dec/decisland/client/renderer/GeneratedMobClient.kt @@ -0,0 +1,979 @@ +package com.dec.decisland.client.renderer + +import com.dec.decisland.DecIsland +import com.dec.decisland.entity.GeneratedMobs +import com.dec.decisland.entity.custom.BedrockMob +import net.minecraft.client.renderer.entity.EntityRenderers +import net.minecraft.client.renderer.entity.EntityRendererProvider +import net.minecraft.resources.ResourceLocation +import net.minecraft.client.renderer.entity.BatRenderer +import net.minecraft.client.renderer.entity.BlazeRenderer +import net.minecraft.client.renderer.entity.CaveSpiderRenderer +import net.minecraft.client.renderer.entity.ChickenRenderer +import net.minecraft.client.renderer.entity.CodRenderer +import net.minecraft.client.renderer.entity.CowRenderer +import net.minecraft.client.renderer.entity.CreeperRenderer +import net.minecraft.client.renderer.entity.EndermanRenderer +import net.minecraft.client.renderer.entity.EvokerRenderer +import net.minecraft.client.renderer.entity.GhastRenderer +import net.minecraft.client.renderer.entity.GuardianRenderer +import net.minecraft.client.renderer.entity.IllusionerRenderer +import net.minecraft.client.renderer.entity.IronGolemRenderer +import net.minecraft.client.renderer.entity.PhantomRenderer +import net.minecraft.client.renderer.entity.PillagerRenderer +import net.minecraft.client.renderer.entity.PolarBearRenderer +import net.minecraft.client.renderer.entity.SalmonRenderer +import net.minecraft.client.renderer.entity.SilverfishRenderer +import net.minecraft.client.renderer.entity.SkeletonRenderer +import net.minecraft.client.renderer.entity.SlimeRenderer +import net.minecraft.client.renderer.entity.SnowGolemRenderer +import net.minecraft.client.renderer.entity.SpiderRenderer +import net.minecraft.client.renderer.entity.VexRenderer +import net.minecraft.client.renderer.entity.VillagerRenderer +import net.minecraft.client.renderer.entity.VindicatorRenderer +import net.minecraft.client.renderer.entity.WitchRenderer +import net.minecraft.client.renderer.entity.WitherSkeletonRenderer +import net.minecraft.client.renderer.entity.WolfRenderer +import net.minecraft.client.renderer.entity.ZombieRenderer +import net.minecraft.world.entity.ambient.Bat +import net.minecraft.world.entity.animal.Chicken +import net.minecraft.world.entity.animal.Cod +import net.minecraft.world.entity.animal.Cow +import net.minecraft.world.entity.animal.IronGolem +import net.minecraft.world.entity.animal.PolarBear +import net.minecraft.world.entity.animal.Salmon +import net.minecraft.world.entity.animal.SnowGolem +import net.minecraft.world.entity.animal.Wolf +import net.minecraft.world.entity.monster.AbstractSkeleton +import net.minecraft.world.entity.monster.Blaze +import net.minecraft.world.entity.monster.CaveSpider +import net.minecraft.world.entity.monster.Creeper +import net.minecraft.world.entity.monster.EnderMan +import net.minecraft.world.entity.monster.Evoker +import net.minecraft.world.entity.monster.Ghast +import net.minecraft.world.entity.monster.Guardian +import net.minecraft.world.entity.monster.Illusioner +import net.minecraft.world.entity.monster.Phantom +import net.minecraft.world.entity.monster.Pillager +import net.minecraft.world.entity.monster.Silverfish +import net.minecraft.world.entity.monster.Skeleton +import net.minecraft.world.entity.monster.Slime +import net.minecraft.world.entity.monster.SpellcasterIllager +import net.minecraft.world.entity.monster.Spider +import net.minecraft.world.entity.monster.Vex +import net.minecraft.world.entity.monster.Vindicator +import net.minecraft.world.entity.monster.Witch +import net.minecraft.world.entity.monster.WitherSkeleton +import net.minecraft.world.entity.monster.Zombie +import net.minecraft.world.entity.npc.Villager + +/** 由 tools/entity_port/generate.mjs 生成:批量实体渲染器(原版模型换贴图 + 基岩模型通用渲染) */ +class AngryChickenGeneratedRenderer(context: EntityRendererProvider.Context) : ChickenRenderer(context) { + override fun getTextureLocation(entity: Chicken): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/angry_chicken.png") + } +} +class ArcherGeneratedRenderer(context: EntityRendererProvider.Context) : PillagerRenderer(context) { + override fun getTextureLocation(entity: Pillager): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/archer.png") + } +} +class AshBlazeGeneratedRenderer(context: EntityRendererProvider.Context) : BlazeRenderer(context) { + override fun getTextureLocation(entity: Blaze): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ash_blaze.png") + } +} +class AshPufferfishGeneratedRenderer(context: EntityRendererProvider.Context) : CodRenderer(context) { + override fun getTextureLocation(entity: Cod): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ash_pufferfish.png") + } +} +class BabyEnderDragonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/baby_ender_dragon.png") + } +} +class BatChargerGeneratedRenderer(context: EntityRendererProvider.Context) : BatRenderer(context) { + override fun getTextureLocation(entity: Bat): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/bat_charger.png") + } +} +class BloodZombieGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/blood_zombie.png") + } +} +class BomberGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/bomber.png") + } +} +class BrownBearGeneratedRenderer(context: EntityRendererProvider.Context) : PolarBearRenderer(context) { + override fun getTextureLocation(entity: PolarBear): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/brown_bear.png") + } +} +class CarnagerGeneratedRenderer(context: EntityRendererProvider.Context) : VindicatorRenderer(context) { + override fun getTextureLocation(entity: Vindicator): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/carnager.png") + } +} +class CrimsonSlimeGeneratedRenderer(context: EntityRendererProvider.Context) : SlimeRenderer(context) { + override fun getTextureLocation(entity: Slime): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/crimson_slime.png") + } +} +class DarkSnowManGeneratedRenderer(context: EntityRendererProvider.Context) : SnowGolemRenderer(context) { + override fun getTextureLocation(entity: SnowGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/dark_snow_man.png") + } +} +class DoctorGeneratedRenderer(context: EntityRendererProvider.Context) : VillagerRenderer(context) { + override fun getTextureLocation(entity: Villager): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/doctor.png") + } +} +class ElfOfAshGeneratedRenderer(context: EntityRendererProvider.Context) : VexRenderer(context) { + override fun getTextureLocation(entity: Vex): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/elf_of_ash.png") + } +} +class ElfOfChaosGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/elf_of_chaos.png") + } +} +class ElfOfDeepGeneratedRenderer(context: EntityRendererProvider.Context) : VexRenderer(context) { + override fun getTextureLocation(entity: Vex): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/elf_of_deep.png") + } +} +class ElfOfDustGeneratedRenderer(context: EntityRendererProvider.Context) : VexRenderer(context) { + override fun getTextureLocation(entity: Vex): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/elf_of_dust.png") + } +} +class EnchantArmorGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/enchant_armor.png") + } +} +class EnchantArmorByBossGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/enchant_armor_by_boss.png") + } +} +class EnchantDiamondArmorGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/enchant_diamond_armor.png") + } +} +class EnchantIllagerGeneratedRenderer(context: EntityRendererProvider.Context) : EvokerRenderer(context) { + override fun getTextureLocation(entity: SpellcasterIllager): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/enchant_illager.png") + } +} +class EnchantIllager1GeneratedRenderer(context: EntityRendererProvider.Context) : EvokerRenderer(context) { + override fun getTextureLocation(entity: SpellcasterIllager): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/enchant_illager_1.png") + } +} +class EnchantIllager2GeneratedRenderer(context: EntityRendererProvider.Context) : VindicatorRenderer(context) { + override fun getTextureLocation(entity: Vindicator): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/enchant_illager_2.png") + } +} +class EndStoneGolemGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/end_stone_golem.png") + } +} +class EnderWitchGeneratedRenderer(context: EntityRendererProvider.Context) : WitchRenderer(context) { + override fun getTextureLocation(entity: Witch): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ender_witch.png") + } +} +class EnderWitchPuppetGeneratedRenderer(context: EntityRendererProvider.Context) : WitchRenderer(context) { + override fun getTextureLocation(entity: Witch): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ender_witch_puppet.png") + } +} +class EverlastingWinterGhast1GeneratedRenderer(context: EntityRendererProvider.Context) : GhastRenderer(context) { + override fun getTextureLocation(entity: Ghast): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/everlasting_winter_ghast_1.png") + } +} +class EvilSnowManGeneratedRenderer(context: EntityRendererProvider.Context) : SnowGolemRenderer(context) { + override fun getTextureLocation(entity: SnowGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/evil_snow_man.png") + } +} +class FireStormGeneratedRenderer(context: EntityRendererProvider.Context) : BlazeRenderer(context) { + override fun getTextureLocation(entity: Blaze): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/fire_storm.png") + } +} +class FriendlySpiderGeneratedRenderer(context: EntityRendererProvider.Context) : SpiderRenderer(context) { + override fun getTextureLocation(entity: Spider): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/friendly_spider.png") + } +} +class FrozenGhastGeneratedRenderer(context: EntityRendererProvider.Context) : GhastRenderer(context) { + override fun getTextureLocation(entity: Ghast): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/frozen_ghast.png") + } +} +class FrozenManGeneratedRenderer(context: EntityRendererProvider.Context) : SnowGolemRenderer(context) { + override fun getTextureLocation(entity: SnowGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/frozen_man.png") + } +} +class FrozenSpiderGeneratedRenderer(context: EntityRendererProvider.Context) : SpiderRenderer(context) { + override fun getTextureLocation(entity: Spider): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/frozen_spider.png") + } +} +class GargoyleGeneratedRenderer(context: EntityRendererProvider.Context) : BatRenderer(context) { + override fun getTextureLocation(entity: Bat): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/gargoyle.png") + } +} +class GingerbreadManByTotemGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { +} +class IceBatGeneratedRenderer(context: EntityRendererProvider.Context) : BatRenderer(context) { + override fun getTextureLocation(entity: Bat): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ice_bat.png") + } +} +class IceBlazeGeneratedRenderer(context: EntityRendererProvider.Context) : BlazeRenderer(context) { + override fun getTextureLocation(entity: Blaze): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ice_blaze.png") + } +} +class IceCreeperGeneratedRenderer(context: EntityRendererProvider.Context) : CreeperRenderer(context) { + override fun getTextureLocation(entity: Creeper): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ice_creeper.png") + } +} +class IceZombieGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/ice_zombie.png") + } +} +class IllusionZombieGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/illusion_zombie.png") + } +} +class IllusionerGeneratedRenderer(context: EntityRendererProvider.Context) : IllusionerRenderer(context) { + override fun getTextureLocation(entity: Illusioner): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/illusioner.png") + } +} +class IllusionerPuppetGeneratedRenderer(context: EntityRendererProvider.Context) : IllusionerRenderer(context) { + override fun getTextureLocation(entity: Illusioner): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/illusioner_puppet.png") + } +} +class JungleSpiderGeneratedRenderer(context: EntityRendererProvider.Context) : CaveSpiderRenderer(context) { + override fun getTextureLocation(entity: CaveSpider): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/jungle_spider.png") + } +} +class KingOfPillagerGeneratedRenderer(context: EntityRendererProvider.Context) : PillagerRenderer(context) { + override fun getTextureLocation(entity: Pillager): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/king_of_pillager.png") + } +} +class LifeInsectGeneratedRenderer(context: EntityRendererProvider.Context) : SilverfishRenderer(context) { + override fun getTextureLocation(entity: Silverfish): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/life_insect.png") + } +} +class LittleBatGeneratedRenderer(context: EntityRendererProvider.Context) : BatRenderer(context) { + override fun getTextureLocation(entity: Bat): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/little_bat.png") + } +} +class LurkSkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/lurk_skeleton.png") + } +} +class LurkZombieGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/lurk_zombie.png") + } +} +class MummyGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/mummy.png") + } +} +class MummySkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/mummy_skeleton.png") + } +} +class MurlocGeneratedRenderer(context: EntityRendererProvider.Context) : GuardianRenderer(context) { + override fun getTextureLocation(entity: Guardian): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/murloc.png") + } +} +class MushroomZombieGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/mushroom_zombie.png") + } +} +class MysticalSkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/mystical_skeleton.png") + } +} +class NetherCreeperGeneratedRenderer(context: EntityRendererProvider.Context) : CreeperRenderer(context) { + override fun getTextureLocation(entity: Creeper): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/nether_creeper.png") + } +} +class NetherGolemGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/nether_golem.png") + } +} +class NetherPhantomGeneratedRenderer(context: EntityRendererProvider.Context) : PhantomRenderer(context) { + override fun getTextureLocation(entity: Phantom): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/nether_phantom.png") + } +} +class NetherSkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : WitherSkeletonRenderer(context) { + override fun getTextureLocation(entity: WitherSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/nether_skeleton.png") + } +} +class NetherSkeletonWizardGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/nether_skeleton_wizard.png") + } +} +class ObsidianGolemGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/obsidian_golem.png") + } +} +class PillagerByBossGeneratedRenderer(context: EntityRendererProvider.Context) : PillagerRenderer(context) { + override fun getTextureLocation(entity: Pillager): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/pillager_by_boss.png") + } +} +class PirateGeneratedRenderer(context: EntityRendererProvider.Context) : PillagerRenderer(context) { + override fun getTextureLocation(entity: Pillager): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/pirate.png") + } +} +class PlayerGhostGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/player_ghost.png") + } +} +class PolarWolfGeneratedRenderer(context: EntityRendererProvider.Context) : WolfRenderer(context) { + override fun getTextureLocation(entity: Wolf): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/polar_wolf.png") + } +} +class PredatorsGeneratedRenderer(context: EntityRendererProvider.Context) : BatRenderer(context) { + override fun getTextureLocation(entity: Bat): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/predators.png") + } +} +class PumpkinSlimeGeneratedRenderer(context: EntityRendererProvider.Context) : SlimeRenderer(context) { + override fun getTextureLocation(entity: Slime): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/pumpkin_slime.png") + } +} +class RadiateCreeperGeneratedRenderer(context: EntityRendererProvider.Context) : CreeperRenderer(context) { + override fun getTextureLocation(entity: Creeper): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/radiate_creeper.png") + } +} +class RadiateEndermanGeneratedRenderer(context: EntityRendererProvider.Context) : EndermanRenderer(context) { + override fun getTextureLocation(entity: EnderMan): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/radiate_enderman.png") + } +} +class RadiateSkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/radiate_skeleton.png") + } +} +class RadiateSpiderGeneratedRenderer(context: EntityRendererProvider.Context) : CaveSpiderRenderer(context) { + override fun getTextureLocation(entity: CaveSpider): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/radiate_spider.png") + } +} +class RealSoulGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/real_soul.png") + } +} +class RumorerGeneratedRenderer(context: EntityRendererProvider.Context) : CowRenderer(context) { + override fun getTextureLocation(entity: Cow): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/rumorer.png") + } +} +class SardineGeneratedRenderer(context: EntityRendererProvider.Context) : CodRenderer(context) { + override fun getTextureLocation(entity: Cod): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/sardine.png") + } +} +class ShadowArcherGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/shadow_archer.png") + } +} +class ShadowCreeperGeneratedRenderer(context: EntityRendererProvider.Context) : CreeperRenderer(context) { + override fun getTextureLocation(entity: Creeper): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/shadow_creeper.png") + } +} +class ShadowOfSeaGeneratedRenderer(context: EntityRendererProvider.Context) : PhantomRenderer(context) { + override fun getTextureLocation(entity: Phantom): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/shadow_of_sea.png") + } +} +class ShadowSkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/shadow_skeleton.png") + } +} +class ShadowSkeletonPuppetGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/shadow_skeleton_puppet.png") + } +} +class ShadowZombieGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/shadow_zombie.png") + } +} +class ShadowZombiePuppetGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/shadow_zombie_puppet.png") + } +} +class SimpleGliderGeneratedRenderer(context: EntityRendererProvider.Context) : ChickenRenderer(context) { + override fun getTextureLocation(entity: Chicken): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/simple_glider.png") + } +} +class SkeletonAssassinGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/skeleton_assassin.png") + } +} +class SkeletonKnightGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/skeleton_knight.png") + } +} +class SkeletonKnightCommanderGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/skeleton_knight_commander.png") + } +} +class SkeletonWarriorGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/skeleton_warrior.png") + } +} +class SkeletonWizardGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/skeleton_wizard.png") + } +} +class SoldierGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { +} +class SonOfChaosGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/son_of_chaos.png") + } +} +class SonOfNatureGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/son_of_nature.png") + } +} +class SoulGeneratedRenderer(context: EntityRendererProvider.Context) : VexRenderer(context) { + override fun getTextureLocation(entity: Vex): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/soul.png") + } +} +class SoulBlazeGeneratedRenderer(context: EntityRendererProvider.Context) : BlazeRenderer(context) { + override fun getTextureLocation(entity: Blaze): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/soul_blaze.png") + } +} +class SoulInsectGeneratedRenderer(context: EntityRendererProvider.Context) : SilverfishRenderer(context) { + override fun getTextureLocation(entity: Silverfish): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/soul_insect.png") + } +} +class SoulSkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/soul_skeleton.png") + } +} +class SoulZombieGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/soul_zombie.png") + } +} +class StarGeneratedRenderer(context: EntityRendererProvider.Context) : BlazeRenderer(context) { + override fun getTextureLocation(entity: Blaze): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/star.png") + } +} +class StoneGolemGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/stone_golem.png") + } +} +class SwampDrownedGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/swamp_drowned.png") + } +} +class SwampGolemGeneratedRenderer(context: EntityRendererProvider.Context) : IronGolemRenderer(context) { + override fun getTextureLocation(entity: IronGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/swamp_golem.png") + } +} +class TntCreeperGeneratedRenderer(context: EntityRendererProvider.Context) : CreeperRenderer(context) { + override fun getTextureLocation(entity: Creeper): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/tnt_creeper.png") + } +} +class TntSnowManGeneratedRenderer(context: EntityRendererProvider.Context) : SnowGolemRenderer(context) { + override fun getTextureLocation(entity: SnowGolem): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/tnt_snow_man.png") + } +} +class VampireBatGeneratedRenderer(context: EntityRendererProvider.Context) : BatRenderer(context) { + override fun getTextureLocation(entity: Bat): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/vampire_bat.png") + } +} +class VampireBatByBossGeneratedRenderer(context: EntityRendererProvider.Context) : BatRenderer(context) { + override fun getTextureLocation(entity: Bat): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/vampire_bat_by_boss.png") + } +} +class VengefulGhostGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/vengeful_ghost.png") + } +} +class VindicatorByBossGeneratedRenderer(context: EntityRendererProvider.Context) : VindicatorRenderer(context) { + override fun getTextureLocation(entity: Vindicator): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/vindicator_by_boss.png") + } +} +class WarpedSkeletonGeneratedRenderer(context: EntityRendererProvider.Context) : SkeletonRenderer(context) { + override fun getTextureLocation(entity: AbstractSkeleton): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/warped_skeleton.png") + } +} +class WatcherGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/watcher.png") + } +} +class ZombieFishGeneratedRenderer(context: EntityRendererProvider.Context) : SalmonRenderer(context) { + override fun getTextureLocation(entity: Salmon): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/zombie_fish.png") + } +} +class ZombieSummonerGeneratedRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE + companion object { + val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/zombie_summoner.png") + } +} +object GeneratedMobClient { + @JvmStatic + fun registerAll() { + EntityRenderers.register(GeneratedMobs.ANGRY_CHICKEN.get(), ::AngryChickenGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ARCHER.get(), ::ArcherGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ASH_BLAZE.get(), ::AshBlazeGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ASH_PUFFERFISH.get(), ::AshPufferfishGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.BABY_ENDER_DRAGON.get(), ::BabyEnderDragonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.BAT_CHARGER.get(), ::BatChargerGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.BLOOD_ZOMBIE.get(), ::BloodZombieGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.BOMBER.get(), ::BomberGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.BROWN_BEAR.get(), ::BrownBearGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.CARNAGER.get(), ::CarnagerGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.CRIMSON_SLIME.get(), ::CrimsonSlimeGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.DARK_SNOW_MAN.get(), ::DarkSnowManGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.DOCTOR.get(), ::DoctorGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ELF_OF_ASH.get(), ::ElfOfAshGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ELF_OF_CHAOS.get(), ::ElfOfChaosGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ELF_OF_DEEP.get(), ::ElfOfDeepGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ELF_OF_DUST.get(), ::ElfOfDustGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENCHANT_ARMOR.get(), ::EnchantArmorGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENCHANT_ARMOR_BY_BOSS.get(), ::EnchantArmorByBossGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENCHANT_DIAMOND_ARMOR.get(), ::EnchantDiamondArmorGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENCHANT_ILLAGER.get(), ::EnchantIllagerGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENCHANT_ILLAGER_1.get(), ::EnchantIllager1GeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENCHANT_ILLAGER_2.get(), ::EnchantIllager2GeneratedRenderer) + EntityRenderers.register(GeneratedMobs.END_STONE_GOLEM.get(), ::EndStoneGolemGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENDER_WITCH.get(), ::EnderWitchGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ENDER_WITCH_PUPPET.get(), ::EnderWitchPuppetGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.EVERLASTING_WINTER_GHAST_1.get(), ::EverlastingWinterGhast1GeneratedRenderer) + EntityRenderers.register(GeneratedMobs.EVIL_SNOW_MAN.get(), ::EvilSnowManGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.FIRE_STORM.get(), ::FireStormGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.FRIENDLY_SPIDER.get(), ::FriendlySpiderGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.FROZEN_GHAST.get(), ::FrozenGhastGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.FROZEN_MAN.get(), ::FrozenManGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.FROZEN_SPIDER.get(), ::FrozenSpiderGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.GARGOYLE.get(), ::GargoyleGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.GINGERBREAD_MAN_BY_TOTEM.get(), ::GingerbreadManByTotemGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ICE_BAT.get(), ::IceBatGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ICE_BLAZE.get(), ::IceBlazeGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ICE_CREEPER.get(), ::IceCreeperGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ICE_ZOMBIE.get(), ::IceZombieGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ILLUSION_ZOMBIE.get(), ::IllusionZombieGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ILLUSIONER.get(), ::IllusionerGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ILLUSIONER_PUPPET.get(), ::IllusionerPuppetGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.JUNGLE_SPIDER.get(), ::JungleSpiderGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.KING_OF_PILLAGER.get(), ::KingOfPillagerGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.LIFE_INSECT.get(), ::LifeInsectGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.LITTLE_BAT.get(), ::LittleBatGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.LURK_SKELETON.get(), ::LurkSkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.LURK_ZOMBIE.get(), ::LurkZombieGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.MUMMY.get(), ::MummyGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.MUMMY_SKELETON.get(), ::MummySkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.MURLOC.get(), ::MurlocGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.MUSHROOM_ZOMBIE.get(), ::MushroomZombieGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.MYSTICAL_SKELETON.get(), ::MysticalSkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.NETHER_CREEPER.get(), ::NetherCreeperGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.NETHER_GOLEM.get(), ::NetherGolemGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.NETHER_PHANTOM.get(), ::NetherPhantomGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.NETHER_SKELETON.get(), ::NetherSkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.NETHER_SKELETON_WIZARD.get(), ::NetherSkeletonWizardGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.OBSIDIAN_GOLEM.get(), ::ObsidianGolemGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.PILLAGER_BY_BOSS.get(), ::PillagerByBossGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.PIRATE.get(), ::PirateGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.PLAYER_GHOST.get(), ::PlayerGhostGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.POLAR_WOLF.get(), ::PolarWolfGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.PREDATORS.get(), ::PredatorsGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.PUMPKIN_SLIME.get(), ::PumpkinSlimeGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.RADIATE_CREEPER.get(), ::RadiateCreeperGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.RADIATE_ENDERMAN.get(), ::RadiateEndermanGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.RADIATE_SKELETON.get(), ::RadiateSkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.RADIATE_SPIDER.get(), ::RadiateSpiderGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.REAL_SOUL.get(), ::RealSoulGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.RUMORER.get(), ::RumorerGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SARDINE.get(), ::SardineGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SHADOW_ARCHER.get(), ::ShadowArcherGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SHADOW_CREEPER.get(), ::ShadowCreeperGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SHADOW_OF_SEA.get(), ::ShadowOfSeaGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SHADOW_SKELETON.get(), ::ShadowSkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SHADOW_SKELETON_PUPPET.get(), ::ShadowSkeletonPuppetGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SHADOW_ZOMBIE.get(), ::ShadowZombieGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SHADOW_ZOMBIE_PUPPET.get(), ::ShadowZombiePuppetGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SIMPLE_GLIDER.get(), ::SimpleGliderGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SKELETON_ASSASSIN.get(), ::SkeletonAssassinGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SKELETON_KNIGHT.get(), ::SkeletonKnightGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SKELETON_KNIGHT_COMMANDER.get(), ::SkeletonKnightCommanderGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SKELETON_WARRIOR.get(), ::SkeletonWarriorGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SKELETON_WIZARD.get(), ::SkeletonWizardGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SOLDIER.get(), ::SoldierGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SON_OF_CHAOS.get(), ::SonOfChaosGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SON_OF_NATURE.get(), ::SonOfNatureGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SOUL.get(), ::SoulGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SOUL_BLAZE.get(), ::SoulBlazeGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SOUL_INSECT.get(), ::SoulInsectGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SOUL_SKELETON.get(), ::SoulSkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SOUL_ZOMBIE.get(), ::SoulZombieGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.STAR.get(), ::StarGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.STONE_GOLEM.get(), ::StoneGolemGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SWAMP_DROWNED.get(), ::SwampDrownedGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.SWAMP_GOLEM.get(), ::SwampGolemGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.TNT_CREEPER.get(), ::TntCreeperGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.TNT_SNOW_MAN.get(), ::TntSnowManGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.VAMPIRE_BAT.get(), ::VampireBatGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.VAMPIRE_BAT_BY_BOSS.get(), ::VampireBatByBossGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.VENGEFUL_GHOST.get(), ::VengefulGhostGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.VINDICATOR_BY_BOSS.get(), ::VindicatorByBossGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.WARPED_SKELETON.get(), ::WarpedSkeletonGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.WATCHER.get(), ::WatcherGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ZOMBIE_FISH.get(), ::ZombieFishGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ZOMBIE_SUMMONER.get(), ::ZombieSummonerGeneratedRenderer) + EntityRenderers.register(GeneratedMobs.ABYSSAL_CONTROLLER.get()) { context -> + BedrockMobRenderer(context, geo("abyssal_controller"), anim("abyssal_controller"), "idle", "walk", tex("abyssal_controller"), 1f) + } + EntityRenderers.register(GeneratedMobs.ABYSSAL_SHADOW.get()) { context -> + BedrockMobRenderer(context, geo("abyssal_shadow"), anim("abyssal_shadow"), "idle", "walk", tex("abyssal_shadow"), 1f) + } + EntityRenderers.register(GeneratedMobs.ASH_BOMB.get()) { context -> + BedrockMobRenderer(context, geo("ash_bomb"), anim("ash_bomb"), "idle", "walk", tex("ash_bomb"), 1f) + } + EntityRenderers.register(GeneratedMobs.ASH_HORSE.get()) { context -> + BedrockMobRenderer(context, geo("ash_horse"), anim("ash_horse"), "idle", "walk", tex("ash_horse"), 1f) + } + EntityRenderers.register(GeneratedMobs.ASH_HORSE_HEAD.get()) { context -> + BedrockMobRenderer(context, geo("ash_horse_head"), anim("ash_horse_head"), "idle", "walk", tex("ash_horse_head"), 1f) + } + EntityRenderers.register(GeneratedMobs.ASH_KNIGHT.get()) { context -> + BedrockMobRenderer(context, geo("ash_knight"), anim("ash_knight"), "idle", "walk", tex("ash_knight"), 1f) + } + EntityRenderers.register(GeneratedMobs.ASH_KNIGHT_HEAD.get()) { context -> + BedrockMobRenderer(context, geo("ash_knight_head"), anim("ash_knight_head"), "idle", "walk", tex("ash_knight_head"), 1f) + } + EntityRenderers.register(GeneratedMobs.ASH_SWORD.get()) { context -> + BedrockMobRenderer(context, geo("ash_sword"), anim("ash_sword"), "idle", "walk", tex("ash_sword"), 1f) + } + EntityRenderers.register(GeneratedMobs.ASH_SWORD_PHANTOM.get()) { context -> + BedrockMobRenderer(context, geo("ash_sword_phantom"), anim("ash_sword_phantom"), "idle", "walk", tex("ash_sword_phantom"), 1f) + } + EntityRenderers.register(GeneratedMobs.BLACKSTONE_THORN.get()) { context -> + BedrockMobRenderer(context, geo("blackstone_thorn"), anim("blackstone_thorn"), "idle", "walk", tex("blackstone_thorn"), 1f) + } + EntityRenderers.register(GeneratedMobs.CHEST_MONSTER.get()) { context -> + BedrockMobRenderer(context, geo("chest_monster"), anim("chest_monster"), "idle", "walk", tex("chest_monster"), 1f) + } + EntityRenderers.register(GeneratedMobs.CHESTER.get()) { context -> + BedrockMobRenderer(context, geo("chester"), anim("chester"), "idle", "walk", tex("chester"), 1f) + } + EntityRenderers.register(GeneratedMobs.CLAM.get()) { context -> + BedrockMobRenderer(context, geo("clam"), anim("clam"), "idle", "walk", tex("clam"), 1f) + } + EntityRenderers.register(GeneratedMobs.CRAB.get()) { context -> + BedrockMobRenderer(context, geo("crab"), anim("crab"), "idle", "walk", tex("crab"), 1f) + } + EntityRenderers.register(GeneratedMobs.DARK_WEREWOLF.get()) { context -> + BedrockMobRenderer(context, geo("dark_werewolf"), anim("dark_werewolf"), "idle", "walk", tex("dark_werewolf"), 1.4f) + } + EntityRenderers.register(GeneratedMobs.ENDER_SNAIL.get()) { context -> + BedrockMobRenderer(context, geo("ender_snail"), anim("ender_snail"), "idle", "walk", tex("ender_snail"), 1f) + } + EntityRenderers.register(GeneratedMobs.ENDER_SNAKE.get()) { context -> + BedrockMobRenderer(context, geo("ender_snake"), anim("ender_snake"), "idle", "walk", tex("ender_snake"), 1f) + } + EntityRenderers.register(GeneratedMobs.ENTITY_SOUL.get()) { context -> + BedrockMobRenderer(context, geo("entity_soul"), anim("entity_soul"), "idle", "walk", tex("entity_soul"), 1f) + } + EntityRenderers.register(GeneratedMobs.ENTITY_SOUL_1.get()) { context -> + BedrockMobRenderer(context, geo("entity_soul_1"), anim("entity_soul_1"), "idle", "walk", tex("entity_soul_1"), 1f) + } + EntityRenderers.register(GeneratedMobs.ESCAPED_SOUL_ENTITY.get()) { context -> + BedrockMobRenderer(context, geo("escaped_soul_entity"), anim("escaped_soul_entity"), "idle", "walk", tex("escaped_soul_entity"), 1f) + } + EntityRenderers.register(GeneratedMobs.EVERLASTING_WINTER_GHAST.get()) { context -> + BedrockMobRenderer(context, geo("everlasting_winter_ghast"), anim("everlasting_winter_ghast"), "idle", "walk", tex("everlasting_winter_ghast"), 1f) + } + EntityRenderers.register(GeneratedMobs.EVERLASTING_WINTER_SHADOW.get()) { context -> + BedrockMobRenderer(context, geo("everlasting_winter_shadow"), anim("everlasting_winter_shadow"), "idle", "walk", tex("everlasting_winter_shadow"), 1f) + } + EntityRenderers.register(GeneratedMobs.FRIENDLY_LITTLE_SOUL.get()) { context -> + BedrockMobRenderer(context, geo("friendly_little_soul"), anim("friendly_little_soul"), "idle", "walk", tex("friendly_little_soul"), 1f) + } + EntityRenderers.register(GeneratedMobs.FROZEN_HEART.get()) { context -> + BedrockMobRenderer(context, geo("frozen_heart"), anim("frozen_heart"), "idle", "walk", tex("frozen_heart"), 1f) + } + EntityRenderers.register(GeneratedMobs.FROZEN_HEART_SLEEPING.get()) { context -> + BedrockMobRenderer(context, geo("frozen_heart_sleeping"), anim("frozen_heart_sleeping"), "idle", "walk", tex("frozen_heart_sleeping"), 1f) + } + EntityRenderers.register(GeneratedMobs.FROZEN_SHADOW.get()) { context -> + BedrockMobRenderer(context, geo("frozen_shadow"), anim("frozen_shadow"), "idle", "walk", tex("frozen_shadow"), 1f) + } + EntityRenderers.register(GeneratedMobs.GHOST_DIAMOND_AXE.get()) { context -> + BedrockMobRenderer(context, geo("ghost_diamond_axe"), anim("ghost_diamond_axe"), "idle", "walk", tex("ghost_diamond_axe"), 1f) + } + EntityRenderers.register(GeneratedMobs.GHOST_DIAMOND_STAFF.get()) { context -> + BedrockMobRenderer(context, geo("ghost_diamond_staff"), anim("ghost_diamond_staff"), "idle", "walk", tex("ghost_diamond_staff"), 1f) + } + EntityRenderers.register(GeneratedMobs.GHOST_DIAMOND_SWORD.get()) { context -> + BedrockMobRenderer(context, geo("ghost_diamond_sword"), anim("ghost_diamond_sword"), "idle", "walk", tex("ghost_diamond_sword"), 1f) + } + EntityRenderers.register(GeneratedMobs.GHOST_IRON_AXE.get()) { context -> + BedrockMobRenderer(context, geo("ghost_iron_axe"), anim("ghost_iron_axe"), "idle", "walk", tex("ghost_iron_axe"), 1f) + } + EntityRenderers.register(GeneratedMobs.GHOST_IRON_SWORD.get()) { context -> + BedrockMobRenderer(context, geo("ghost_iron_sword"), anim("ghost_iron_sword"), "idle", "walk", tex("ghost_iron_sword"), 1f) + } + EntityRenderers.register(GeneratedMobs.GHOST_WOODEN_STAFF.get()) { context -> + BedrockMobRenderer(context, geo("ghost_wooden_staff"), anim("ghost_wooden_staff"), "idle", "walk", tex("ghost_wooden_staff"), 1f) + } + EntityRenderers.register(GeneratedMobs.GHOST_WOODEN_SWORD.get()) { context -> + BedrockMobRenderer(context, geo("ghost_wooden_sword"), anim("ghost_wooden_sword"), "idle", "walk", tex("ghost_wooden_sword"), 1f) + } + EntityRenderers.register(GeneratedMobs.GOBLIN.get()) { context -> + BedrockMobRenderer(context, geo("goblin"), anim("goblin"), "idle", "walk", tex("goblin"), 1f) + } + EntityRenderers.register(GeneratedMobs.GOBLIN_SNIPER.get()) { context -> + BedrockMobRenderer(context, geo("goblin_sniper"), anim("goblin_sniper"), "idle", "walk", tex("goblin_sniper"), 1f) + } + EntityRenderers.register(GeneratedMobs.GOBLIN_WIZARD.get()) { context -> + BedrockMobRenderer(context, geo("goblin_wizard"), anim("goblin_wizard"), "idle", "walk", tex("goblin_wizard"), 1f) + } + EntityRenderers.register(GeneratedMobs.HOST_OF_DEEP.get()) { context -> + BedrockMobRenderer(context, geo("host_of_deep"), anim("host_of_deep"), "idle", "walk", tex("host_of_deep"), 1f) + } + EntityRenderers.register(GeneratedMobs.ICE_MONSTER.get()) { context -> + BedrockMobRenderer(context, geo("ice_monster"), anim("ice_monster"), "idle", "walk", tex("ice_monster"), 1f) + } + EntityRenderers.register(GeneratedMobs.ICE_SPIRIT.get()) { context -> + BedrockMobRenderer(context, geo("ice_spirit"), anim("ice_spirit"), "idle", "walk", tex("ice_spirit"), 1f) + } + EntityRenderers.register(GeneratedMobs.ICE_THORN.get()) { context -> + BedrockMobRenderer(context, geo("ice_thorn"), anim("ice_thorn"), "idle", "walk", tex("ice_thorn"), 1f) + } + EntityRenderers.register(GeneratedMobs.ICE_WIZARD.get()) { context -> + BedrockMobRenderer(context, geo("ice_wizard"), anim("ice_wizard"), "idle", "walk", tex("ice_wizard"), 1f) + } + EntityRenderers.register(GeneratedMobs.LAVA_LIZARD.get()) { context -> + BedrockMobRenderer(context, geo("lava_lizard"), anim("lava_lizard"), "idle", "walk", tex("lava_lizard"), 1f) + } + EntityRenderers.register(GeneratedMobs.LITTLE_SOUL.get()) { context -> + BedrockMobRenderer(context, geo("little_soul"), anim("little_soul"), "idle", "walk", tex("little_soul"), 1f) + } + EntityRenderers.register(GeneratedMobs.MURLOC_WIZARD.get()) { context -> + BedrockMobRenderer(context, geo("murloc_wizard"), anim("murloc_wizard"), "idle", "walk", tex("murloc_wizard"), 1f) + } + EntityRenderers.register(GeneratedMobs.MUSHROOM_MONSTER.get()) { context -> + BedrockMobRenderer(context, geo("mushroom_monster"), anim("mushroom_monster"), "idle", "walk", tex("mushroom_monster"), 1f) + } + EntityRenderers.register(GeneratedMobs.NAUTILUS.get()) { context -> + BedrockMobRenderer(context, geo("nautilus"), anim("nautilus"), "idle", "walk", tex("nautilus"), 1f) + } + EntityRenderers.register(GeneratedMobs.SAUCER.get()) { context -> + BedrockMobRenderer(context, geo("saucer"), anim("saucer"), "idle", "walk", tex("saucer"), 1f) + } + EntityRenderers.register(GeneratedMobs.SEA_URCHIN.get()) { context -> + BedrockMobRenderer(context, geo("sea_urchin"), anim("sea_urchin"), "idle", "walk", tex("sea_urchin"), 1.2f) + } + EntityRenderers.register(GeneratedMobs.SHADOW_OF_DEEP.get()) { context -> + BedrockMobRenderer(context, geo("shadow_of_deep"), anim("shadow_of_deep"), "idle", "walk", tex("shadow_of_deep"), 1f) + } + EntityRenderers.register(GeneratedMobs.SHADOW_SOUL_1.get()) { context -> + BedrockMobRenderer(context, geo("shadow_soul_1"), anim("shadow_soul_1"), "idle", "walk", tex("shadow_soul_1"), 1f) + } + EntityRenderers.register(GeneratedMobs.SHADOW_SOUL_2.get()) { context -> + BedrockMobRenderer(context, geo("shadow_soul_2"), anim("shadow_soul_2"), "idle", "walk", tex("shadow_soul_2"), 1f) + } + EntityRenderers.register(GeneratedMobs.SOUL_SOLDIER.get()) { context -> + BedrockMobRenderer(context, geo("soul_soldier"), anim("soul_soldier"), "idle", "walk", tex("soul_soldier"), 1f) + } + EntityRenderers.register(GeneratedMobs.WEREWOLF.get()) { context -> + BedrockMobRenderer(context, geo("werewolf"), anim("werewolf"), "idle", "walk", tex("werewolf"), 1.2f) + } + } + + private fun geo(name: String) = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "bedrock/models/entity/$name.geometry.json") + private fun anim(name: String) = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "bedrock/animations/entity/$name.animation.json") + private fun tex(name: String) = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/$name.png") +} diff --git a/src/main/java/com/dec/decisland/client/renderer/LeavesGolemModel.kt b/src/main/java/com/dec/decisland/client/renderer/LeavesGolemModel.kt new file mode 100644 index 0000000..bb68d61 --- /dev/null +++ b/src/main/java/com/dec/decisland/client/renderer/LeavesGolemModel.kt @@ -0,0 +1,81 @@ +package com.dec.decisland.client.renderer + +import com.dec.decisland.client.bedrock.model.BedrockAnimationClip +import com.dec.decisland.client.bedrock.model.BedrockAnimatedEntityModel +import com.dec.decisland.client.bedrock.model.BedrockEntityAssets +import com.dec.decisland.entity.custom.LeavesGolem +import net.minecraft.resources.ResourceLocation + +/** + * 绿叶精华 Boss 模型:基岩版几何体 + 4 个动画剪辑(move/attack/roar/spawn)。 + * + * setupAnim 按战斗阶段切换剪辑: + * - SPAWN → spawn(破土动画,从阶段开始计时) + * - ROAR → roar(咆哮动画,从阶段开始计时) + * - MELEE → 命中后 0.6 秒内播放 attack,移动时播放 move(按 limbSwing 驱动), + * 静止时保持绑定姿态(不甩胳膊) + */ +class LeavesGolemModel : BedrockAnimatedEntityModel( + BedrockEntityAssets.geometry(GEOMETRY_LOCATION), + BedrockEntityAssets.animation(ANIMATION_LOCATION, MOVE_CLIP), +) { + private val moveClip = BedrockEntityAssets.animation(ANIMATION_LOCATION, MOVE_CLIP) + private val attackClip = BedrockEntityAssets.animation(ANIMATION_LOCATION, ATTACK_CLIP) + private val roarClip = BedrockEntityAssets.animation(ANIMATION_LOCATION, ROAR_CLIP) + private val spawnClip = BedrockEntityAssets.animation(ANIMATION_LOCATION, SPAWN_CLIP) + + override fun setupAnim( + entity: LeavesGolem, + limbSwing: Float, + limbSwingAmount: Float, + ageInTicks: Float, + netHeadYaw: Float, + headPitch: Float, + ) { + when (entity.phase) { + LeavesGolem.Phase.SPAWN -> + applyClip(spawnClip, (ageInTicks - entity.stateStartTick) / 20.0f) + LeavesGolem.Phase.ROAR -> + applyClip(roarClip, (ageInTicks - entity.stateStartTick) / 20.0f) + LeavesGolem.Phase.MELEE -> { + val sinceAttack = ageInTicks - entity.attackStartTick + if (entity.attackStartTick > 0 && sinceAttack < ATTACK_WINDOW_TICKS) { + applyClip(attackClip, sinceAttack / 20.0f) + } else if (limbSwingAmount > 0.01f) { + applyClip(moveClip, limbSwing * LIMB_SWING_SCALE) + } else { + applyClip(idleClip, 0.0f) + } + } + } + } + + companion object { + private const val MOVE_CLIP = "animation.leaves_golem.move" + private const val ATTACK_CLIP = "animation.leaves_golem.attack" + private const val ROAR_CLIP = "animation.leaves_golem.roar" + private const val SPAWN_CLIP = "animation.leaves_golem.spawn" + + private const val ATTACK_WINDOW_TICKS = 12.0f // 0.6 秒 + private const val LIMB_SWING_SCALE = 0.6662f // 与原版四肢摆动频率一致 + + /** 空剪辑 = 绑定姿态(站立不动) */ + private val idleClip = BedrockAnimationClip( + name = "idle", + loop = false, + lengthSeconds = 0.0f, + boneAnimations = emptyMap(), + ) + + private val GEOMETRY_LOCATION: ResourceLocation = + ResourceLocation.fromNamespaceAndPath( + com.dec.decisland.DecIsland.MOD_ID, + "bedrock/models/entity/leaves_golem.geometry.json", + ) + private val ANIMATION_LOCATION: ResourceLocation = + ResourceLocation.fromNamespaceAndPath( + com.dec.decisland.DecIsland.MOD_ID, + "bedrock/animations/entity/leaves_golem.animation.json", + ) + } +} diff --git a/src/main/java/com/dec/decisland/client/renderer/LeavesGolemRenderer.kt b/src/main/java/com/dec/decisland/client/renderer/LeavesGolemRenderer.kt new file mode 100644 index 0000000..fd7f331 --- /dev/null +++ b/src/main/java/com/dec/decisland/client/renderer/LeavesGolemRenderer.kt @@ -0,0 +1,24 @@ +package com.dec.decisland.client.renderer + +import com.dec.decisland.DecIsland +import com.dec.decisland.entity.custom.LeavesGolem +import net.minecraft.client.renderer.entity.EntityRendererProvider +import net.minecraft.client.renderer.entity.MobRenderer +import net.minecraft.resources.ResourceLocation + +/** + * 绿叶精华 Boss 渲染器:MobRenderer + 基岩版几何体模型。 + * 动画切换逻辑在 [LeavesGolemModel.setupAnim] 中按阶段处理。 + */ +class LeavesGolemRenderer(context: EntityRendererProvider.Context) : MobRenderer( + context, + LeavesGolemModel(), + 0.9f, +) { + override fun getTextureLocation(entity: LeavesGolem): ResourceLocation = TEXTURE_LOCATION + + companion object { + private val TEXTURE_LOCATION: ResourceLocation = + ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/leaves_golem.png") + } +} diff --git a/src/main/java/com/dec/decisland/client/renderer/PumpkinBombRenderer.kt b/src/main/java/com/dec/decisland/client/renderer/PumpkinBombRenderer.kt index 0d8b62f..b839675 100644 --- a/src/main/java/com/dec/decisland/client/renderer/PumpkinBombRenderer.kt +++ b/src/main/java/com/dec/decisland/client/renderer/PumpkinBombRenderer.kt @@ -14,7 +14,7 @@ import net.minecraft.core.BlockPos import net.minecraft.resources.ResourceLocation class PumpkinBombRenderer(context: EntityRendererProvider.Context) : EntityRenderer(context) { - private val model = BedrockAnimatedEntityModel( + private val model = BedrockAnimatedEntityModel( BedrockEntityAssets.geometry(GEOMETRY_LOCATION), BedrockEntityAssets.animation(ANIMATION_LOCATION, EXPLODE_ANIMATION), ) @@ -34,6 +34,8 @@ class PumpkinBombRenderer(context: EntityRendererProvider.Context) : EntityRende packedLight: Int, ) { poseStack.pushPose() + // 模型烘焙锚点为脚底(y=24),直接渲染的实体按缩放比例补偿对齐 + poseStack.translate(0.0, -1.5 * SCALE, 0.0) poseStack.scale(SCALE, SCALE, SCALE) model.applyAnimation((entity.tickCount + partialTick) / 20.0f) val vertexConsumer = bufferSource.getBuffer(RenderType.entityCutout(TEXTURE_LOCATION)) diff --git a/src/main/java/com/dec/decisland/client/renderer/ZombieWarriorRenderer.kt b/src/main/java/com/dec/decisland/client/renderer/ZombieWarriorRenderer.kt new file mode 100644 index 0000000..4d1648a --- /dev/null +++ b/src/main/java/com/dec/decisland/client/renderer/ZombieWarriorRenderer.kt @@ -0,0 +1,17 @@ +package com.dec.decisland.client.renderer + +import com.dec.decisland.DecIsland +import net.minecraft.client.renderer.entity.EntityRendererProvider +import net.minecraft.client.renderer.entity.ZombieRenderer +import net.minecraft.world.entity.monster.Zombie +import net.minecraft.resources.ResourceLocation + +// 复用原版 ZombieRenderer(人形模型 + 行走/挥击动画),仅替换为僵尸战士贴图 +class ZombieWarriorRenderer(context: EntityRendererProvider.Context) : ZombieRenderer(context) { + override fun getTextureLocation(entity: Zombie): ResourceLocation = TEXTURE_LOCATION + + companion object { + val TEXTURE_LOCATION: ResourceLocation = + ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/zombie_warrior.png") + } +} diff --git a/src/main/java/com/dec/decisland/datagen/Lang/BedrockLangResources.kt b/src/main/java/com/dec/decisland/datagen/Lang/BedrockLangResources.kt index 6894757..5b3b799 100644 --- a/src/main/java/com/dec/decisland/datagen/Lang/BedrockLangResources.kt +++ b/src/main/java/com/dec/decisland/datagen/Lang/BedrockLangResources.kt @@ -26,6 +26,10 @@ object BedrockLangResources { @JvmStatic fun itemName(locale: String, name: String): String? = get(locale, javaItemKey(name)) + @JvmStatic + fun spawnEggName(locale: String, name: String): String? = + get(locale, "item.spawn_egg.entity.dec:$name.name") + @JvmStatic fun blockName(locale: String, name: String): String? = get(locale, javaBlockKey(name)) diff --git a/src/main/java/com/dec/decisland/datagen/ModBlockLootTablesProvider.kt b/src/main/java/com/dec/decisland/datagen/ModBlockLootTablesProvider.kt index 3fefc81..47bde8f 100644 --- a/src/main/java/com/dec/decisland/datagen/ModBlockLootTablesProvider.kt +++ b/src/main/java/com/dec/decisland/datagen/ModBlockLootTablesProvider.kt @@ -21,6 +21,7 @@ import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePrope import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator import net.minecraft.world.level.storage.loot.LootPool import net.minecraft.world.level.storage.loot.providers.number.ConstantValue +import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition import net.minecraft.advancements.critereon.StatePropertiesPredicate import java.util.function.Function @@ -69,6 +70,41 @@ class ModBlockLootTablesProvider(registries: HolderLookup.Provider) : super.add(block, createSingleItemTableWithSilkTouch(block, item, UniformGenerator.between(min, max))) } + fun addNoDrop(block: Block) { + super.add(block, LootTable.lootTable()) + } + + fun addChanceDrop( + block: Block, + item: ItemLike, + chance: Float, + ) { + super.add( + block, + LootTable.lootTable().withPool( + LootPool.lootPool() + .setRolls(ConstantValue.exactly(1.0f)) + .add(LootItem.lootTableItem(item)) + .`when`(LootItemRandomChanceCondition.randomChance(chance)), + ), + ) + } + + fun addWeightedDrop( + block: Block, + entries: List>, + ) { + val pool = LootPool.lootPool().setRolls(ConstantValue.exactly(1.0f)) + entries.forEach { (item, weight, maxCount) -> + val entry = LootItem.lootTableItem(item).setWeight(weight) + if (maxCount > 1) { + entry.apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0f, maxCount.toFloat()))) + } + pool.add(entry) + } + super.add(block, LootTable.lootTable().withPool(pool)) + } + override fun add(block: Block, factory: Function) { super.add(block, factory) } diff --git a/src/main/java/com/dec/decisland/datagen/ModLangProvider.kt b/src/main/java/com/dec/decisland/datagen/ModLangProvider.kt index b7c4f54..ea6dcdb 100644 --- a/src/main/java/com/dec/decisland/datagen/ModLangProvider.kt +++ b/src/main/java/com/dec/decisland/datagen/ModLangProvider.kt @@ -3,6 +3,7 @@ package com.dec.decisland.datagen import com.dec.decisland.DecIsland import com.dec.decisland.block.ModBlocks import com.dec.decisland.effect.ModEffects +import com.dec.decisland.entity.GeneratedMobs import com.dec.decisland.item.ModCreativeModeTabs import com.dec.decisland.item.ModItems import com.dec.decisland.datagen.Lang.BedrockLangResources @@ -39,6 +40,18 @@ abstract class ModLangProvider protected constructor( translations["itemGroup.${config.name}"] = translation } + // 生成生物刷怪蛋:基岩版 spawn_egg 条目优先,缺失时用实体名生成(生成 哥布林法师 / Spawn Goblin Wizard) + GeneratedMobs.SPAWN_EGGS.entries.forEach { entry -> + val entityName = entry.id.path.removeSuffix("_spawn_egg") + val eggName = BedrockLangResources.spawnEggName(locale, entityName) + ?: translations["entity.${DecIsland.MOD_ID}.$entityName"]?.let { base -> + if (locale == "zh_cn") "生成$base" else "Spawn $base" + } + if (eggName != null) { + translations["item.${DecIsland.MOD_ID}.${entry.id.path}"] = eggName + } + } + when (locale) { "en_us" -> translations[ModEffects.DIZZINESS.get().descriptionId] = "Dizziness" "zh_cn" -> translations[ModEffects.DIZZINESS.get().descriptionId] = "眩晕" diff --git a/src/main/java/com/dec/decisland/entity/GeneratedMobs.kt b/src/main/java/com/dec/decisland/entity/GeneratedMobs.kt new file mode 100644 index 0000000..2d4896a --- /dev/null +++ b/src/main/java/com/dec/decisland/entity/GeneratedMobs.kt @@ -0,0 +1,2319 @@ +package com.dec.decisland.entity + +import com.dec.decisland.DecIsland +import com.dec.decisland.entity.custom.BedrockMob +import com.dec.decisland.entity.custom.MobConfig +import net.minecraft.core.registries.Registries +import net.minecraft.world.entity.Entity +import net.minecraft.world.entity.LivingEntity +import net.minecraft.world.level.Level +import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.MobCategory +import net.minecraft.world.entity.SpawnPlacementTypes +import net.minecraft.world.entity.ai.attributes.AttributeSupplier +import net.minecraft.world.entity.ai.attributes.Attributes +import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.entity.Mob +import net.minecraft.world.item.Item +import net.minecraft.world.level.levelgen.Heightmap +import net.neoforged.bus.api.IEventBus +import net.neoforged.neoforge.common.DeferredSpawnEggItem +import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent +import net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent +import net.neoforged.neoforge.registries.DeferredHolder +import net.neoforged.neoforge.registries.DeferredItem +import net.neoforged.neoforge.registries.DeferredRegister +import java.util.function.Supplier + +/** 由 tools/entity_port/generate.mjs 生成:基岩版生物批量移植注册表 */ +object GeneratedMobs { + @JvmField + val ENTITY_TYPES: DeferredRegister> = + DeferredRegister.create(Registries.ENTITY_TYPE, DecIsland.MOD_ID) + + @JvmField + val SPAWN_EGGS: DeferredRegister.Items = + DeferredRegister.createItems(DecIsland.MOD_ID) + + private fun registerEntity( + name: String, + factory: (EntityType, Level) -> T, + category: MobCategory, + configure: EntityType.Builder.() -> Unit = {}, + ): DeferredHolder, EntityType> = + ENTITY_TYPES.register(name, Supplier { EntityType.Builder.of(factory, category).apply(configure).build(name) }) + + private val CFG_ABYSSAL_CONTROLLER = MobConfig("abyssal_controller", health = 150.0, speed = 0.080, attackDamage = 3.0, followRange = 96.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "villager", "iron_golem", "snow_golem")) + + @JvmField + val ABYSSAL_CONTROLLER: Supplier> = + registerEntity("abyssal_controller", { type, level -> BedrockMob(type, level, CFG_ABYSSAL_CONTROLLER) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ABYSSAL_CONTROLLER_EGG: DeferredItem = + SPAWN_EGGS.register("abyssal_controller_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ABYSSAL_CONTROLLER.get() }, 14147036, 16777215, Item.Properties()) + }) + + private val CFG_ABYSSAL_SHADOW = MobConfig("abyssal_shadow", health = 10.0, speed = 0.250, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager"), rangedProjectile = Supplier { ModEntities.WAVE_ENERGY.get() }) + + @JvmField + val ABYSSAL_SHADOW: Supplier> = + registerEntity("abyssal_shadow", { type, level -> BedrockMob(type, level, CFG_ABYSSAL_SHADOW) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val ABYSSAL_SHADOW_EGG: DeferredItem = + SPAWN_EGGS.register("abyssal_shadow_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ABYSSAL_SHADOW.get() }, 6983555, 10605507, Item.Properties()) + }) + + @JvmField + val ANGRY_CHICKEN: Supplier> = + registerEntity("angry_chicken", { type, level -> AngryChicken(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 0.80f) + } + + @JvmField + val ANGRY_CHICKEN_EGG: DeferredItem = + SPAWN_EGGS.register("angry_chicken_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ANGRY_CHICKEN.get() }, 14535363, 16777215, Item.Properties()) + }) + + @JvmField + val ARCHER: Supplier> = + registerEntity("archer", { type, level -> Archer(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ARCHER_EGG: DeferredItem = + SPAWN_EGGS.register("archer_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ARCHER.get() }, 7889494, 11835014, Item.Properties()) + }) + + @JvmField + val ASH_BLAZE: Supplier> = + registerEntity("ash_blaze", { type, level -> AshBlaze(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val ASH_BLAZE_EGG: DeferredItem = + SPAWN_EGGS.register("ash_blaze_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_BLAZE.get() }, 3881531, 6447457, Item.Properties()) + }) + + private val CFG_ASH_BOMB = MobConfig("ash_bomb", health = 10.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val ASH_BOMB: Supplier> = + registerEntity("ash_bomb", { type, level -> BedrockMob(type, level, CFG_ASH_BOMB) }, MobCategory.MONSTER) { + sized(1.00f, 0.50f) + } + + @JvmField + val ASH_BOMB_EGG: DeferredItem = + SPAWN_EGGS.register("ash_bomb_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_BOMB.get() }, 11687220, 16745816, Item.Properties()) + }) + + private val CFG_ASH_HORSE = MobConfig("ash_horse", health = 300.0, speed = 0.250, attackDamage = 3.0, followRange = 96.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = true, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "villager")) + + @JvmField + val ASH_HORSE: Supplier> = + registerEntity("ash_horse", { type, level -> BedrockMob(type, level, CFG_ASH_HORSE) }, MobCategory.MONSTER) { + sized(1.40f, 1.60f) + } + + @JvmField + val ASH_HORSE_EGG: DeferredItem = + SPAWN_EGGS.register("ash_horse_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_HORSE.get() }, 3680038, 6178374, Item.Properties()) + }) + + private val CFG_ASH_HORSE_HEAD = MobConfig("ash_horse_head", health = 150.0, speed = 0.080, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = true, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem")) + + @JvmField + val ASH_HORSE_HEAD: Supplier> = + registerEntity("ash_horse_head", { type, level -> BedrockMob(type, level, CFG_ASH_HORSE_HEAD) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val ASH_HORSE_HEAD_EGG: DeferredItem = + SPAWN_EGGS.register("ash_horse_head_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_HORSE_HEAD.get() }, 3680038, 6178374, Item.Properties()) + }) + + private val CFG_ASH_KNIGHT = MobConfig("ash_knight", health = 400.0, speed = 0.200, attackDamage = 3.0, followRange = 96.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = true, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "villager")) + + @JvmField + val ASH_KNIGHT: Supplier> = + registerEntity("ash_knight", { type, level -> BedrockMob(type, level, CFG_ASH_KNIGHT) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ASH_KNIGHT_EGG: DeferredItem = + SPAWN_EGGS.register("ash_knight_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_KNIGHT.get() }, 2893093, 5129284, Item.Properties()) + }) + + private val CFG_ASH_KNIGHT_HEAD = MobConfig("ash_knight_head", health = 300.0, speed = 0.250, attackDamage = 14.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = true, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "villager")) + + @JvmField + val ASH_KNIGHT_HEAD: Supplier> = + registerEntity("ash_knight_head", { type, level -> BedrockMob(type, level, CFG_ASH_KNIGHT_HEAD) }, MobCategory.MONSTER) { + sized(0.80f, 0.80f) + } + + @JvmField + val ASH_KNIGHT_HEAD_EGG: DeferredItem = + SPAWN_EGGS.register("ash_knight_head_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_KNIGHT_HEAD.get() }, 2893093, 5129284, Item.Properties()) + }) + + @JvmField + val ASH_PUFFERFISH: Supplier> = + registerEntity("ash_pufferfish", { type, level -> AshPufferfish(type, level) }, MobCategory.WATER_CREATURE) { + sized(0.80f, 0.80f) + } + + @JvmField + val ASH_PUFFERFISH_EGG: DeferredItem = + SPAWN_EGGS.register("ash_pufferfish_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_PUFFERFISH.get() }, 11444882, 16641496, Item.Properties()) + }) + + private val CFG_ASH_SWORD = MobConfig("ash_sword", health = 100.0, speed = 1.700, attackDamage = 10.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = true, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val ASH_SWORD: Supplier> = + registerEntity("ash_sword", { type, level -> BedrockMob(type, level, CFG_ASH_SWORD) }, MobCategory.MONSTER) { + sized(1.00f, 0.50f) + } + + @JvmField + val ASH_SWORD_EGG: DeferredItem = + SPAWN_EGGS.register("ash_sword_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_SWORD.get() }, 5967647, 9250364, Item.Properties()) + }) + + private val CFG_ASH_SWORD_PHANTOM = MobConfig("ash_sword_phantom", health = 8.0, speed = 4.000, attackDamage = 10.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = true, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val ASH_SWORD_PHANTOM: Supplier> = + registerEntity("ash_sword_phantom", { type, level -> BedrockMob(type, level, CFG_ASH_SWORD_PHANTOM) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val ASH_SWORD_PHANTOM_EGG: DeferredItem = + SPAWN_EGGS.register("ash_sword_phantom_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ASH_SWORD_PHANTOM.get() }, 5967647, 9250364, Item.Properties()) + }) + + @JvmField + val BABY_ENDER_DRAGON: Supplier> = + registerEntity("baby_ender_dragon", { type, level -> BabyEnderDragon(type, level) }, MobCategory.MONSTER) { + sized(3.00f, 1.50f).fireImmune() + } + + @JvmField + val BABY_ENDER_DRAGON_EGG: DeferredItem = + SPAWN_EGGS.register("baby_ender_dragon_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { BABY_ENDER_DRAGON.get() }, 2433830, 4538949, Item.Properties()) + }) + + @JvmField + val BAT_CHARGER: Supplier> = + registerEntity("bat_charger", { type, level -> BatCharger(type, level) }, MobCategory.MONSTER) { + sized(0.80f, 1.44f) + } + + @JvmField + val BAT_CHARGER_EGG: DeferredItem = + SPAWN_EGGS.register("bat_charger_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { BAT_CHARGER.get() }, 11678887, 16734451, Item.Properties()) + }) + + private val CFG_BLACKSTONE_THORN = MobConfig("blackstone_thorn", health = 27.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = true, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val BLACKSTONE_THORN: Supplier> = + registerEntity("blackstone_thorn", { type, level -> BedrockMob(type, level, CFG_BLACKSTONE_THORN) }, MobCategory.MONSTER) { + sized(1.00f, 2.00f) + } + + @JvmField + val BLACKSTONE_THORN_EGG: DeferredItem = + SPAWN_EGGS.register("blackstone_thorn_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { BLACKSTONE_THORN.get() }, 3453506, 5832555, Item.Properties()) + }) + + @JvmField + val BLOOD_ZOMBIE: Supplier> = + registerEntity("blood_zombie", { type, level -> BloodZombie(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.60f) + } + + @JvmField + val BLOOD_ZOMBIE_EGG: DeferredItem = + SPAWN_EGGS.register("blood_zombie_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { BLOOD_ZOMBIE.get() }, 7582260, 11403096, Item.Properties()) + }) + + @JvmField + val BOMBER: Supplier> = + registerEntity("bomber", { type, level -> Bomber(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f).fireImmune() + } + + @JvmField + val BOMBER_EGG: DeferredItem = + SPAWN_EGGS.register("bomber_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { BOMBER.get() }, 9190686, 13591867, Item.Properties()) + }) + + @JvmField + val BROWN_BEAR: Supplier> = + registerEntity("brown_bear", { type, level -> BrownBear(type, level) }, MobCategory.CREATURE) { + sized(1.30f, 1.40f) + } + + @JvmField + val BROWN_BEAR_EGG: DeferredItem = + SPAWN_EGGS.register("brown_bear_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { BROWN_BEAR.get() }, 6566921, 10115102, Item.Properties()) + }) + + @JvmField + val CARNAGER: Supplier> = + registerEntity("carnager", { type, level -> Carnager(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val CARNAGER_EGG: DeferredItem = + SPAWN_EGGS.register("carnager_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { CARNAGER.get() }, 4146237, 6778212, Item.Properties()) + }) + + private val CFG_CHEST_MONSTER = MobConfig("chest_monster", health = 50.0, speed = 0.400, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = true, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "villager", "iron_golem")) + + @JvmField + val CHEST_MONSTER: Supplier> = + registerEntity("chest_monster", { type, level -> BedrockMob(type, level, CFG_CHEST_MONSTER) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val CHEST_MONSTER_EGG: DeferredItem = + SPAWN_EGGS.register("chest_monster_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { CHEST_MONSTER.get() }, 5521183, 8611644, Item.Properties()) + }) + + private val CFG_CHESTER = MobConfig("chester", health = 20.0, speed = 0.300, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = true, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val CHESTER: Supplier> = + registerEntity("chester", { type, level -> BedrockMob(type, level, CFG_CHESTER) }, MobCategory.MONSTER) { + sized(0.56f, 0.56f) + } + + @JvmField + val CHESTER_EGG: DeferredItem = + SPAWN_EGGS.register("chester_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { CHESTER.get() }, 5521183, 8611644, Item.Properties()) + }) + + private val CFG_CLAM = MobConfig("clam", health = 20.0, speed = 0.080, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = true, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val CLAM: Supplier> = + registerEntity("clam", { type, level -> BedrockMob(type, level, CFG_CLAM) }, MobCategory.WATER_CREATURE) { + sized(0.30f, 0.30f) + } + + @JvmField + val CLAM_EGG: DeferredItem = + SPAWN_EGGS.register("clam_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { CLAM.get() }, 15390422, 16777215, Item.Properties()) + }) + + private val CFG_CRAB = MobConfig("crab", health = 20.0, speed = 0.150, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = true, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val CRAB: Supplier> = + registerEntity("crab", { type, level -> BedrockMob(type, level, CFG_CRAB) }, MobCategory.WATER_CREATURE) { + sized(0.30f, 0.30f) + } + + @JvmField + val CRAB_EGG: DeferredItem = + SPAWN_EGGS.register("crab_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { CRAB.get() }, 6250593, 9606037, Item.Properties()) + }) + + @JvmField + val CRIMSON_SLIME: Supplier> = + registerEntity("crimson_slime", { type, level -> CrimsonSlime(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val CRIMSON_SLIME_EGG: DeferredItem = + SPAWN_EGGS.register("crimson_slime_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { CRIMSON_SLIME.get() }, 14579061, 16756912, Item.Properties()) + }) + + @JvmField + val DARK_SNOW_MAN: Supplier> = + registerEntity("dark_snow_man", { type, level -> DarkSnowMan(type, level) }, MobCategory.CREATURE) { + sized(0.40f, 1.80f) + } + + @JvmField + val DARK_SNOW_MAN_EGG: DeferredItem = + SPAWN_EGGS.register("dark_snow_man_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { DARK_SNOW_MAN.get() }, 3439538, 5814527, Item.Properties()) + }) + + private val CFG_DARK_WEREWOLF = MobConfig("dark_werewolf", health = 100.0, speed = 0.250, attackDamage = 7.0, followRange = 32.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = true, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val DARK_WEREWOLF: Supplier> = + registerEntity("dark_werewolf", { type, level -> BedrockMob(type, level, CFG_DARK_WEREWOLF) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val DARK_WEREWOLF_EGG: DeferredItem = + SPAWN_EGGS.register("dark_werewolf_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { DARK_WEREWOLF.get() }, 2903402, 5077409, Item.Properties()) + }) + + @JvmField + val DOCTOR: Supplier> = + registerEntity("doctor", { type, level -> Doctor(type, level) }, MobCategory.CREATURE) { + sized(0.60f, 1.90f) + } + + @JvmField + val DOCTOR_EGG: DeferredItem = + SPAWN_EGGS.register("doctor_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { DOCTOR.get() }, 7757395, 11637122, Item.Properties()) + }) + + @JvmField + val ELF_OF_ASH: Supplier> = + registerEntity("elf_of_ash", { type, level -> ElfOfAsh(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.80f).fireImmune() + } + + @JvmField + val ELF_OF_ASH_EGG: DeferredItem = + SPAWN_EGGS.register("elf_of_ash_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ELF_OF_ASH.get() }, 11579956, 16777048, Item.Properties()) + }) + + @JvmField + val ELF_OF_CHAOS: Supplier> = + registerEntity("elf_of_chaos", { type, level -> ElfOfChaos(type, level) }, MobCategory.CREATURE) { + sized(0.60f, 2.00f).fireImmune() + } + + @JvmField + val ELF_OF_CHAOS_EGG: DeferredItem = + SPAWN_EGGS.register("elf_of_chaos_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ELF_OF_CHAOS.get() }, 11678812, 16734350, Item.Properties()) + }) + + @JvmField + val ELF_OF_DEEP: Supplier> = + registerEntity("elf_of_deep", { type, level -> ElfOfDeep(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.80f).fireImmune() + } + + @JvmField + val ELF_OF_DEEP_EGG: DeferredItem = + SPAWN_EGGS.register("elf_of_deep_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ELF_OF_DEEP.get() }, 8952233, 13230582, Item.Properties()) + }) + + @JvmField + val ELF_OF_DUST: Supplier> = + registerEntity("elf_of_dust", { type, level -> ElfOfDust(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.80f).fireImmune() + } + + @JvmField + val ELF_OF_DUST_EGG: DeferredItem = + SPAWN_EGGS.register("elf_of_dust_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ELF_OF_DUST.get() }, 9605778, 14145495, Item.Properties()) + }) + + @JvmField + val ENCHANT_ARMOR: Supplier> = + registerEntity("enchant_armor", { type, level -> EnchantArmor(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ENCHANT_ARMOR_EGG: DeferredItem = + SPAWN_EGGS.register("enchant_armor_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENCHANT_ARMOR.get() }, 8106548, 12123992, Item.Properties()) + }) + + @JvmField + val ENCHANT_ARMOR_BY_BOSS: Supplier> = + registerEntity("enchant_armor_by_boss", { type, level -> EnchantArmorByBoss(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ENCHANT_ARMOR_BY_BOSS_EGG: DeferredItem = + SPAWN_EGGS.register("enchant_armor_by_boss_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENCHANT_ARMOR_BY_BOSS.get() }, 3453614, 5832701, Item.Properties()) + }) + + @JvmField + val ENCHANT_DIAMOND_ARMOR: Supplier> = + registerEntity("enchant_diamond_armor", { type, level -> EnchantDiamondArmor(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ENCHANT_DIAMOND_ARMOR_EGG: DeferredItem = + SPAWN_EGGS.register("enchant_diamond_armor_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENCHANT_DIAMOND_ARMOR.get() }, 3453586, 5832663, Item.Properties()) + }) + + @JvmField + val ENCHANT_ILLAGER: Supplier> = + registerEntity("enchant_illager", { type, level -> EnchantIllager(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ENCHANT_ILLAGER_EGG: DeferredItem = + SPAWN_EGGS.register("enchant_illager_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENCHANT_ILLAGER.get() }, 3453603, 5832686, Item.Properties()) + }) + + @JvmField + val ENCHANT_ILLAGER_1: Supplier> = + registerEntity("enchant_illager_1", { type, level -> EnchantIllager1(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ENCHANT_ILLAGER_1_EGG: DeferredItem = + SPAWN_EGGS.register("enchant_illager_1_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENCHANT_ILLAGER_1.get() }, 11678812, 16734350, Item.Properties()) + }) + + @JvmField + val ENCHANT_ILLAGER_2: Supplier> = + registerEntity("enchant_illager_2", { type, level -> EnchantIllager2(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ENCHANT_ILLAGER_2_EGG: DeferredItem = + SPAWN_EGGS.register("enchant_illager_2_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENCHANT_ILLAGER_2.get() }, 3453584, 5832660, Item.Properties()) + }) + + @JvmField + val END_STONE_GOLEM: Supplier> = + registerEntity("end_stone_golem", { type, level -> EndStoneGolem(type, level) }, MobCategory.CREATURE) { + sized(1.40f, 2.90f).fireImmune() + } + + @JvmField + val END_STONE_GOLEM_EGG: DeferredItem = + SPAWN_EGGS.register("end_stone_golem_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { END_STONE_GOLEM.get() }, 14277534, 16777192, Item.Properties()) + }) + + private val CFG_ENDER_SNAIL = MobConfig("ender_snail", health = 30.0, speed = 0.200, attackDamage = 5.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val ENDER_SNAIL: Supplier> = + registerEntity("ender_snail", { type, level -> BedrockMob(type, level, CFG_ENDER_SNAIL) }, MobCategory.MONSTER) { + sized(0.80f, 0.80f) + } + + @JvmField + val ENDER_SNAIL_EGG: DeferredItem = + SPAWN_EGGS.register("ender_snail_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENDER_SNAIL.get() }, 4928690, 7821567, Item.Properties()) + }) + + private val CFG_ENDER_SNAKE = MobConfig("ender_snake", health = 30.0, speed = 0.080, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val ENDER_SNAKE: Supplier> = + registerEntity("ender_snake", { type, level -> BedrockMob(type, level, CFG_ENDER_SNAKE) }, MobCategory.MONSTER) { + sized(1.00f, 0.60f) + } + + @JvmField + val ENDER_SNAKE_EGG: DeferredItem = + SPAWN_EGGS.register("ender_snake_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENDER_SNAKE.get() }, 6040668, 9391502, Item.Properties()) + }) + + @JvmField + val ENDER_WITCH: Supplier> = + registerEntity("ender_witch", { type, level -> EnderWitch(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ENDER_WITCH_EGG: DeferredItem = + SPAWN_EGGS.register("ender_witch_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENDER_WITCH.get() }, 3453519, 5832573, Item.Properties()) + }) + + @JvmField + val ENDER_WITCH_PUPPET: Supplier> = + registerEntity("ender_witch_puppet", { type, level -> EnderWitchPuppet(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ENDER_WITCH_PUPPET_EGG: DeferredItem = + SPAWN_EGGS.register("ender_witch_puppet_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENDER_WITCH_PUPPET.get() }, 4731208, 7558516, Item.Properties()) + }) + + private val CFG_ENTITY_SOUL = MobConfig("entity_soul", health = 170.0, speed = 0.500, attackDamage = 3.0, followRange = 96.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = true, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val ENTITY_SOUL: Supplier> = + registerEntity("entity_soul", { type, level -> BedrockMob(type, level, CFG_ENTITY_SOUL) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ENTITY_SOUL_EGG: DeferredItem = + SPAWN_EGGS.register("entity_soul_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENTITY_SOUL.get() }, 8151882, 12163191, Item.Properties()) + }) + + private val CFG_ENTITY_SOUL_1 = MobConfig("entity_soul_1", health = 100.0, speed = 0.500, attackDamage = 3.0, followRange = 96.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = true, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val ENTITY_SOUL_1: Supplier> = + registerEntity("entity_soul_1", { type, level -> BedrockMob(type, level, CFG_ENTITY_SOUL_1) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ENTITY_SOUL_1_EGG: DeferredItem = + SPAWN_EGGS.register("entity_soul_1_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ENTITY_SOUL_1.get() }, 8151882, 12163191, Item.Properties()) + }) + + private val CFG_ESCAPED_SOUL_ENTITY = MobConfig("escaped_soul_entity", health = 400.0, speed = 0.320, attackDamage = 20.0, followRange = 32.0, knockbackResistance = 0.70, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem")) + + @JvmField + val ESCAPED_SOUL_ENTITY: Supplier> = + registerEntity("escaped_soul_entity", { type, level -> BedrockMob(type, level, CFG_ESCAPED_SOUL_ENTITY) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ESCAPED_SOUL_ENTITY_EGG: DeferredItem = + SPAWN_EGGS.register("escaped_soul_entity_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ESCAPED_SOUL_ENTITY.get() }, 7649707, 11534329, Item.Properties()) + }) + + private val CFG_EVERLASTING_WINTER_GHAST = MobConfig("everlasting_winter_ghast", health = 300.0, speed = 0.350, attackDamage = 2.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem")) + + @JvmField + val EVERLASTING_WINTER_GHAST: Supplier> = + registerEntity("everlasting_winter_ghast", { type, level -> BedrockMob(type, level, CFG_EVERLASTING_WINTER_GHAST) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val EVERLASTING_WINTER_GHAST_EGG: DeferredItem = + SPAWN_EGGS.register("everlasting_winter_ghast_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { EVERLASTING_WINTER_GHAST.get() }, 11914482, 16777215, Item.Properties()) + }) + + @JvmField + val EVERLASTING_WINTER_GHAST_1: Supplier> = + registerEntity("everlasting_winter_ghast_1", { type, level -> EverlastingWinterGhast1(type, level) }, MobCategory.MONSTER) { + sized(5.00f, 5.00f).fireImmune() + } + + @JvmField + val EVERLASTING_WINTER_GHAST_1_EGG: DeferredItem = + SPAWN_EGGS.register("everlasting_winter_ghast_1_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { EVERLASTING_WINTER_GHAST_1.get() }, 4630941, 7403238, Item.Properties()) + }) + + private val CFG_EVERLASTING_WINTER_SHADOW = MobConfig("everlasting_winter_shadow", health = 50.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = true, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val EVERLASTING_WINTER_SHADOW: Supplier> = + registerEntity("everlasting_winter_shadow", { type, level -> BedrockMob(type, level, CFG_EVERLASTING_WINTER_SHADOW) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val EVERLASTING_WINTER_SHADOW_EGG: DeferredItem = + SPAWN_EGGS.register("everlasting_winter_shadow_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { EVERLASTING_WINTER_SHADOW.get() }, 12768237, 16777215, Item.Properties()) + }) + + @JvmField + val EVIL_SNOW_MAN: Supplier> = + registerEntity("evil_snow_man", { type, level -> EvilSnowMan(type, level) }, MobCategory.CREATURE) { + sized(0.40f, 1.80f) + } + + @JvmField + val EVIL_SNOW_MAN_EGG: DeferredItem = + SPAWN_EGGS.register("evil_snow_man_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { EVIL_SNOW_MAN.get() }, 11695924, 16757592, Item.Properties()) + }) + + @JvmField + val FIRE_STORM: Supplier> = + registerEntity("fire_storm", { type, level -> FireStorm(type, level) }, MobCategory.MONSTER) { + sized(0.30f, 0.90f).fireImmune() + } + + @JvmField + val FIRE_STORM_EGG: DeferredItem = + SPAWN_EGGS.register("fire_storm_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FIRE_STORM.get() }, 12684066, 16764480, Item.Properties()) + }) + + private val CFG_FRIENDLY_LITTLE_SOUL = MobConfig("friendly_little_soul", health = 8.0, speed = 0.200, attackDamage = 4.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val FRIENDLY_LITTLE_SOUL: Supplier> = + registerEntity("friendly_little_soul", { type, level -> BedrockMob(type, level, CFG_FRIENDLY_LITTLE_SOUL) }, MobCategory.MONSTER) { + sized(0.60f, 1.50f) + } + + @JvmField + val FRIENDLY_LITTLE_SOUL_EGG: DeferredItem = + SPAWN_EGGS.register("friendly_little_soul_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FRIENDLY_LITTLE_SOUL.get() }, 15790320, 16777215, Item.Properties()) + }) + + @JvmField + val FRIENDLY_SPIDER: Supplier> = + registerEntity("friendly_spider", { type, level -> FriendlySpider(type, level) }, MobCategory.MONSTER) { + sized(0.70f, 0.45f) + } + + @JvmField + val FRIENDLY_SPIDER_EGG: DeferredItem = + SPAWN_EGGS.register("friendly_spider_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FRIENDLY_SPIDER.get() }, 4545366, 7310725, Item.Properties()) + }) + + @JvmField + val FROZEN_GHAST: Supplier> = + registerEntity("frozen_ghast", { type, level -> FrozenGhast(type, level) }, MobCategory.MONSTER) { + sized(2.00f, 2.00f).fireImmune() + } + + @JvmField + val FROZEN_GHAST_EGG: DeferredItem = + SPAWN_EGGS.register("frozen_ghast_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FROZEN_GHAST.get() }, 15462126, 16777215, Item.Properties()) + }) + + private val CFG_FROZEN_HEART = MobConfig("frozen_heart", health = 150.0, speed = 0.080, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem")) + + @JvmField + val FROZEN_HEART: Supplier> = + registerEntity("frozen_heart", { type, level -> BedrockMob(type, level, CFG_FROZEN_HEART) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val FROZEN_HEART_EGG: DeferredItem = + SPAWN_EGGS.register("frozen_heart_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FROZEN_HEART.get() }, 5429721, 8454143, Item.Properties()) + }) + + private val CFG_FROZEN_HEART_SLEEPING = MobConfig("frozen_heart_sleeping", health = 1000000.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = true, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val FROZEN_HEART_SLEEPING: Supplier> = + registerEntity("frozen_heart_sleeping", { type, level -> BedrockMob(type, level, CFG_FROZEN_HEART_SLEEPING) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val FROZEN_HEART_SLEEPING_EGG: DeferredItem = + SPAWN_EGGS.register("frozen_heart_sleeping_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FROZEN_HEART_SLEEPING.get() }, 3438514, 5813247, Item.Properties()) + }) + + @JvmField + val FROZEN_MAN: Supplier> = + registerEntity("frozen_man", { type, level -> FrozenMan(type, level) }, MobCategory.CREATURE) { + sized(0.40f, 1.80f) + } + + @JvmField + val FROZEN_MAN_EGG: DeferredItem = + SPAWN_EGGS.register("frozen_man_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FROZEN_MAN.get() }, 3442866, 5819135, Item.Properties()) + }) + + private val CFG_FROZEN_SHADOW = MobConfig("frozen_shadow", health = 24.0, speed = 4.000, attackDamage = 10.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val FROZEN_SHADOW: Supplier> = + registerEntity("frozen_shadow", { type, level -> BedrockMob(type, level, CFG_FROZEN_SHADOW) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val FROZEN_SHADOW_EGG: DeferredItem = + SPAWN_EGGS.register("frozen_shadow_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FROZEN_SHADOW.get() }, 14016755, 16777215, Item.Properties()) + }) + + @JvmField + val FROZEN_SPIDER: Supplier> = + registerEntity("frozen_spider", { type, level -> FrozenSpider(type, level) }, MobCategory.MONSTER) { + sized(1.40f, 0.90f) + } + + @JvmField + val FROZEN_SPIDER_EGG: DeferredItem = + SPAWN_EGGS.register("frozen_spider_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { FROZEN_SPIDER.get() }, 16382972, 16777215, Item.Properties()) + }) + + @JvmField + val GARGOYLE: Supplier> = + registerEntity("gargoyle", { type, level -> Gargoyle(type, level) }, MobCategory.MONSTER) { + sized(1.00f, 1.80f) + } + + @JvmField + val GARGOYLE_EGG: DeferredItem = + SPAWN_EGGS.register("gargoyle_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GARGOYLE.get() }, 11709492, 16775768, Item.Properties()) + }) + + private val CFG_GHOST_DIAMOND_AXE = MobConfig("ghost_diamond_axe", health = 40.0, speed = 0.200, attackDamage = 6.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "villager")) + + @JvmField + val GHOST_DIAMOND_AXE: Supplier> = + registerEntity("ghost_diamond_axe", { type, level -> BedrockMob(type, level, CFG_GHOST_DIAMOND_AXE) }, MobCategory.MONSTER) { + sized(0.40f, 1.80f) + } + + @JvmField + val GHOST_DIAMOND_AXE_EGG: DeferredItem = + SPAWN_EGGS.register("ghost_diamond_axe_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GHOST_DIAMOND_AXE.get() }, 11678797, 16734330, Item.Properties()) + }) + + private val CFG_GHOST_DIAMOND_STAFF = MobConfig("ghost_diamond_staff", health = 40.0, speed = 0.080, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "villager", "iron_golem", "snow_golem"), rangedProjectile = Supplier { ModEntities.STREAM_ENERGY_BALL.get() }) + + @JvmField + val GHOST_DIAMOND_STAFF: Supplier> = + registerEntity("ghost_diamond_staff", { type, level -> BedrockMob(type, level, CFG_GHOST_DIAMOND_STAFF) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val GHOST_DIAMOND_STAFF_EGG: DeferredItem = + SPAWN_EGGS.register("ghost_diamond_staff_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GHOST_DIAMOND_STAFF.get() }, 5289642, 8323064, Item.Properties()) + }) + + private val CFG_GHOST_DIAMOND_SWORD = MobConfig("ghost_diamond_sword", health = 40.0, speed = 1.400, attackDamage = 7.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val GHOST_DIAMOND_SWORD: Supplier> = + registerEntity("ghost_diamond_sword", { type, level -> BedrockMob(type, level, CFG_GHOST_DIAMOND_SWORD) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val GHOST_DIAMOND_SWORD_EGG: DeferredItem = + SPAWN_EGGS.register("ghost_diamond_sword_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GHOST_DIAMOND_SWORD.get() }, 2251084, 4229753, Item.Properties()) + }) + + private val CFG_GHOST_IRON_AXE = MobConfig("ghost_iron_axe", health = 20.0, speed = 0.200, attackDamage = 5.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "villager")) + + @JvmField + val GHOST_IRON_AXE: Supplier> = + registerEntity("ghost_iron_axe", { type, level -> BedrockMob(type, level, CFG_GHOST_IRON_AXE) }, MobCategory.MONSTER) { + sized(0.40f, 1.80f) + } + + @JvmField + val GHOST_IRON_AXE_EGG: DeferredItem = + SPAWN_EGGS.register("ghost_iron_axe_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GHOST_IRON_AXE.get() }, 7169366, 10918534, Item.Properties()) + }) + + private val CFG_GHOST_IRON_SWORD = MobConfig("ghost_iron_sword", health = 20.0, speed = 1.800, attackDamage = 6.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val GHOST_IRON_SWORD: Supplier> = + registerEntity("ghost_iron_sword", { type, level -> BedrockMob(type, level, CFG_GHOST_IRON_SWORD) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val GHOST_IRON_SWORD_EGG: DeferredItem = + SPAWN_EGGS.register("ghost_iron_sword_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GHOST_IRON_SWORD.get() }, 5723474, 8881537, Item.Properties()) + }) + + private val CFG_GHOST_WOODEN_STAFF = MobConfig("ghost_wooden_staff", health = 20.0, speed = 0.080, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "villager", "iron_golem", "snow_golem"), rangedProjectile = Supplier { ModEntities.ENERGY_BALL.get() }) + + @JvmField + val GHOST_WOODEN_STAFF: Supplier> = + registerEntity("ghost_wooden_staff", { type, level -> BedrockMob(type, level, CFG_GHOST_WOODEN_STAFF) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val GHOST_WOODEN_STAFF_EGG: DeferredItem = + SPAWN_EGGS.register("ghost_wooden_staff_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GHOST_WOODEN_STAFF.get() }, 8481601, 12624745, Item.Properties()) + }) + + private val CFG_GHOST_WOODEN_SWORD = MobConfig("ghost_wooden_sword", health = 10.0, speed = 1.800, attackDamage = 4.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val GHOST_WOODEN_SWORD: Supplier> = + registerEntity("ghost_wooden_sword", { type, level -> BedrockMob(type, level, CFG_GHOST_WOODEN_SWORD) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val GHOST_WOODEN_SWORD_EGG: DeferredItem = + SPAWN_EGGS.register("ghost_wooden_sword_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GHOST_WOODEN_SWORD.get() }, 4075282, 6705450, Item.Properties()) + }) + + @JvmField + val GINGERBREAD_MAN_BY_TOTEM: Supplier> = + registerEntity("gingerbread_man_by_totem", { type, level -> GingerbreadManByTotem(type, level) }, MobCategory.MONSTER) { + sized(0.30f, 0.54f) + } + + @JvmField + val GINGERBREAD_MAN_BY_TOTEM_EGG: DeferredItem = + SPAWN_EGGS.register("gingerbread_man_by_totem_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GINGERBREAD_MAN_BY_TOTEM.get() }, 3438514, 5813247, Item.Properties()) + }) + + private val CFG_GOBLIN = MobConfig("goblin", health = 30.0, speed = 0.350, attackDamage = 2.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val GOBLIN: Supplier> = + registerEntity("goblin", { type, level -> BedrockMob(type, level, CFG_GOBLIN) }, MobCategory.MONSTER) { + sized(0.80f, 1.30f) + } + + @JvmField + val GOBLIN_EGG: DeferredItem = + SPAWN_EGGS.register("goblin_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GOBLIN.get() }, 11678793, 16734325, Item.Properties()) + }) + + private val CFG_GOBLIN_SNIPER = MobConfig("goblin_sniper", health = 20.0, speed = 0.200, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player"), rangedProjectile = Supplier { ModEntities.BULLET_BY_FLINTLOCK_PRO.get() }) + + @JvmField + val GOBLIN_SNIPER: Supplier> = + registerEntity("goblin_sniper", { type, level -> BedrockMob(type, level, CFG_GOBLIN_SNIPER) }, MobCategory.MONSTER) { + sized(0.80f, 1.30f) + } + + @JvmField + val GOBLIN_SNIPER_EGG: DeferredItem = + SPAWN_EGGS.register("goblin_sniper_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GOBLIN_SNIPER.get() }, 10040498, 14768383, Item.Properties()) + }) + + private val CFG_GOBLIN_WIZARD = MobConfig("goblin_wizard", health = 20.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player"), rangedProjectile = Supplier { ModEntities.GOLDEN_ENERGY_BALL.get() }) + + @JvmField + val GOBLIN_WIZARD: Supplier> = + registerEntity("goblin_wizard", { type, level -> BedrockMob(type, level, CFG_GOBLIN_WIZARD) }, MobCategory.MONSTER) { + sized(0.80f, 1.30f) + } + + @JvmField + val GOBLIN_WIZARD_EGG: DeferredItem = + SPAWN_EGGS.register("goblin_wizard_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { GOBLIN_WIZARD.get() }, 10596916, 15466328, Item.Properties()) + }) + + private val CFG_HOST_OF_DEEP = MobConfig("host_of_deep", health = 400.0, speed = 0.500, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val HOST_OF_DEEP: Supplier> = + registerEntity("host_of_deep", { type, level -> BedrockMob(type, level, CFG_HOST_OF_DEEP) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val HOST_OF_DEEP_EGG: DeferredItem = + SPAWN_EGGS.register("host_of_deep_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { HOST_OF_DEEP.get() }, 4603453, 7366244, Item.Properties()) + }) + + @JvmField + val ICE_BAT: Supplier> = + registerEntity("ice_bat", { type, level -> IceBat(type, level) }, MobCategory.MONSTER) { + sized(0.50f, 0.90f) + } + + @JvmField + val ICE_BAT_EGG: DeferredItem = + SPAWN_EGGS.register("ice_bat_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_BAT.get() }, 15003126, 16777215, Item.Properties()) + }) + + @JvmField + val ICE_BLAZE: Supplier> = + registerEntity("ice_blaze", { type, level -> IceBlaze(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val ICE_BLAZE_EGG: DeferredItem = + SPAWN_EGGS.register("ice_blaze_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_BLAZE.get() }, 7577584, 11397631, Item.Properties()) + }) + + @JvmField + val ICE_CREEPER: Supplier> = + registerEntity("ice_creeper", { type, level -> IceCreeper(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val ICE_CREEPER_EGG: DeferredItem = + SPAWN_EGGS.register("ice_creeper_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_CREEPER.get() }, 13492218, 16777215, Item.Properties()) + }) + + private val CFG_ICE_MONSTER = MobConfig("ice_monster", health = 100.0, speed = 0.250, attackDamage = 15.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "villager")) + + @JvmField + val ICE_MONSTER: Supplier> = + registerEntity("ice_monster", { type, level -> BedrockMob(type, level, CFG_ICE_MONSTER) }, MobCategory.MONSTER) { + sized(1.20f, 2.90f) + } + + @JvmField + val ICE_MONSTER_EGG: DeferredItem = + SPAWN_EGGS.register("ice_monster_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_MONSTER.get() }, 13557757, 16777215, Item.Properties()) + }) + + private val CFG_ICE_SPIRIT = MobConfig("ice_spirit", health = 20.0, speed = 0.300, attackDamage = 6.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "villager")) + + @JvmField + val ICE_SPIRIT: Supplier> = + registerEntity("ice_spirit", { type, level -> BedrockMob(type, level, CFG_ICE_SPIRIT) }, MobCategory.MONSTER) { + sized(0.60f, 0.60f) + } + + @JvmField + val ICE_SPIRIT_EGG: DeferredItem = + SPAWN_EGGS.register("ice_spirit_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_SPIRIT.get() }, 12768504, 16777215, Item.Properties()) + }) + + private val CFG_ICE_THORN = MobConfig("ice_thorn", health = 6.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = true, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val ICE_THORN: Supplier> = + registerEntity("ice_thorn", { type, level -> BedrockMob(type, level, CFG_ICE_THORN) }, MobCategory.MONSTER) { + sized(1.00f, 2.00f) + } + + @JvmField + val ICE_THORN_EGG: DeferredItem = + SPAWN_EGGS.register("ice_thorn_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_THORN.get() }, 5354036, 8388440, Item.Properties()) + }) + + private val CFG_ICE_WIZARD = MobConfig("ice_wizard", health = 120.0, speed = 0.500, attackDamage = 3.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val ICE_WIZARD: Supplier> = + registerEntity("ice_wizard", { type, level -> BedrockMob(type, level, CFG_ICE_WIZARD) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ICE_WIZARD_EGG: DeferredItem = + SPAWN_EGGS.register("ice_wizard_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_WIZARD.get() }, 9677781, 14285311, Item.Properties()) + }) + + @JvmField + val ICE_ZOMBIE: Supplier> = + registerEntity("ice_zombie", { type, level -> IceZombie(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val ICE_ZOMBIE_EGG: DeferredItem = + SPAWN_EGGS.register("ice_zombie_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ICE_ZOMBIE.get() }, 14871273, 16777215, Item.Properties()) + }) + + @JvmField + val ILLUSION_ZOMBIE: Supplier> = + registerEntity("illusion_zombie", { type, level -> IllusionZombie(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ILLUSION_ZOMBIE_EGG: DeferredItem = + SPAWN_EGGS.register("illusion_zombie_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ILLUSION_ZOMBIE.get() }, 6250335, 9605778, Item.Properties()) + }) + + @JvmField + val ILLUSIONER: Supplier> = + registerEntity("illusioner", { type, level -> Illusioner(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ILLUSIONER_EGG: DeferredItem = + SPAWN_EGGS.register("illusioner_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ILLUSIONER.get() }, 3627638, 6065329, Item.Properties()) + }) + + @JvmField + val ILLUSIONER_PUPPET: Supplier> = + registerEntity("illusioner_puppet", { type, level -> IllusionerPuppet(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ILLUSIONER_PUPPET_EGG: DeferredItem = + SPAWN_EGGS.register("illusioner_puppet_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ILLUSIONER_PUPPET.get() }, 3627638, 6065329, Item.Properties()) + }) + + @JvmField + val JUNGLE_SPIDER: Supplier> = + registerEntity("jungle_spider", { type, level -> JungleSpider(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.30f) + } + + @JvmField + val JUNGLE_SPIDER_EGG: DeferredItem = + SPAWN_EGGS.register("jungle_spider_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { JUNGLE_SPIDER.get() }, 5661267, 8885891, Item.Properties()) + }) + + @JvmField + val KING_OF_PILLAGER: Supplier> = + registerEntity("king_of_pillager", { type, level -> KingOfPillager(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 2.00f).fireImmune() + } + + @JvmField + val KING_OF_PILLAGER_EGG: DeferredItem = + SPAWN_EGGS.register("king_of_pillager_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { KING_OF_PILLAGER.get() }, 3453565, 5832635, Item.Properties()) + }) + + private val CFG_LAVA_LIZARD = MobConfig("lava_lizard", health = 15.0, speed = 0.160, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val LAVA_LIZARD: Supplier> = + registerEntity("lava_lizard", { type, level -> BedrockMob(type, level, CFG_LAVA_LIZARD) }, MobCategory.MONSTER) { + sized(1.20f, 0.60f) + } + + @JvmField + val LAVA_LIZARD_EGG: DeferredItem = + SPAWN_EGGS.register("lava_lizard_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { LAVA_LIZARD.get() }, 11089074, 16144639, Item.Properties()) + }) + + @JvmField + val LIFE_INSECT: Supplier> = + registerEntity("life_insect", { type, level -> LifeInsect(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.30f).fireImmune() + } + + @JvmField + val LIFE_INSECT_EGG: DeferredItem = + SPAWN_EGGS.register("life_insect_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { LIFE_INSECT.get() }, 13583923, 16740695, Item.Properties()) + }) + + @JvmField + val LITTLE_BAT: Supplier> = + registerEntity("little_bat", { type, level -> LittleBat(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.72f) + } + + @JvmField + val LITTLE_BAT_EGG: DeferredItem = + SPAWN_EGGS.register("little_bat_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { LITTLE_BAT.get() }, 3942661, 6506777, Item.Properties()) + }) + + private val CFG_LITTLE_SOUL = MobConfig("little_soul", health = 3.0, speed = 0.200, attackDamage = 6.0, followRange = 64.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val LITTLE_SOUL: Supplier> = + registerEntity("little_soul", { type, level -> BedrockMob(type, level, CFG_LITTLE_SOUL) }, MobCategory.MONSTER) { + sized(0.60f, 1.50f) + } + + @JvmField + val LITTLE_SOUL_EGG: DeferredItem = + SPAWN_EGGS.register("little_soul_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { LITTLE_SOUL.get() }, 15790320, 16777215, Item.Properties()) + }) + + @JvmField + val LURK_SKELETON: Supplier> = + registerEntity("lurk_skeleton", { type, level -> LurkSkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val LURK_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("lurk_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { LURK_SKELETON.get() }, 1214090, 2869197, Item.Properties()) + }) + + @JvmField + val LURK_ZOMBIE: Supplier> = + registerEntity("lurk_zombie", { type, level -> LurkZombie(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val LURK_ZOMBIE_EGG: DeferredItem = + SPAWN_EGGS.register("lurk_zombie_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { LURK_ZOMBIE.get() }, 1259580, 2907747, Item.Properties()) + }) + + @JvmField + val MUMMY: Supplier> = + registerEntity("mummy", { type, level -> Mummy(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val MUMMY_EGG: DeferredItem = + SPAWN_EGGS.register("mummy_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { MUMMY.get() }, 14075565, 16777212, Item.Properties()) + }) + + @JvmField + val MUMMY_SKELETON: Supplier> = + registerEntity("mummy_skeleton", { type, level -> MummySkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val MUMMY_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("mummy_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { MUMMY_SKELETON.get() }, 14075565, 16777211, Item.Properties()) + }) + + @JvmField + val MURLOC: Supplier> = + registerEntity("murloc", { type, level -> Murloc(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val MURLOC_EGG: DeferredItem = + SPAWN_EGGS.register("murloc_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { MURLOC.get() }, 5012629, 7977434, Item.Properties()) + }) + + private val CFG_MURLOC_WIZARD = MobConfig("murloc_wizard", health = 11.0, speed = 0.250, attackDamage = 5.0, followRange = 16.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player"), rangedProjectile = Supplier { ModEntities.WAVE_ENERGY.get() }) + + @JvmField + val MURLOC_WIZARD: Supplier> = + registerEntity("murloc_wizard", { type, level -> BedrockMob(type, level, CFG_MURLOC_WIZARD) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val MURLOC_WIZARD_EGG: DeferredItem = + SPAWN_EGGS.register("murloc_wizard_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { MURLOC_WIZARD.get() }, 5148060, 8114404, Item.Properties()) + }) + + private val CFG_MUSHROOM_MONSTER = MobConfig("mushroom_monster", health = 20.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = true, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val MUSHROOM_MONSTER: Supplier> = + registerEntity("mushroom_monster", { type, level -> BedrockMob(type, level, CFG_MUSHROOM_MONSTER) }, MobCategory.WATER_CREATURE) { + sized(0.30f, 0.30f) + } + + @JvmField + val MUSHROOM_MONSTER_EGG: DeferredItem = + SPAWN_EGGS.register("mushroom_monster_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { MUSHROOM_MONSTER.get() }, 14310479, 16748413, Item.Properties()) + }) + + @JvmField + val MUSHROOM_ZOMBIE: Supplier> = + registerEntity("mushroom_zombie", { type, level -> MushroomZombie(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val MUSHROOM_ZOMBIE_EGG: DeferredItem = + SPAWN_EGGS.register("mushroom_zombie_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { MUSHROOM_ZOMBIE.get() }, 3369827, 5743512, Item.Properties()) + }) + + @JvmField + val MYSTICAL_SKELETON: Supplier> = + registerEntity("mystical_skeleton", { type, level -> MysticalSkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val MYSTICAL_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("mystical_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { MYSTICAL_SKELETON.get() }, 4666546, 7493887, Item.Properties()) + }) + + private val CFG_NAUTILUS = MobConfig("nautilus", health = 10.0, speed = 0.080, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = true, friendly = true, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val NAUTILUS: Supplier> = + registerEntity("nautilus", { type, level -> BedrockMob(type, level, CFG_NAUTILUS) }, MobCategory.WATER_CREATURE) { + sized(0.30f, 0.30f) + } + + @JvmField + val NAUTILUS_EGG: DeferredItem = + SPAWN_EGGS.register("nautilus_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { NAUTILUS.get() }, 16329256, 16730696, Item.Properties()) + }) + + @JvmField + val NETHER_CREEPER: Supplier> = + registerEntity("nether_creeper", { type, level -> NetherCreeper(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val NETHER_CREEPER_EGG: DeferredItem = + SPAWN_EGGS.register("nether_creeper_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { NETHER_CREEPER.get() }, 5316640, 8339006, Item.Properties()) + }) + + @JvmField + val NETHER_GOLEM: Supplier> = + registerEntity("nether_golem", { type, level -> NetherGolem(type, level) }, MobCategory.CREATURE) { + sized(0.60f, 2.00f).fireImmune() + } + + @JvmField + val NETHER_GOLEM_EGG: DeferredItem = + SPAWN_EGGS.register("nether_golem_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { NETHER_GOLEM.get() }, 6497830, 9913669, Item.Properties()) + }) + + @JvmField + val NETHER_PHANTOM: Supplier> = + registerEntity("nether_phantom", { type, level -> NetherPhantom(type, level) }, MobCategory.MONSTER) { + sized(1.20f, 0.75f) + } + + @JvmField + val NETHER_PHANTOM_EGG: DeferredItem = + SPAWN_EGGS.register("nether_phantom_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { NETHER_PHANTOM.get() }, 14735059, 16777215, Item.Properties()) + }) + + @JvmField + val NETHER_SKELETON: Supplier> = + registerEntity("nether_skeleton", { type, level -> NetherSkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val NETHER_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("nether_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { NETHER_SKELETON.get() }, 5570560, 8720914, Item.Properties()) + }) + + @JvmField + val NETHER_SKELETON_WIZARD: Supplier> = + registerEntity("nether_skeleton_wizard", { type, level -> NetherSkeletonWizard(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val NETHER_SKELETON_WIZARD_EGG: DeferredItem = + SPAWN_EGGS.register("nether_skeleton_wizard_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { NETHER_SKELETON_WIZARD.get() }, 5636096, 8786450, Item.Properties()) + }) + + @JvmField + val OBSIDIAN_GOLEM: Supplier> = + registerEntity("obsidian_golem", { type, level -> ObsidianGolem(type, level) }, MobCategory.CREATURE) { + sized(1.40f, 2.90f).fireImmune() + } + + @JvmField + val OBSIDIAN_GOLEM_EGG: DeferredItem = + SPAWN_EGGS.register("obsidian_golem_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { OBSIDIAN_GOLEM.get() }, 3453523, 5832578, Item.Properties()) + }) + + @JvmField + val PILLAGER_BY_BOSS: Supplier> = + registerEntity("pillager_by_boss", { type, level -> PillagerByBoss(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val PILLAGER_BY_BOSS_EGG: DeferredItem = + SPAWN_EGGS.register("pillager_by_boss_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { PILLAGER_BY_BOSS.get() }, 5392712, 8418675, Item.Properties()) + }) + + @JvmField + val PIRATE: Supplier> = + registerEntity("pirate", { type, level -> Pirate(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val PIRATE_EGG: DeferredItem = + SPAWN_EGGS.register("pirate_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { PIRATE.get() }, 10072628, 14810968, Item.Properties()) + }) + + @JvmField + val PLAYER_GHOST: Supplier> = + registerEntity("player_ghost", { type, level -> PlayerGhost(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val PLAYER_GHOST_EGG: DeferredItem = + SPAWN_EGGS.register("player_ghost_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { PLAYER_GHOST.get() }, 8092539, 12105912, Item.Properties()) + }) + + @JvmField + val POLAR_WOLF: Supplier> = + registerEntity("polar_wolf", { type, level -> PolarWolf(type, level) }, MobCategory.CREATURE) { + sized(0.90f, 1.20f) + } + + @JvmField + val POLAR_WOLF_EGG: DeferredItem = + SPAWN_EGGS.register("polar_wolf_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { POLAR_WOLF.get() }, 11089074, 16144639, Item.Properties()) + }) + + @JvmField + val PREDATORS: Supplier> = + registerEntity("predators", { type, level -> Predators(type, level) }, MobCategory.MONSTER) { + sized(2.50f, 4.50f).fireImmune() + } + + @JvmField + val PREDATORS_EGG: DeferredItem = + SPAWN_EGGS.register("predators_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { PREDATORS.get() }, 9319602, 13785343, Item.Properties()) + }) + + @JvmField + val PUMPKIN_SLIME: Supplier> = + registerEntity("pumpkin_slime", { type, level -> PumpkinSlime(type, level) }, MobCategory.MONSTER) { + sized(0.50f, 0.50f) + } + + @JvmField + val PUMPKIN_SLIME_EGG: DeferredItem = + SPAWN_EGGS.register("pumpkin_slime_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { PUMPKIN_SLIME.get() }, 12414743, 16754738, Item.Properties()) + }) + + @JvmField + val RADIATE_CREEPER: Supplier> = + registerEntity("radiate_creeper", { type, level -> RadiateCreeper(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val RADIATE_CREEPER_EGG: DeferredItem = + SPAWN_EGGS.register("radiate_creeper_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { RADIATE_CREEPER.get() }, 999437, 2517027, Item.Properties()) + }) + + @JvmField + val RADIATE_ENDERMAN: Supplier> = + registerEntity("radiate_enderman", { type, level -> RadiateEnderman(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 2.90f) + } + + @JvmField + val RADIATE_ENDERMAN_EGG: DeferredItem = + SPAWN_EGGS.register("radiate_enderman_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { RADIATE_ENDERMAN.get() }, 858375, 2307099, Item.Properties()) + }) + + @JvmField + val RADIATE_SKELETON: Supplier> = + registerEntity("radiate_skeleton", { type, level -> RadiateSkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val RADIATE_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("radiate_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { RADIATE_SKELETON.get() }, 10529697, 15399403, Item.Properties()) + }) + + @JvmField + val RADIATE_SPIDER: Supplier> = + registerEntity("radiate_spider", { type, level -> RadiateSpider(type, level) }, MobCategory.MONSTER) { + sized(1.68f, 1.08f) + } + + @JvmField + val RADIATE_SPIDER_EGG: DeferredItem = + SPAWN_EGGS.register("radiate_spider_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { RADIATE_SPIDER.get() }, 7499625, 11315360, Item.Properties()) + }) + + @JvmField + val REAL_SOUL: Supplier> = + registerEntity("real_soul", { type, level -> RealSoul(type, level) }, MobCategory.MONSTER) { + sized(1.20f, 3.00f) + } + + @JvmField + val REAL_SOUL_EGG: DeferredItem = + SPAWN_EGGS.register("real_soul_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { REAL_SOUL.get() }, 15790320, 16777215, Item.Properties()) + }) + + @JvmField + val RUMORER: Supplier> = + registerEntity("rumorer", { type, level -> Rumorer(type, level) }, MobCategory.MONSTER) { + sized(0.70f, 1.20f) + } + + @JvmField + val RUMORER_EGG: DeferredItem = + SPAWN_EGGS.register("rumorer_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { RUMORER.get() }, 1184274, 2829099, Item.Properties()) + }) + + @JvmField + val SARDINE: Supplier> = + registerEntity("sardine", { type, level -> Sardine(type, level) }, MobCategory.WATER_CREATURE) { + sized(0.60f, 0.30f) + } + + @JvmField + val SARDINE_EGG: DeferredItem = + SPAWN_EGGS.register("sardine_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SARDINE.get() }, 8495030, 12642559, Item.Properties()) + }) + + private val CFG_SAUCER = MobConfig("saucer", health = 9.0, speed = 0.080, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = false, rangedInterval = 40, targets = listOf("player")) + + @JvmField + val SAUCER: Supplier> = + registerEntity("saucer", { type, level -> BedrockMob(type, level, CFG_SAUCER) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f) + } + + @JvmField + val SAUCER_EGG: DeferredItem = + SPAWN_EGGS.register("saucer_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SAUCER.get() }, 6912397, 10532560, Item.Properties()) + }) + + private val CFG_SEA_URCHIN = MobConfig("sea_urchin", health = 6.0, speed = 0.080, attackDamage = 4.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = true, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val SEA_URCHIN: Supplier> = + registerEntity("sea_urchin", { type, level -> BedrockMob(type, level, CFG_SEA_URCHIN) }, MobCategory.WATER_CREATURE) { + sized(0.80f, 0.80f) + } + + @JvmField + val SEA_URCHIN_EGG: DeferredItem = + SPAWN_EGGS.register("sea_urchin_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SEA_URCHIN.get() }, 591383, 1972528, Item.Properties()) + }) + + @JvmField + val SHADOW_ARCHER: Supplier> = + registerEntity("shadow_archer", { type, level -> ShadowArcher(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val SHADOW_ARCHER_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_archer_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_ARCHER.get() }, 8220015, 12297640, Item.Properties()) + }) + + @JvmField + val SHADOW_CREEPER: Supplier> = + registerEntity("shadow_creeper", { type, level -> ShadowCreeper(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val SHADOW_CREEPER_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_creeper_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_CREEPER.get() }, 10564786, 15423743, Item.Properties()) + }) + + private val CFG_SHADOW_OF_DEEP = MobConfig("shadow_of_deep", health = 40.0, speed = 0.300, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem")) + + @JvmField + val SHADOW_OF_DEEP: Supplier> = + registerEntity("shadow_of_deep", { type, level -> BedrockMob(type, level, CFG_SHADOW_OF_DEEP) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SHADOW_OF_DEEP_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_of_deep_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_OF_DEEP.get() }, 4603453, 7366244, Item.Properties()) + }) + + @JvmField + val SHADOW_OF_SEA: Supplier> = + registerEntity("shadow_of_sea", { type, level -> ShadowOfSea(type, level) }, MobCategory.WATER_CREATURE) { + sized(0.90f, 0.50f) + } + + @JvmField + val SHADOW_OF_SEA_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_of_sea_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_OF_SEA.get() }, 14213085, 16777215, Item.Properties()) + }) + + @JvmField + val SHADOW_SKELETON: Supplier> = + registerEntity("shadow_skeleton", { type, level -> ShadowSkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SHADOW_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_SKELETON.get() }, 11678786, 16734315, Item.Properties()) + }) + + @JvmField + val SHADOW_SKELETON_PUPPET: Supplier> = + registerEntity("shadow_skeleton_puppet", { type, level -> ShadowSkeletonPuppet(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SHADOW_SKELETON_PUPPET_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_skeleton_puppet_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_SKELETON_PUPPET.get() }, 5056854, 8014213, Item.Properties()) + }) + + private val CFG_SHADOW_SOUL_1 = MobConfig("shadow_soul_1", health = 200.0, speed = 0.150, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.70, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem")) + + @JvmField + val SHADOW_SOUL_1: Supplier> = + registerEntity("shadow_soul_1", { type, level -> BedrockMob(type, level, CFG_SHADOW_SOUL_1) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val SHADOW_SOUL_1_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_soul_1_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_SOUL_1.get() }, 7169110, 10852742, Item.Properties()) + }) + + private val CFG_SHADOW_SOUL_2 = MobConfig("shadow_soul_2", health = 200.0, speed = 0.150, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 0.70, xp = 5, fireImmune = true, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem")) + + @JvmField + val SHADOW_SOUL_2: Supplier> = + registerEntity("shadow_soul_2", { type, level -> BedrockMob(type, level, CFG_SHADOW_SOUL_2) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val SHADOW_SOUL_2_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_soul_2_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_SOUL_2.get() }, 7169360, 10918526, Item.Properties()) + }) + + @JvmField + val SHADOW_ZOMBIE: Supplier> = + registerEntity("shadow_zombie", { type, level -> ShadowZombie(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SHADOW_ZOMBIE_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_zombie_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_ZOMBIE.get() }, 3451314, 5830399, Item.Properties()) + }) + + @JvmField + val SHADOW_ZOMBIE_PUPPET: Supplier> = + registerEntity("shadow_zombie_puppet", { type, level -> ShadowZombiePuppet(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SHADOW_ZOMBIE_PUPPET_EGG: DeferredItem = + SPAWN_EGGS.register("shadow_zombie_puppet_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SHADOW_ZOMBIE_PUPPET.get() }, 4791894, 7682950, Item.Properties()) + }) + + @JvmField + val SIMPLE_GLIDER: Supplier> = + registerEntity("simple_glider", { type, level -> SimpleGlider(type, level) }, MobCategory.CREATURE) { + sized(0.98f, 0.70f) + } + + @JvmField + val SIMPLE_GLIDER_EGG: DeferredItem = + SPAWN_EGGS.register("simple_glider_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SIMPLE_GLIDER.get() }, 7830655, 11713213, Item.Properties()) + }) + + @JvmField + val SKELETON_ASSASSIN: Supplier> = + registerEntity("skeleton_assassin", { type, level -> SkeletonAssassin(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SKELETON_ASSASSIN_EGG: DeferredItem = + SPAWN_EGGS.register("skeleton_assassin_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SKELETON_ASSASSIN.get() }, 11052968, 16119029, Item.Properties()) + }) + + @JvmField + val SKELETON_KNIGHT: Supplier> = + registerEntity("skeleton_knight", { type, level -> SkeletonKnight(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SKELETON_KNIGHT_EGG: DeferredItem = + SPAWN_EGGS.register("skeleton_knight_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SKELETON_KNIGHT.get() }, 10855845, 15856113, Item.Properties()) + }) + + @JvmField + val SKELETON_KNIGHT_COMMANDER: Supplier> = + registerEntity("skeleton_knight_commander", { type, level -> SkeletonKnightCommander(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SKELETON_KNIGHT_COMMANDER_EGG: DeferredItem = + SPAWN_EGGS.register("skeleton_knight_commander_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SKELETON_KNIGHT_COMMANDER.get() }, 7681202, 11557119, Item.Properties()) + }) + + @JvmField + val SKELETON_WARRIOR: Supplier> = + registerEntity("skeleton_warrior", { type, level -> SkeletonWarrior(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f).fireImmune() + } + + @JvmField + val SKELETON_WARRIOR_EGG: DeferredItem = + SPAWN_EGGS.register("skeleton_warrior_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SKELETON_WARRIOR.get() }, 10790052, 15790320, Item.Properties()) + }) + + @JvmField + val SKELETON_WIZARD: Supplier> = + registerEntity("skeleton_wizard", { type, level -> SkeletonWizard(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SKELETON_WIZARD_EGG: DeferredItem = + SPAWN_EGGS.register("skeleton_wizard_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SKELETON_WIZARD.get() }, 10987431, 16053236, Item.Properties()) + }) + + @JvmField + val SOLDIER: Supplier> = + registerEntity("soldier", { type, level -> Soldier(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SOLDIER_EGG: DeferredItem = + SPAWN_EGGS.register("soldier_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SOLDIER.get() }, 3435698, 5809407, Item.Properties()) + }) + + @JvmField + val SON_OF_CHAOS: Supplier> = + registerEntity("son_of_chaos", { type, level -> SonOfChaos(type, level) }, MobCategory.CREATURE) { + sized(0.70f, 1.45f) + } + + @JvmField + val SON_OF_CHAOS_EGG: DeferredItem = + SPAWN_EGGS.register("son_of_chaos_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SON_OF_CHAOS.get() }, 8106548, 12123992, Item.Properties()) + }) + + @JvmField + val SON_OF_NATURE: Supplier> = + registerEntity("son_of_nature", { type, level -> SonOfNature(type, level) }, MobCategory.CREATURE) { + sized(0.70f, 1.45f) + } + + @JvmField + val SON_OF_NATURE_EGG: DeferredItem = + SPAWN_EGGS.register("son_of_nature_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SON_OF_NATURE.get() }, 3110403, 5354006, Item.Properties()) + }) + + @JvmField + val SOUL: Supplier> = + registerEntity("soul", { type, level -> Soul(type, level) }, MobCategory.MONSTER) { + sized(0.35f, 0.60f).fireImmune() + } + + @JvmField + val SOUL_EGG: DeferredItem = + SPAWN_EGGS.register("soul_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SOUL.get() }, 15921906, 16777215, Item.Properties()) + }) + + @JvmField + val SOUL_BLAZE: Supplier> = + registerEntity("soul_blaze", { type, level -> SoulBlaze(type, level) }, MobCategory.MONSTER) { + sized(0.50f, 1.80f).fireImmune() + } + + @JvmField + val SOUL_BLAZE_EGG: DeferredItem = + SPAWN_EGGS.register("soul_blaze_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SOUL_BLAZE.get() }, 3057078, 5304831, Item.Properties()) + }) + + @JvmField + val SOUL_INSECT: Supplier> = + registerEntity("soul_insect", { type, level -> SoulInsect(type, level) }, MobCategory.WATER_CREATURE) { + sized(0.80f, 0.60f).fireImmune() + } + + @JvmField + val SOUL_INSECT_EGG: DeferredItem = + SPAWN_EGGS.register("soul_insect_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SOUL_INSECT.get() }, 12567747, 16777215, Item.Properties()) + }) + + @JvmField + val SOUL_SKELETON: Supplier> = + registerEntity("soul_skeleton", { type, level -> SoulSkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SOUL_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("soul_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SOUL_SKELETON.get() }, 3453551, 5832616, Item.Properties()) + }) + + private val CFG_SOUL_SOLDIER = MobConfig("soul_soldier", health = 50.0, speed = 0.250, attackDamage = 3.0, followRange = 32.0, knockbackResistance = 1.00, xp = 5, fireImmune = false, undead = false, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val SOUL_SOLDIER: Supplier> = + registerEntity("soul_soldier", { type, level -> BedrockMob(type, level, CFG_SOUL_SOLDIER) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val SOUL_SOLDIER_EGG: DeferredItem = + SPAWN_EGGS.register("soul_soldier_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SOUL_SOLDIER.get() }, 7712939, 11599865, Item.Properties()) + }) + + @JvmField + val SOUL_ZOMBIE: Supplier> = + registerEntity("soul_zombie", { type, level -> SoulZombie(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f) + } + + @JvmField + val SOUL_ZOMBIE_EGG: DeferredItem = + SPAWN_EGGS.register("soul_zombie_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SOUL_ZOMBIE.get() }, 3450802, 5829631, Item.Properties()) + }) + + @JvmField + val STAR: Supplier> = + registerEntity("star", { type, level -> Star(type, level) }, MobCategory.MONSTER) { + sized(1.00f, 1.00f).fireImmune() + } + + @JvmField + val STAR_EGG: DeferredItem = + SPAWN_EGGS.register("star_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { STAR.get() }, 4370996, 7077720, Item.Properties()) + }) + + @JvmField + val STONE_GOLEM: Supplier> = + registerEntity("stone_golem", { type, level -> StoneGolem(type, level) }, MobCategory.CREATURE) { + sized(1.40f, 2.90f) + } + + @JvmField + val STONE_GOLEM_EGG: DeferredItem = + SPAWN_EGGS.register("stone_golem_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { STONE_GOLEM.get() }, 3453519, 5832573, Item.Properties()) + }) + + @JvmField + val SWAMP_DROWNED: Supplier> = + registerEntity("swamp_drowned", { type, level -> SwampDrowned(type, level) }, MobCategory.WATER_CREATURE) { + sized(0.60f, 1.90f) + } + + @JvmField + val SWAMP_DROWNED_EGG: DeferredItem = + SPAWN_EGGS.register("swamp_drowned_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SWAMP_DROWNED.get() }, 7372126, 11123601, Item.Properties()) + }) + + @JvmField + val SWAMP_GOLEM: Supplier> = + registerEntity("swamp_golem", { type, level -> SwampGolem(type, level) }, MobCategory.WATER_CREATURE) { + sized(0.60f, 2.00f).fireImmune() + } + + @JvmField + val SWAMP_GOLEM_EGG: DeferredItem = + SPAWN_EGGS.register("swamp_golem_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { SWAMP_GOLEM.get() }, 5531198, 8690534, Item.Properties()) + }) + + @JvmField + val TNT_CREEPER: Supplier> = + registerEntity("tnt_creeper", { type, level -> TntCreeper(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.80f).fireImmune() + } + + @JvmField + val TNT_CREEPER_EGG: DeferredItem = + SPAWN_EGGS.register("tnt_creeper_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { TNT_CREEPER.get() }, 11760225, 16755860, Item.Properties()) + }) + + @JvmField + val TNT_SNOW_MAN: Supplier> = + registerEntity("tnt_snow_man", { type, level -> TntSnowMan(type, level) }, MobCategory.CREATURE) { + sized(0.40f, 1.80f) + } + + @JvmField + val TNT_SNOW_MAN_EGG: DeferredItem = + SPAWN_EGGS.register("tnt_snow_man_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { TNT_SNOW_MAN.get() }, 14735315, 16777215, Item.Properties()) + }) + + @JvmField + val VAMPIRE_BAT: Supplier> = + registerEntity("vampire_bat", { type, level -> VampireBat(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.72f) + } + + @JvmField + val VAMPIRE_BAT_EGG: DeferredItem = + SPAWN_EGGS.register("vampire_bat_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { VAMPIRE_BAT.get() }, 11705140, 16769880, Item.Properties()) + }) + + @JvmField + val VAMPIRE_BAT_BY_BOSS: Supplier> = + registerEntity("vampire_bat_by_boss", { type, level -> VampireBatByBoss(type, level) }, MobCategory.MONSTER) { + sized(0.40f, 0.72f) + } + + @JvmField + val VAMPIRE_BAT_BY_BOSS_EGG: DeferredItem = + SPAWN_EGGS.register("vampire_bat_by_boss_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { VAMPIRE_BAT_BY_BOSS.get() }, 7419058, 11229439, Item.Properties()) + }) + + @JvmField + val VENGEFUL_GHOST: Supplier> = + registerEntity("vengeful_ghost", { type, level -> VengefulGhost(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val VENGEFUL_GHOST_EGG: DeferredItem = + SPAWN_EGGS.register("vengeful_ghost_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { VENGEFUL_GHOST.get() }, 8091769, 12104885, Item.Properties()) + }) + + @JvmField + val VINDICATOR_BY_BOSS: Supplier> = + registerEntity("vindicator_by_boss", { type, level -> VindicatorByBoss(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val VINDICATOR_BY_BOSS_EGG: DeferredItem = + SPAWN_EGGS.register("vindicator_by_boss_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { VINDICATOR_BY_BOSS.get() }, 6447970, 9934743, Item.Properties()) + }) + + @JvmField + val WARPED_SKELETON: Supplier> = + registerEntity("warped_skeleton", { type, level -> WarpedSkeleton(type, level) }, MobCategory.MONSTER) { + sized(0.63f, 1.98f).fireImmune() + } + + @JvmField + val WARPED_SKELETON_EGG: DeferredItem = + SPAWN_EGGS.register("warped_skeleton_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { WARPED_SKELETON.get() }, 938858, 2458017, Item.Properties()) + }) + + @JvmField + val WATCHER: Supplier> = + registerEntity("watcher", { type, level -> Watcher(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val WATCHER_EGG: DeferredItem = + SPAWN_EGGS.register("watcher_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { WATCHER.get() }, 11678858, 16734412, Item.Properties()) + }) + + private val CFG_WEREWOLF = MobConfig("werewolf", health = 60.0, speed = 0.250, attackDamage = 5.0, followRange = 32.0, knockbackResistance = 0.75, xp = 5, fireImmune = false, undead = true, water = false, friendly = false, melee = true, rangedInterval = 40, targets = listOf("player", "iron_golem", "snow_golem", "villager")) + + @JvmField + val WEREWOLF: Supplier> = + registerEntity("werewolf", { type, level -> BedrockMob(type, level, CFG_WEREWOLF) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val WEREWOLF_EGG: DeferredItem = + SPAWN_EGGS.register("werewolf_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { WEREWOLF.get() }, 4220275, 6855342, Item.Properties()) + }) + + @JvmField + val ZOMBIE_FISH: Supplier> = + registerEntity("zombie_fish", { type, level -> ZombieFish(type, level) }, MobCategory.WATER_CREATURE) { + sized(0.50f, 0.50f) + } + + @JvmField + val ZOMBIE_FISH_EGG: DeferredItem = + SPAWN_EGGS.register("zombie_fish_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ZOMBIE_FISH.get() }, 11678835, 16734381, Item.Properties()) + }) + + @JvmField + val ZOMBIE_SUMMONER: Supplier> = + registerEntity("zombie_summoner", { type, level -> ZombieSummoner(type, level) }, MobCategory.MONSTER) { + sized(0.60f, 1.90f) + } + + @JvmField + val ZOMBIE_SUMMONER_EGG: DeferredItem = + SPAWN_EGGS.register("zombie_summoner_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ZOMBIE_SUMMONER.get() }, 3239011, 5547160, Item.Properties()) + }) + + // ==== 属性 ==== + data class SpawnEntry(val type: Supplier>, val rule: String) + + @JvmStatic + val ATTRIBUTE_ENTRIES: List>, Supplier>> = listOf( + ABYSSAL_CONTROLLER to Supplier { BedrockMob.createAttributes(CFG_ABYSSAL_CONTROLLER) }, + ABYSSAL_SHADOW to Supplier { BedrockMob.createAttributes(CFG_ABYSSAL_SHADOW) }, + ANGRY_CHICKEN to Supplier { net.minecraft.world.entity.animal.Chicken.createAttributes() }, + ARCHER to Supplier { net.minecraft.world.entity.monster.Pillager.createAttributes() }, + ASH_BLAZE to Supplier { net.minecraft.world.entity.monster.Blaze.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + ASH_BOMB to Supplier { BedrockMob.createAttributes(CFG_ASH_BOMB) }, + ASH_HORSE to Supplier { BedrockMob.createAttributes(CFG_ASH_HORSE) }, + ASH_HORSE_HEAD to Supplier { BedrockMob.createAttributes(CFG_ASH_HORSE_HEAD) }, + ASH_KNIGHT to Supplier { BedrockMob.createAttributes(CFG_ASH_KNIGHT) }, + ASH_KNIGHT_HEAD to Supplier { BedrockMob.createAttributes(CFG_ASH_KNIGHT_HEAD) }, + ASH_PUFFERFISH to Supplier { net.minecraft.world.entity.animal.AbstractFish.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 6.0) }, + ASH_SWORD to Supplier { BedrockMob.createAttributes(CFG_ASH_SWORD) }, + ASH_SWORD_PHANTOM to Supplier { BedrockMob.createAttributes(CFG_ASH_SWORD_PHANTOM) }, + BABY_ENDER_DRAGON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 300.0) }, + BAT_CHARGER to Supplier { net.minecraft.world.entity.ambient.Bat.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0) }, + BLACKSTONE_THORN to Supplier { BedrockMob.createAttributes(CFG_BLACKSTONE_THORN) }, + BLOOD_ZOMBIE to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 50.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + BOMBER to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0) }, + BROWN_BEAR to Supplier { net.minecraft.world.entity.animal.PolarBear.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0) }, + CARNAGER to Supplier { net.minecraft.world.entity.monster.Vindicator.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 35.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + CHEST_MONSTER to Supplier { BedrockMob.createAttributes(CFG_CHEST_MONSTER) }, + CHESTER to Supplier { BedrockMob.createAttributes(CFG_CHESTER) }, + CLAM to Supplier { BedrockMob.createAttributes(CFG_CLAM) }, + CRAB to Supplier { BedrockMob.createAttributes(CFG_CRAB) }, + CRIMSON_SLIME to Supplier { net.minecraft.world.entity.monster.Monster.createMonsterAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0) }, + DARK_SNOW_MAN to Supplier { net.minecraft.world.entity.animal.SnowGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 15.0) }, + DARK_WEREWOLF to Supplier { BedrockMob.createAttributes(CFG_DARK_WEREWOLF) }, + DOCTOR to Supplier { net.minecraft.world.entity.npc.Villager.createAttributes() }, + ELF_OF_ASH to Supplier { net.minecraft.world.entity.monster.Vex.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + ELF_OF_CHAOS to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes() }, + ELF_OF_DEEP to Supplier { net.minecraft.world.entity.monster.Vex.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 10.0) }, + ELF_OF_DUST to Supplier { net.minecraft.world.entity.monster.Vex.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + ENCHANT_ARMOR to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 50.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 6.0) }, + ENCHANT_ARMOR_BY_BOSS to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 50.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 6.0) }, + ENCHANT_DIAMOND_ARMOR to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 60.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 8.0) }, + ENCHANT_ILLAGER to Supplier { net.minecraft.world.entity.monster.Evoker.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 700.0) }, + ENCHANT_ILLAGER_1 to Supplier { net.minecraft.world.entity.monster.Evoker.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 700.0) }, + ENCHANT_ILLAGER_2 to Supplier { net.minecraft.world.entity.monster.Vindicator.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 400.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 1.0) }, + END_STONE_GOLEM to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 60.0) }, + ENDER_SNAIL to Supplier { BedrockMob.createAttributes(CFG_ENDER_SNAIL) }, + ENDER_SNAKE to Supplier { BedrockMob.createAttributes(CFG_ENDER_SNAKE) }, + ENDER_WITCH to Supplier { net.minecraft.world.entity.monster.Witch.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 10.0) }, + ENDER_WITCH_PUPPET to Supplier { net.minecraft.world.entity.monster.Witch.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 2.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 4.0) }, + ENTITY_SOUL to Supplier { BedrockMob.createAttributes(CFG_ENTITY_SOUL) }, + ENTITY_SOUL_1 to Supplier { BedrockMob.createAttributes(CFG_ENTITY_SOUL_1) }, + ESCAPED_SOUL_ENTITY to Supplier { BedrockMob.createAttributes(CFG_ESCAPED_SOUL_ENTITY) }, + EVERLASTING_WINTER_GHAST to Supplier { BedrockMob.createAttributes(CFG_EVERLASTING_WINTER_GHAST) }, + EVERLASTING_WINTER_GHAST_1 to Supplier { net.minecraft.world.entity.monster.Ghast.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 350.0) }, + EVERLASTING_WINTER_SHADOW to Supplier { BedrockMob.createAttributes(CFG_EVERLASTING_WINTER_SHADOW) }, + EVIL_SNOW_MAN to Supplier { net.minecraft.world.entity.animal.SnowGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 10.0) }, + FIRE_STORM to Supplier { net.minecraft.world.entity.monster.Blaze.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + FRIENDLY_LITTLE_SOUL to Supplier { BedrockMob.createAttributes(CFG_FRIENDLY_LITTLE_SOUL) }, + FRIENDLY_SPIDER to Supplier { net.minecraft.world.entity.monster.Spider.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 15.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + FROZEN_GHAST to Supplier { net.minecraft.world.entity.monster.Ghast.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 15.0) }, + FROZEN_HEART to Supplier { BedrockMob.createAttributes(CFG_FROZEN_HEART) }, + FROZEN_HEART_SLEEPING to Supplier { BedrockMob.createAttributes(CFG_FROZEN_HEART_SLEEPING) }, + FROZEN_MAN to Supplier { net.minecraft.world.entity.animal.SnowGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0) }, + FROZEN_SHADOW to Supplier { BedrockMob.createAttributes(CFG_FROZEN_SHADOW) }, + FROZEN_SPIDER to Supplier { net.minecraft.world.entity.monster.Spider.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + GARGOYLE to Supplier { net.minecraft.world.entity.ambient.Bat.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 23.0) }, + GHOST_DIAMOND_AXE to Supplier { BedrockMob.createAttributes(CFG_GHOST_DIAMOND_AXE) }, + GHOST_DIAMOND_STAFF to Supplier { BedrockMob.createAttributes(CFG_GHOST_DIAMOND_STAFF) }, + GHOST_DIAMOND_SWORD to Supplier { BedrockMob.createAttributes(CFG_GHOST_DIAMOND_SWORD) }, + GHOST_IRON_AXE to Supplier { BedrockMob.createAttributes(CFG_GHOST_IRON_AXE) }, + GHOST_IRON_SWORD to Supplier { BedrockMob.createAttributes(CFG_GHOST_IRON_SWORD) }, + GHOST_WOODEN_STAFF to Supplier { BedrockMob.createAttributes(CFG_GHOST_WOODEN_STAFF) }, + GHOST_WOODEN_SWORD to Supplier { BedrockMob.createAttributes(CFG_GHOST_WOODEN_SWORD) }, + GINGERBREAD_MAN_BY_TOTEM to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 3.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 1.0) }, + GOBLIN to Supplier { BedrockMob.createAttributes(CFG_GOBLIN) }, + GOBLIN_SNIPER to Supplier { BedrockMob.createAttributes(CFG_GOBLIN_SNIPER) }, + GOBLIN_WIZARD to Supplier { BedrockMob.createAttributes(CFG_GOBLIN_WIZARD) }, + HOST_OF_DEEP to Supplier { BedrockMob.createAttributes(CFG_HOST_OF_DEEP) }, + ICE_BAT to Supplier { net.minecraft.world.entity.ambient.Bat.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 10.0) }, + ICE_BLAZE to Supplier { net.minecraft.world.entity.monster.Blaze.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 35.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + ICE_CREEPER to Supplier { net.minecraft.world.entity.monster.Creeper.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 7.0) }, + ICE_MONSTER to Supplier { BedrockMob.createAttributes(CFG_ICE_MONSTER) }, + ICE_SPIRIT to Supplier { BedrockMob.createAttributes(CFG_ICE_SPIRIT) }, + ICE_THORN to Supplier { BedrockMob.createAttributes(CFG_ICE_THORN) }, + ICE_WIZARD to Supplier { BedrockMob.createAttributes(CFG_ICE_WIZARD) }, + ICE_ZOMBIE to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 38.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + ILLUSION_ZOMBIE to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + ILLUSIONER to Supplier { net.minecraft.world.entity.monster.Illusioner.createAttributes() }, + ILLUSIONER_PUPPET to Supplier { net.minecraft.world.entity.monster.Illusioner.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + JUNGLE_SPIDER to Supplier { net.minecraft.world.entity.monster.Spider.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 15.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + KING_OF_PILLAGER to Supplier { net.minecraft.world.entity.monster.Pillager.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 200.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + LAVA_LIZARD to Supplier { BedrockMob.createAttributes(CFG_LAVA_LIZARD) }, + LIFE_INSECT to Supplier { net.minecraft.world.entity.monster.Silverfish.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 7.0) }, + LITTLE_BAT to Supplier { net.minecraft.world.entity.ambient.Bat.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 5.0) }, + LITTLE_SOUL to Supplier { BedrockMob.createAttributes(CFG_LITTLE_SOUL) }, + LURK_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 60.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + LURK_ZOMBIE to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 70.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 5.0) }, + MUMMY to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 4.0) }, + MUMMY_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + MURLOC to Supplier { net.minecraft.world.entity.monster.Guardian.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 11.0) }, + MURLOC_WIZARD to Supplier { BedrockMob.createAttributes(CFG_MURLOC_WIZARD) }, + MUSHROOM_MONSTER to Supplier { BedrockMob.createAttributes(CFG_MUSHROOM_MONSTER) }, + MUSHROOM_ZOMBIE to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + MYSTICAL_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + NAUTILUS to Supplier { BedrockMob.createAttributes(CFG_NAUTILUS) }, + NETHER_CREEPER to Supplier { net.minecraft.world.entity.monster.Creeper.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 7.0) }, + NETHER_GOLEM to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 50.0) }, + NETHER_PHANTOM to Supplier { net.minecraft.world.entity.FlyingMob.createMobAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 6.0).add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 25.0) }, + NETHER_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 50.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + NETHER_SKELETON_WIZARD to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0) }, + OBSIDIAN_GOLEM to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 250.0) }, + PILLAGER_BY_BOSS to Supplier { net.minecraft.world.entity.monster.Pillager.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + PIRATE to Supplier { net.minecraft.world.entity.monster.Pillager.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 28.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + PLAYER_GHOST to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 4.0) }, + POLAR_WOLF to Supplier { net.minecraft.world.entity.animal.Wolf.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0) }, + PREDATORS to Supplier { net.minecraft.world.entity.ambient.Bat.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 300.0) }, + PUMPKIN_SLIME to Supplier { net.minecraft.world.entity.monster.Monster.createMonsterAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 6.0) }, + RADIATE_CREEPER to Supplier { net.minecraft.world.entity.monster.Creeper.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + RADIATE_ENDERMAN to Supplier { net.minecraft.world.entity.monster.EnderMan.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 50.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 7.0) }, + RADIATE_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 35.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + RADIATE_SPIDER to Supplier { net.minecraft.world.entity.monster.Spider.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + REAL_SOUL to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 150.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 17.0) }, + RUMORER to Supplier { net.minecraft.world.entity.animal.Cow.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0) }, + SARDINE to Supplier { net.minecraft.world.entity.animal.AbstractFish.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 6.0) }, + SAUCER to Supplier { BedrockMob.createAttributes(CFG_SAUCER) }, + SEA_URCHIN to Supplier { BedrockMob.createAttributes(CFG_SEA_URCHIN) }, + SHADOW_ARCHER to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 23.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + SHADOW_CREEPER to Supplier { net.minecraft.world.entity.monster.Creeper.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 12.0) }, + SHADOW_OF_DEEP to Supplier { BedrockMob.createAttributes(CFG_SHADOW_OF_DEEP) }, + SHADOW_OF_SEA to Supplier { net.minecraft.world.entity.FlyingMob.createMobAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 6.0).add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 15.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 5.0) }, + SHADOW_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0) }, + SHADOW_SKELETON_PUPPET to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 10.0) }, + SHADOW_SOUL_1 to Supplier { BedrockMob.createAttributes(CFG_SHADOW_SOUL_1) }, + SHADOW_SOUL_2 to Supplier { BedrockMob.createAttributes(CFG_SHADOW_SOUL_2) }, + SHADOW_ZOMBIE to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 55.0) }, + SHADOW_ZOMBIE_PUPPET to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 5.0) }, + SIMPLE_GLIDER to Supplier { net.minecraft.world.entity.animal.Chicken.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0) }, + SKELETON_ASSASSIN to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 45.0) }, + SKELETON_KNIGHT to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + SKELETON_KNIGHT_COMMANDER to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 150.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + SKELETON_WARRIOR to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + SKELETON_WIZARD to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0) }, + SOLDIER to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + SON_OF_CHAOS to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 40.0) }, + SON_OF_NATURE to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0) }, + SOUL to Supplier { net.minecraft.world.entity.monster.Vex.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 15.0) }, + SOUL_BLAZE to Supplier { net.minecraft.world.entity.monster.Blaze.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 8.0) }, + SOUL_INSECT to Supplier { net.minecraft.world.entity.monster.Silverfish.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 45.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 9.0) }, + SOUL_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0) }, + SOUL_SOLDIER to Supplier { BedrockMob.createAttributes(CFG_SOUL_SOLDIER) }, + SOUL_ZOMBIE to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 5.0) }, + STAR to Supplier { net.minecraft.world.entity.monster.Blaze.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 55.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + STONE_GOLEM to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 70.0) }, + SWAMP_DROWNED to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + SWAMP_GOLEM to Supplier { net.minecraft.world.entity.animal.IronGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 110.0) }, + TNT_CREEPER to Supplier { net.minecraft.world.entity.monster.Creeper.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 35.0) }, + TNT_SNOW_MAN to Supplier { net.minecraft.world.entity.animal.SnowGolem.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 15.0) }, + VAMPIRE_BAT to Supplier { net.minecraft.world.entity.ambient.Bat.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 1.0) }, + VAMPIRE_BAT_BY_BOSS to Supplier { net.minecraft.world.entity.ambient.Bat.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 3.0) }, + VENGEFUL_GHOST to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 6.0) }, + VINDICATOR_BY_BOSS to Supplier { net.minecraft.world.entity.monster.Vindicator.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 4.0) }, + WARPED_SKELETON to Supplier { net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 2.0) }, + WATCHER to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) }, + WEREWOLF to Supplier { BedrockMob.createAttributes(CFG_WEREWOLF) }, + ZOMBIE_FISH to Supplier { net.minecraft.world.entity.animal.AbstractFish.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 20.0) }, + ZOMBIE_SUMMONER to Supplier { net.minecraft.world.entity.monster.Zombie.createAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH, 30.0).add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 3.0) } + ) + + @JvmStatic + val SPAWN_ENTRIES: List = listOf( + SpawnEntry(ASH_BLAZE, "MONSTER"), + SpawnEntry(ASH_PUFFERFISH, "WATER"), + SpawnEntry(BOMBER, "MONSTER"), + SpawnEntry(BROWN_BEAR, "MOB"), + SpawnEntry(CARNAGER, "MONSTER"), + SpawnEntry(CHEST_MONSTER, "MONSTER"), + SpawnEntry(CLAM, "WATER"), + SpawnEntry(CRAB, "WATER"), + SpawnEntry(CRIMSON_SLIME, "MONSTER"), + SpawnEntry(DARK_SNOW_MAN, "MOB"), + SpawnEntry(ENDER_SNAIL, "MONSTER"), + SpawnEntry(ENDER_SNAKE, "MONSTER"), + SpawnEntry(FROZEN_SPIDER, "MONSTER"), + SpawnEntry(GOBLIN, "MONSTER"), + SpawnEntry(ICE_ZOMBIE, "MONSTER"), + SpawnEntry(ILLUSIONER, "MONSTER"), + SpawnEntry(JUNGLE_SPIDER, "MONSTER"), + SpawnEntry(LAVA_LIZARD, "MONSTER"), + SpawnEntry(LIFE_INSECT, "MONSTER"), + SpawnEntry(MUMMY, "MONSTER"), + SpawnEntry(MUMMY_SKELETON, "MONSTER"), + SpawnEntry(MURLOC, "MONSTER"), + SpawnEntry(MUSHROOM_ZOMBIE, "MONSTER"), + SpawnEntry(MYSTICAL_SKELETON, "MONSTER"), + SpawnEntry(NAUTILUS, "WATER"), + SpawnEntry(NETHER_CREEPER, "MONSTER"), + SpawnEntry(NETHER_GOLEM, "MOB"), + SpawnEntry(NETHER_PHANTOM, "MONSTER"), + SpawnEntry(NETHER_SKELETON, "MONSTER"), + SpawnEntry(OBSIDIAN_GOLEM, "MOB"), + SpawnEntry(POLAR_WOLF, "MOB"), + SpawnEntry(PUMPKIN_SLIME, "MONSTER"), + SpawnEntry(RUMORER, "MONSTER"), + SpawnEntry(SARDINE, "WATER"), + SpawnEntry(SAUCER, "MONSTER"), + SpawnEntry(SEA_URCHIN, "WATER"), + SpawnEntry(SHADOW_OF_SEA, "WATER"), + SpawnEntry(SOUL_BLAZE, "MONSTER"), + SpawnEntry(SOUL_INSECT, "WATER"), + SpawnEntry(SOUL_SKELETON, "MONSTER"), + SpawnEntry(SOUL_ZOMBIE, "MONSTER"), + SpawnEntry(STAR, "MONSTER"), + SpawnEntry(STONE_GOLEM, "MOB"), + SpawnEntry(SWAMP_DROWNED, "WATER"), + SpawnEntry(SWAMP_GOLEM, "WATER"), + SpawnEntry(VAMPIRE_BAT, "MONSTER"), + SpawnEntry(WARPED_SKELETON, "MONSTER"), + SpawnEntry(WEREWOLF, "MONSTER"), + SpawnEntry(ZOMBIE_FISH, "WATER") + ) + + @JvmStatic + fun register(modEventBus: IEventBus) { + ENTITY_TYPES.register(modEventBus) + SPAWN_EGGS.register(modEventBus) + } + + @JvmStatic + fun registerAttributes(event: EntityAttributeCreationEvent) { + for ((type, builder) in ATTRIBUTE_ENTRIES) { + // Builder 必须在事件回调期构建: 时 NeoForge 扩展属性(swim_speed 等)尚未绑定会 NPE + event.put(@Suppress("UNCHECKED_CAST") (type.get() as EntityType), builder.get().build()) + } + } + + @JvmStatic + fun registerSpawnPlacements(event: RegisterSpawnPlacementsEvent) { + for ((type, rule) in SPAWN_ENTRIES) { + if (rule == "MONSTER") { + val t = @Suppress("UNCHECKED_CAST") (type.get() as EntityType) + event.register(t, SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Monster::checkMonsterSpawnRules, RegisterSpawnPlacementsEvent.Operation.REPLACE) + } else { + val t = @Suppress("UNCHECKED_CAST") (type.get() as EntityType) + val placement = if (rule == "WATER") SpawnPlacementTypes.IN_WATER else SpawnPlacementTypes.ON_GROUND + event.register(t, placement, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Mob::checkMobSpawnRules, RegisterSpawnPlacementsEvent.Operation.REPLACE) + } + } + } +} diff --git a/src/main/java/com/dec/decisland/entity/GeneratedVanillaEntities.kt b/src/main/java/com/dec/decisland/entity/GeneratedVanillaEntities.kt new file mode 100644 index 0000000..ae28b1d --- /dev/null +++ b/src/main/java/com/dec/decisland/entity/GeneratedVanillaEntities.kt @@ -0,0 +1,386 @@ +package com.dec.decisland.entity + +import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.ambient.Bat +import net.minecraft.world.entity.animal.Chicken +import net.minecraft.world.entity.animal.Cod +import net.minecraft.world.entity.animal.Cow +import net.minecraft.world.entity.animal.IronGolem +import net.minecraft.world.entity.animal.PolarBear +import net.minecraft.world.entity.animal.Salmon +import net.minecraft.world.entity.animal.SnowGolem +import net.minecraft.world.entity.animal.Wolf +import net.minecraft.world.entity.monster.Blaze +import net.minecraft.world.entity.monster.CaveSpider +import net.minecraft.world.entity.monster.Creeper +import net.minecraft.world.entity.monster.EnderMan +import net.minecraft.world.entity.monster.Evoker +import net.minecraft.world.entity.monster.Ghast +import net.minecraft.world.entity.monster.Guardian +import net.minecraft.world.entity.monster.Illusioner +import net.minecraft.world.entity.monster.Phantom +import net.minecraft.world.entity.monster.Pillager +import net.minecraft.world.entity.monster.Silverfish +import net.minecraft.world.entity.monster.Skeleton +import net.minecraft.world.entity.monster.Slime +import net.minecraft.world.entity.monster.Spider +import net.minecraft.world.entity.monster.Vex +import net.minecraft.world.entity.monster.Vindicator +import net.minecraft.world.entity.monster.Witch +import net.minecraft.world.entity.monster.WitherSkeleton +import net.minecraft.world.entity.monster.Zombie +import net.minecraft.world.entity.npc.Villager +import net.minecraft.world.level.Level + +// 由 tools/entity_port/generate.mjs 生成:基岩版原版基类生物(原版 AI + 自定义贴图) + +class AngryChicken(entityType: EntityType, level: Level) : Chicken(entityType, level) { +} + +class Archer(entityType: EntityType, level: Level) : Pillager(entityType, level) { +} + +class AshBlaze(entityType: EntityType, level: Level) : Blaze(entityType, level) { + override fun fireImmune() = true +} + +class AshPufferfish(entityType: EntityType, level: Level) : Cod(entityType, level) { +} + +class BabyEnderDragon(entityType: EntityType, level: Level) : Skeleton(entityType, level) { + override fun fireImmune() = true +} + +class BatCharger(entityType: EntityType, level: Level) : Bat(entityType, level) { +} + +class BloodZombie(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class Bomber(entityType: EntityType, level: Level) : Zombie(entityType, level) { + override fun fireImmune() = true +} + +class BrownBear(entityType: EntityType, level: Level) : PolarBear(entityType, level) { +} + +class Carnager(entityType: EntityType, level: Level) : Vindicator(entityType, level) { +} + +class CrimsonSlime(entityType: EntityType, level: Level) : Slime(entityType, level) { +} + +class DarkSnowMan(entityType: EntityType, level: Level) : SnowGolem(entityType, level) { +} + +class Doctor(entityType: EntityType, level: Level) : Villager(entityType, level) { +} + +class ElfOfAsh(entityType: EntityType, level: Level) : Vex(entityType, level) { + override fun fireImmune() = true +} + +class ElfOfChaos(entityType: EntityType, level: Level) : IronGolem(entityType, level) { + override fun fireImmune() = true +} + +class ElfOfDeep(entityType: EntityType, level: Level) : Vex(entityType, level) { + override fun fireImmune() = true +} + +class ElfOfDust(entityType: EntityType, level: Level) : Vex(entityType, level) { + override fun fireImmune() = true +} + +class EnchantArmor(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class EnchantArmorByBoss(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class EnchantDiamondArmor(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class EnchantIllager(entityType: EntityType, level: Level) : Evoker(entityType, level) { +} + +class EnchantIllager1(entityType: EntityType, level: Level) : Evoker(entityType, level) { +} + +class EnchantIllager2(entityType: EntityType, level: Level) : Vindicator(entityType, level) { +} + +class EndStoneGolem(entityType: EntityType, level: Level) : IronGolem(entityType, level) { + override fun fireImmune() = true +} + +class EnderWitch(entityType: EntityType, level: Level) : Witch(entityType, level) { +} + +class EnderWitchPuppet(entityType: EntityType, level: Level) : Witch(entityType, level) { +} + +class EverlastingWinterGhast1(entityType: EntityType, level: Level) : Ghast(entityType, level) { + override fun fireImmune() = true +} + +class EvilSnowMan(entityType: EntityType, level: Level) : SnowGolem(entityType, level) { +} + +class FireStorm(entityType: EntityType, level: Level) : Blaze(entityType, level) { + override fun fireImmune() = true +} + +class FriendlySpider(entityType: EntityType, level: Level) : Spider(entityType, level) { +} + +class FrozenGhast(entityType: EntityType, level: Level) : Ghast(entityType, level) { + override fun fireImmune() = true +} + +class FrozenMan(entityType: EntityType, level: Level) : SnowGolem(entityType, level) { +} + +class FrozenSpider(entityType: EntityType, level: Level) : Spider(entityType, level) { +} + +class Gargoyle(entityType: EntityType, level: Level) : Bat(entityType, level) { +} + +class GingerbreadManByTotem(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class IceBat(entityType: EntityType, level: Level) : Bat(entityType, level) { +} + +class IceBlaze(entityType: EntityType, level: Level) : Blaze(entityType, level) { + override fun fireImmune() = true +} + +class IceCreeper(entityType: EntityType, level: Level) : Creeper(entityType, level) { + override fun fireImmune() = true +} + +class IceZombie(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class IllusionZombie(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class Illusioner(entityType: EntityType, level: Level) : net.minecraft.world.entity.monster.Illusioner(entityType, level) { +} + +class IllusionerPuppet(entityType: EntityType, level: Level) : Illusioner(entityType, level) { +} + +class JungleSpider(entityType: EntityType, level: Level) : CaveSpider(entityType, level) { +} + +class KingOfPillager(entityType: EntityType, level: Level) : Pillager(entityType, level) { + override fun fireImmune() = true +} + +class LifeInsect(entityType: EntityType, level: Level) : Silverfish(entityType, level) { + override fun fireImmune() = true +} + +class LittleBat(entityType: EntityType, level: Level) : Bat(entityType, level) { +} + +class LurkSkeleton(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class LurkZombie(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class Mummy(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class MummySkeleton(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class Murloc(entityType: EntityType, level: Level) : Guardian(entityType, level) { +} + +class MushroomZombie(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class MysticalSkeleton(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class NetherCreeper(entityType: EntityType, level: Level) : Creeper(entityType, level) { + override fun fireImmune() = true +} + +class NetherGolem(entityType: EntityType, level: Level) : IronGolem(entityType, level) { + override fun fireImmune() = true +} + +class NetherPhantom(entityType: EntityType, level: Level) : Phantom(entityType, level) { +} + +class NetherSkeleton(entityType: EntityType, level: Level) : WitherSkeleton(entityType, level) { + override fun fireImmune() = true +} + +class NetherSkeletonWizard(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class ObsidianGolem(entityType: EntityType, level: Level) : IronGolem(entityType, level) { + override fun fireImmune() = true +} + +class PillagerByBoss(entityType: EntityType, level: Level) : Pillager(entityType, level) { +} + +class Pirate(entityType: EntityType, level: Level) : Pillager(entityType, level) { +} + +class PlayerGhost(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class PolarWolf(entityType: EntityType, level: Level) : Wolf(entityType, level) { +} + +class Predators(entityType: EntityType, level: Level) : Bat(entityType, level) { + override fun fireImmune() = true +} + +class PumpkinSlime(entityType: EntityType, level: Level) : Slime(entityType, level) { +} + +class RadiateCreeper(entityType: EntityType, level: Level) : Creeper(entityType, level) { + override fun fireImmune() = true +} + +class RadiateEnderman(entityType: EntityType, level: Level) : EnderMan(entityType, level) { +} + +class RadiateSkeleton(entityType: EntityType, level: Level) : Skeleton(entityType, level) { + override fun fireImmune() = true +} + +class RadiateSpider(entityType: EntityType, level: Level) : CaveSpider(entityType, level) { +} + +class RealSoul(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class Rumorer(entityType: EntityType, level: Level) : Cow(entityType, level) { +} + +class Sardine(entityType: EntityType, level: Level) : Cod(entityType, level) { +} + +class ShadowArcher(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class ShadowCreeper(entityType: EntityType, level: Level) : Creeper(entityType, level) { +} + +class ShadowOfSea(entityType: EntityType, level: Level) : Phantom(entityType, level) { +} + +class ShadowSkeleton(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class ShadowSkeletonPuppet(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class ShadowZombie(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class ShadowZombiePuppet(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class SimpleGlider(entityType: EntityType, level: Level) : Chicken(entityType, level) { +} + +class SkeletonAssassin(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class SkeletonKnight(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class SkeletonKnightCommander(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class SkeletonWarrior(entityType: EntityType, level: Level) : Skeleton(entityType, level) { + override fun fireImmune() = true +} + +class SkeletonWizard(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class Soldier(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class SonOfChaos(entityType: EntityType, level: Level) : IronGolem(entityType, level) { +} + +class SonOfNature(entityType: EntityType, level: Level) : IronGolem(entityType, level) { +} + +class Soul(entityType: EntityType, level: Level) : Vex(entityType, level) { + override fun fireImmune() = true +} + +class SoulBlaze(entityType: EntityType, level: Level) : Blaze(entityType, level) { + override fun fireImmune() = true +} + +class SoulInsect(entityType: EntityType, level: Level) : Silverfish(entityType, level) { + override fun fireImmune() = true +} + +class SoulSkeleton(entityType: EntityType, level: Level) : Skeleton(entityType, level) { +} + +class SoulZombie(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class Star(entityType: EntityType, level: Level) : Blaze(entityType, level) { + override fun fireImmune() = true +} + +class StoneGolem(entityType: EntityType, level: Level) : IronGolem(entityType, level) { +} + +class SwampDrowned(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class SwampGolem(entityType: EntityType, level: Level) : IronGolem(entityType, level) { + override fun fireImmune() = true +} + +class TntCreeper(entityType: EntityType, level: Level) : Creeper(entityType, level) { + override fun fireImmune() = true +} + +class TntSnowMan(entityType: EntityType, level: Level) : SnowGolem(entityType, level) { +} + +class VampireBat(entityType: EntityType, level: Level) : Bat(entityType, level) { +} + +class VampireBatByBoss(entityType: EntityType, level: Level) : Bat(entityType, level) { +} + +class VengefulGhost(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class VindicatorByBoss(entityType: EntityType, level: Level) : Vindicator(entityType, level) { +} + +class WarpedSkeleton(entityType: EntityType, level: Level) : Skeleton(entityType, level) { + override fun fireImmune() = true +} + +class Watcher(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} + +class ZombieFish(entityType: EntityType, level: Level) : Salmon(entityType, level) { +} + +class ZombieSummoner(entityType: EntityType, level: Level) : Zombie(entityType, level) { +} diff --git a/src/main/java/com/dec/decisland/entity/ModEntities.kt b/src/main/java/com/dec/decisland/entity/ModEntities.kt index a31921a..421db46 100644 --- a/src/main/java/com/dec/decisland/entity/ModEntities.kt +++ b/src/main/java/com/dec/decisland/entity/ModEntities.kt @@ -1,8 +1,11 @@ package com.dec.decisland.entity import com.dec.decisland.DecIsland +import com.dec.decisland.entity.custom.ElfOfLeaves +import com.dec.decisland.entity.custom.LeavesGolem import com.dec.decisland.entity.custom.PumpkinBombEntity import com.dec.decisland.entity.custom.WitherCloudEntity +import com.dec.decisland.entity.custom.ZombieWarrior import com.dec.decisland.entity.projectile.AmethystEnergyBall import com.dec.decisland.entity.projectile.AmethystEnergyRay import com.dec.decisland.entity.projectile.BlizzardEnergy @@ -429,6 +432,24 @@ object ModEntities { sized(0.5f, 0.5f).clientTrackingRange(8).updateInterval(10) } + @JvmField + val ZOMBIE_WARRIOR: Supplier> = + registerEntity("zombie_warrior", { type, level -> ZombieWarrior(type, level) }, MobCategory.MONSTER) { + sized(0.6f, 1.95f).clientTrackingRange(10).updateInterval(2) + } + + @JvmField + val LEAVES_GOLEM: Supplier> = + registerEntity("leaves_golem", { type, level -> LeavesGolem(type, level) }, MobCategory.MONSTER) { + sized(1.4f, 2.9f).fireImmune().clientTrackingRange(10).updateInterval(2) + } + + @JvmField + val ELF_OF_LEAVES: Supplier> = + registerEntity("elf_of_leaves", { type, level -> ElfOfLeaves(type, level) }, MobCategory.MONSTER) { + sized(0.4f, 0.8f).clientTrackingRange(10).updateInterval(2) + } + @JvmStatic fun registry(eventBus: IEventBus) { ENTITY_TYPES.register(eventBus) diff --git a/src/main/java/com/dec/decisland/entity/custom/BedrockMob.kt b/src/main/java/com/dec/decisland/entity/custom/BedrockMob.kt new file mode 100644 index 0000000..d57dfae --- /dev/null +++ b/src/main/java/com/dec/decisland/entity/custom/BedrockMob.kt @@ -0,0 +1,148 @@ +package com.dec.decisland.entity.custom + +import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.LivingEntity +import net.minecraft.world.entity.ai.attributes.AttributeSupplier +import net.minecraft.world.entity.ai.attributes.Attributes +import net.minecraft.world.entity.ai.control.SmoothSwimmingMoveControl +import net.minecraft.world.entity.ai.goal.FloatGoal +import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal +import net.minecraft.world.entity.ai.goal.MeleeAttackGoal +import net.minecraft.world.entity.ai.goal.PanicGoal +import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal +import net.minecraft.world.entity.ai.goal.RandomSwimmingGoal +import net.minecraft.world.entity.ai.goal.RangedAttackGoal +import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal +import net.minecraft.world.entity.ai.navigation.WaterBoundPathNavigation +import net.minecraft.world.entity.animal.IronGolem +import net.minecraft.world.entity.animal.SnowGolem +import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.entity.monster.RangedAttackMob +import net.minecraft.world.entity.npc.AbstractVillager +import net.minecraft.world.entity.player.Player +import net.minecraft.world.entity.projectile.Projectile +import net.minecraft.world.level.Level +import net.minecraft.world.level.pathfinder.PathType +import java.util.function.Supplier +import kotlin.math.sqrt + +/** + * 基岩版生物的通用数据驱动基类(移植自基岩版行为包)。 + * + * 属性与 AI 均由 [MobConfig] 数据驱动: + * - 近战:MeleeAttackGoal + * - 远程:RangedAttackGoal + 已移植的模组弹射物 + * - 目标:玩家 / 村民 / 铁傀儡 / 雪傀儡 + * - 水生:WaterBoundPathNavigation + RandomSwimmingGoal + * - 火焰免疫:覆写 fireImmune() + * - 水下呼吸 / 亡灵分类:由 entity_type 标签数据驱动(can_breathe_under_water / undead 等) + */ +open class BedrockMob( + entityType: EntityType, + level: Level, + private val cfg: MobConfig, +) : Monster(entityType, level), RangedAttackMob { + + init { + xpReward = cfg.xp + if (cfg.water) { + setPathfindingMalus(PathType.WATER, 0.0f) + moveControl = SmoothSwimmingMoveControl(this, 85, 10, 0.5f, 0.1f, true) + navigation = WaterBoundPathNavigation(this, level) + } + } + + override fun fireImmune(): Boolean = cfg.fireImmune || super.fireImmune() + + override fun registerGoals() { + cfg.buildGoals(this) + } + + /** 远程攻击:发射配置的模组弹射物(未配置时静默忽略) */ + override fun performRangedAttack(target: LivingEntity, velocity: Float) { + val entityType = cfg.rangedProjectile?.get() ?: return + val projectile = entityType.create(level()) as? Projectile ?: return + val eyeX = target.x - x + val eyeY = target.getBoundingBox().minY + target.getBbHeight() / 2.0 - (y + getEyeHeight()) + val eyeZ = target.z - z + val horizontal = sqrt(eyeX * eyeX + eyeZ * eyeZ) + val lift = if (horizontal > 2.0) horizontal.toFloat() / 24.0f else 0.0f + projectile.setPos(x, y + getEyeHeight(), z) + projectile.owner = this + projectile.shoot(eyeX, eyeY + lift, eyeZ, 1.1f, 2.0f) + level().addFreshEntity(projectile) + } + + companion object { + @JvmStatic + fun createAttributes(cfg: MobConfig): AttributeSupplier.Builder = + Monster.createMonsterAttributes() + .add(Attributes.MAX_HEALTH, cfg.health) + .add(Attributes.MOVEMENT_SPEED, cfg.speed) + .add(Attributes.ATTACK_DAMAGE, cfg.attackDamage) + .add(Attributes.FOLLOW_RANGE, cfg.followRange) + .add(Attributes.KNOCKBACK_RESISTANCE, cfg.knockbackResistance) + .add(Attributes.ARMOR, cfg.armor) + } +} + +/** + * 基岩版生物 AI/属性配置(由生成器从行为包 JSON 数据化)。 + */ +class MobConfig( + val name: String, + val health: Double = 20.0, + val speed: Double = 0.25, + val attackDamage: Double = 3.0, + val followRange: Double = 32.0, + val knockbackResistance: Double = 0.0, + val armor: Double = 0.0, + val xp: Int = 5, + val fireImmune: Boolean = false, + val undead: Boolean = false, + val water: Boolean = false, + val friendly: Boolean = false, + val melee: Boolean = true, + val rangedProjectile: Supplier>? = null, + val rangedInterval: Int = 40, + val targets: List = emptyList(), +) { + fun buildGoals(mob: Monster) { + val goals = mob.goalSelector + goals.addGoal(0, FloatGoal(mob)) + if (friendly) { + goals.addGoal(1, PanicGoal(mob, 1.3)) + } + val attackSpeed = if (water) 1.0 else 1.15 + if (rangedProjectile != null) { + goals.addGoal(2, RangedAttackGoal(mob as RangedAttackMob, attackSpeed, rangedInterval, 15.0f)) + } else if (!friendly && melee) { + goals.addGoal(2, MeleeAttackGoal(mob, attackSpeed, true)) + } + if (water) { + goals.addGoal(5, RandomSwimmingGoal(mob, 1.0, 40)) + } else { + goals.addGoal(5, WaterAvoidingRandomStrollGoal(mob, 1.0)) + } + goals.addGoal(6, LookAtPlayerGoal(mob, Player::class.java, 8.0f)) + goals.addGoal(7, RandomLookAroundGoal(mob)) + + if (friendly) return + val targetGoals = mob.targetSelector + targetGoals.addGoal(1, HurtByTargetGoal(mob)) + if ("player" in targets) { + targetGoals.addGoal(2, NearestAttackableTargetGoal(mob, Player::class.java, true)) + } + if ("villager" in targets) { + targetGoals.addGoal(3, NearestAttackableTargetGoal(mob, AbstractVillager::class.java, false)) + } + if ("iron_golem" in targets) { + targetGoals.addGoal(3, NearestAttackableTargetGoal(mob, IronGolem::class.java, false)) + } + if ("snow_golem" in targets) { + targetGoals.addGoal(3, NearestAttackableTargetGoal(mob, SnowGolem::class.java, false)) + } + } +} diff --git a/src/main/java/com/dec/decisland/entity/custom/ElfOfLeaves.kt b/src/main/java/com/dec/decisland/entity/custom/ElfOfLeaves.kt new file mode 100644 index 0000000..9f4a54b --- /dev/null +++ b/src/main/java/com/dec/decisland/entity/custom/ElfOfLeaves.kt @@ -0,0 +1,100 @@ +package com.dec.decisland.entity.custom + +import com.dec.decisland.DecIsland +import com.dec.decisland.network.Networking +import net.minecraft.resources.ResourceLocation +import net.minecraft.server.level.ServerLevel +import net.minecraft.world.Difficulty +import net.minecraft.world.DifficultyInstance +import net.minecraft.world.entity.Entity +import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.MobSpawnType +import net.minecraft.world.entity.SpawnGroupData +import net.minecraft.world.entity.ai.attributes.AttributeSupplier +import net.minecraft.world.entity.ai.attributes.Attributes +import net.minecraft.world.entity.monster.Vex +import net.minecraft.world.level.Level +import net.minecraft.world.level.ServerLevelAccessor + +/** + * 绿叶精灵(移植自基岩版 dec:elf_of_leaves)。 + * + * 绿叶精华 Boss 咆哮阶段结束时召唤的辅助单位: + * - 无重力漂浮,俯冲攻击(复用 Vex 的 swoop_attack AI) + * - 仅攻击玩家,跟随范围 64 格 + * - 存在 20 秒后自爆消失(无伤害,仅粒子效果) + * - 难度伤害:简单 2 / 普通 4 / 困难 6(基岩版固定 4) + */ +class ElfOfLeaves(entityType: EntityType, level: Level) : Vex(entityType, level) { + + override fun tick() { + super.tick() + if (level().isClientSide) return + + // 拖尾粒子(对应基岩版 client 实体的 leaves_essence 发射器) + if (tickCount % TRAIL_PARTICLE_INTERVAL == 0) { + Networking.sendBedrockEmitterToTracking( + this, + LEAVES_ESSENCE_PARTICLE, + position().add(0.0, 0.4, 0.0), + 2, + ) + } + + // 20 秒后自爆消失(对应基岩版 minecraft:explode power=0 + 事件移除) + if (tickCount >= SELF_DESTRUCT_TICKS) { + val serverLevel = level() as? ServerLevel ?: return + Networking.sendBedrockEmitterToNearby( + serverLevel, + LEAVES_ESSENCE_PARTICLE, + position().add(0.0, 0.4, 0.0), + 32.0, + 6, + ) + discard() + } + } + + override fun doHurtTarget(target: Entity): Boolean { + // 攻击前按当前世界难度动态刷新攻击伤害 + getAttribute(Attributes.ATTACK_DAMAGE)?.baseValue = when (level().difficulty) { + Difficulty.HARD -> HARD_DAMAGE + Difficulty.NORMAL -> NORMAL_DAMAGE + else -> EASY_DAMAGE + } + return super.doHurtTarget(target) + } + + override fun finalizeSpawn( + level: ServerLevelAccessor, + difficulty: DifficultyInstance, + spawnType: MobSpawnType, + spawnData: SpawnGroupData?, + ): SpawnGroupData? { + val data = super.finalizeSpawn(level, difficulty, spawnType, spawnData) + health = maxHealth + return data + } + + override fun removeWhenFarAway(distanceToClosestPlayer: Double): Boolean = false + + companion object { + private const val SELF_DESTRUCT_TICKS = 400 // 20 秒 + private const val TRAIL_PARTICLE_INTERVAL = 4 + + private const val EASY_DAMAGE = 2.0 + private const val NORMAL_DAMAGE = 4.0 + private const val HARD_DAMAGE = 6.0 + + @JvmField + val LEAVES_ESSENCE_PARTICLE: ResourceLocation = + ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "leaves_essence_particle") + + @JvmStatic + fun createElfAttributes(): AttributeSupplier.Builder = Vex.createAttributes() + .add(Attributes.MAX_HEALTH, 5.0) + .add(Attributes.MOVEMENT_SPEED, 0.7) + .add(Attributes.ATTACK_DAMAGE, NORMAL_DAMAGE) + .add(Attributes.FOLLOW_RANGE, 64.0) + } +} diff --git a/src/main/java/com/dec/decisland/entity/custom/LeavesGolem.kt b/src/main/java/com/dec/decisland/entity/custom/LeavesGolem.kt new file mode 100644 index 0000000..d686703 --- /dev/null +++ b/src/main/java/com/dec/decisland/entity/custom/LeavesGolem.kt @@ -0,0 +1,298 @@ +package com.dec.decisland.entity.custom + +import com.dec.decisland.DecIsland +import com.dec.decisland.entity.ModEntities +import com.dec.decisland.network.Networking +import net.minecraft.core.BlockPos +import net.minecraft.network.chat.Component +import net.minecraft.network.syncher.EntityDataAccessor +import net.minecraft.network.syncher.EntityDataSerializers +import net.minecraft.network.syncher.SynchedEntityData +import net.minecraft.resources.ResourceLocation +import net.minecraft.server.level.ServerBossEvent +import net.minecraft.server.level.ServerLevel +import net.minecraft.server.level.ServerPlayer +import net.minecraft.sounds.SoundEvent +import net.minecraft.sounds.SoundEvents +import net.minecraft.util.Mth +import net.minecraft.world.BossEvent +import net.minecraft.world.Difficulty +import net.minecraft.world.DifficultyInstance +import net.minecraft.world.damagesource.DamageSource +import net.minecraft.world.damagesource.DamageTypes +import net.minecraft.world.effect.MobEffectInstance +import net.minecraft.world.effect.MobEffects +import net.minecraft.world.entity.Entity +import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.LivingEntity +import net.minecraft.world.entity.MobSpawnType +import net.minecraft.world.entity.SpawnGroupData +import net.minecraft.world.entity.ai.attributes.AttributeSupplier +import net.minecraft.world.entity.ai.attributes.Attributes +import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal +import net.minecraft.world.entity.ai.goal.MeleeAttackGoal +import net.minecraft.world.entity.ai.goal.MoveTowardsTargetGoal +import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal +import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal +import net.minecraft.world.entity.ai.goal.target.HurtByTargetGoal +import net.minecraft.world.entity.ai.goal.target.NearestAttackableTargetGoal +import net.minecraft.world.entity.animal.IronGolem +import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.entity.npc.AbstractVillager +import net.minecraft.world.entity.player.Player +import net.minecraft.world.level.Level +import net.minecraft.world.level.ServerLevelAccessor +import kotlin.math.min + +/** + * 绿叶精华 Boss(移植自基岩版 dec:leaves_golem)。 + * + * 战斗循环(对应基岩版 component_groups 事件链): + * 1. spawn 阶段 5 秒:无敌 + 极度缓慢(播放 spawn 破土动画) + * 2. melee 阶段 10 秒:近战追击玩家/村民/铁傀儡 + * 3. roar 阶段 1.2 秒:0.5 秒时咆哮击退周围 4 格内非怪物生物并召唤 1 只绿叶精灵 + * 然后回到 melee 阶段循环 + * + * - 难度伤害:简单 5 / 普通 7 / 困难 9(基岩版 attack range 5~9) + * - 咆哮击退伤害:简单 4 / 普通 6 / 困难 8(基岩版固定 6) + * - 难度血量:简单 150 / 普通 200 / 困难 300 + * - 免疫火焰与摔落伤害,完全抗击退,Boss 血条,玩家击杀经验 100 + */ +class LeavesGolem(entityType: EntityType, level: Level) : IronGolem(entityType, level) { + + enum class Phase { SPAWN, MELEE, ROAR } + + private val bossEvent = ServerBossEvent( + Component.translatable("entity.decisland.leaves_golem"), + BossEvent.BossBarColor.GREEN, + BossEvent.BossBarOverlay.PROGRESS, + ).apply { + setDarkenScreen(false) + setPlayBossMusic(false) + } + + var phase: Phase + get() = Phase.entries[entityData.get(DATA_PHASE).coerceIn(0, Phase.entries.lastIndex)] + private set(value) { + entityData.set(DATA_PHASE, value.ordinal) + entityData.set(DATA_STATE_TICK, tickCount) + } + + /** 当前阶段开始的 tick(双端同步,用于客户端动画计时) */ + val stateStartTick: Int get() = entityData.get(DATA_STATE_TICK) + + /** 最近一次近战命中 tick(用于客户端攻击动画) */ + val attackStartTick: Int get() = entityData.get(DATA_ATTACK_TICK) + + override fun defineSynchedData(builder: SynchedEntityData.Builder) { + super.defineSynchedData(builder) + builder.define(DATA_PHASE, Phase.SPAWN.ordinal) + builder.define(DATA_STATE_TICK, 0) + builder.define(DATA_ATTACK_TICK, -1000) + } + + override fun registerGoals() { + // 完全重写目标:不沿用铁傀儡的「攻击怪物」逻辑(精灵是己方召唤物) + goalSelector.addGoal(1, GolemMeleeGoal(this, 1.0, true)) + goalSelector.addGoal(2, MoveTowardsTargetGoal(this, 0.9, 32.0f)) + goalSelector.addGoal(6, WaterAvoidingRandomStrollGoal(this, 1.0)) + goalSelector.addGoal(7, LookAtPlayerGoal(this, Player::class.java, 6.0f)) + goalSelector.addGoal(8, RandomLookAroundGoal(this)) + targetSelector.addGoal(1, HurtByTargetGoal(this)) + targetSelector.addGoal( + 2, + NearestAttackableTargetGoal( + this, LivingEntity::class.java, 16, true, false, + ) { entity: LivingEntity -> + entity is Player || entity is AbstractVillager || + (entity is IronGolem && entity !is LeavesGolem) + }, + ) + } + + /** 近战仅允许在 MELEE 阶段出手(spawn/roar 阶段站桩) */ + private class GolemMeleeGoal(mob: LeavesGolem, speedModifier: Double, followingTargetEvenIfNotSeen: Boolean) : + MeleeAttackGoal(mob, speedModifier, followingTargetEvenIfNotSeen) { + private val golem: LeavesGolem = mob + override fun canUse(): Boolean = golem.phase == Phase.MELEE && super.canUse() + override fun canContinueToUse(): Boolean = golem.phase == Phase.MELEE && super.canContinueToUse() + } + + override fun tick() { + super.tick() + if (level().isClientSide) return + + // 基岩版 experience_reward 条件式:仅玩家击杀时掉落经验 + xpReward = if (lastHurtByPlayerTime > 0) 100 else 0 + + bossEvent.progress = Mth.clamp(health / maxHealth, 0.0f, 1.0f) + + val elapsed = tickCount - entityData.get(DATA_STATE_TICK) + when (phase) { + Phase.SPAWN -> if (elapsed >= SPAWN_TICKS) phase = Phase.MELEE + Phase.MELEE -> { + // 有目标时每 10 秒进入咆哮阶段 + if (elapsed >= MELEE_TICKS && target != null) { + phase = Phase.ROAR + navigation.stop() + playSound(SoundEvents.RAVAGER_ROAR, 1.0f, 1.0f) + } + } + Phase.ROAR -> { + navigation.stop() + if (elapsed == ROAR_HIT_TICKS) performRoarAttack() + if (elapsed >= ROAR_TICKS) { + summonElf() + phase = Phase.MELEE + } + } + } + } + + /** 咆哮:4 格内所有非怪物生物受到伤害并击退(对应基岩版 knockback_roar) */ + private fun performRoarAttack() { + val level = level() as? ServerLevel ?: return + val damage = when (level.difficulty) { + Difficulty.HARD -> ROAR_DAMAGE_HARD + Difficulty.NORMAL -> ROAR_DAMAGE_NORMAL + else -> ROAR_DAMAGE_EASY + } + level.getEntities(this, boundingBox.inflate(ROAR_RANGE)) { it is LivingEntity && it !is Monster } + .forEach { entity -> + val living = entity as LivingEntity + living.hurt(damageSources().mobAttack(this), damage) + val dx = living.x - x + val dz = living.z - z + val dist = kotlin.math.sqrt(dx * dx + dz * dz).coerceAtLeast(0.01) + living.push( + dx / dist * ROAR_KNOCKBACK, + ROAR_KNOCKBACK_UP, + dz / dist * ROAR_KNOCKBACK, + ) + living.hurtMarked = true + } + Networking.sendBedrockEmitterToNearby( + level, + LEAVES_ESSENCE_PARTICLE, + position().add(0.0, 1.5, 0.0), + 64.0, + 10, + ) + } + + /** 召唤 1 只绿叶精灵(对应基岩版 minecraft:spawn_entity dec:elf_of_leaves) */ + private fun summonElf() { + val level = level() as? ServerLevel ?: return + val elf = ModEntities.ELF_OF_LEAVES.get().create(level) ?: return + val offsetX = (random.nextDouble() - 0.5) * 4.0 + val offsetZ = (random.nextDouble() - 0.5) * 4.0 + elf.moveTo(x + offsetX, y + 1.0, z + offsetZ, random.nextFloat() * 360.0f, 0.0f) + elf.finalizeSpawn(level, level.getCurrentDifficultyAt(BlockPos.containing(elf.position())), MobSpawnType.MOB_SUMMONED, null) + level.addFreshEntity(elf) + Networking.sendBedrockEmitterToNearby(level, LEAVES_ESSENCE_PARTICLE, elf.position(), 64.0, 6) + } + + override fun doHurtTarget(target: Entity): Boolean { + // 攻击前按当前世界难度动态刷新攻击伤害 + getAttribute(Attributes.ATTACK_DAMAGE)?.baseValue = when (level().difficulty) { + Difficulty.HARD -> HARD_DAMAGE + Difficulty.NORMAL -> NORMAL_DAMAGE + else -> EASY_DAMAGE + } + val result = super.doHurtTarget(target) + if (result) entityData.set(DATA_ATTACK_TICK, tickCount) + return result + } + + override fun hurt(source: DamageSource, amount: Float): Boolean { + // spawn 阶段无敌(对应基岩版 damage_sensor deals_damage=false) + if (phase == Phase.SPAWN && !source.`is`(DamageTypes.GENERIC_KILL) && !source.`is`(DamageTypes.FELL_OUT_OF_WORLD)) { + return false + } + return super.hurt(source, amount) + } + + override fun finalizeSpawn( + level: ServerLevelAccessor, + difficulty: DifficultyInstance, + spawnType: MobSpawnType, + spawnData: SpawnGroupData?, + ): SpawnGroupData? { + val data = super.finalizeSpawn(level, difficulty, spawnType, spawnData) + + // 难度血量差异 + getAttribute(Attributes.MAX_HEALTH)?.baseValue = when (level.difficulty) { + Difficulty.HARD -> HARD_HEALTH + Difficulty.NORMAL -> NORMAL_HEALTH + else -> EASY_HEALTH + } + health = maxHealth + + // spawn 阶段:5 秒极度缓慢(播放破土动画期间站桩) + addEffect(MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, SPAWN_TICKS, 50, false, false)) + phase = Phase.SPAWN + return data + } + + override fun removeWhenFarAway(distanceToClosestPlayer: Double): Boolean = false + + // ---- Boss 血条 ---- + override fun startSeenByPlayer(player: ServerPlayer) { + super.startSeenByPlayer(player) + bossEvent.addPlayer(player) + } + + override fun stopSeenByPlayer(player: ServerPlayer) { + super.stopSeenByPlayer(player) + bossEvent.removePlayer(player) + } + + override fun remove(reason: RemovalReason) { + super.remove(reason) + bossEvent.removeAllPlayers() + } + + // ---- 音效:沿用铁傀儡 ---- + override fun getHurtSound(source: DamageSource): SoundEvent = SoundEvents.IRON_GOLEM_HURT + override fun getDeathSound(): SoundEvent = SoundEvents.IRON_GOLEM_DEATH + + companion object { + private val DATA_PHASE: EntityDataAccessor = + SynchedEntityData.defineId(LeavesGolem::class.java, EntityDataSerializers.INT) + private val DATA_STATE_TICK: EntityDataAccessor = + SynchedEntityData.defineId(LeavesGolem::class.java, EntityDataSerializers.INT) + private val DATA_ATTACK_TICK: EntityDataAccessor = + SynchedEntityData.defineId(LeavesGolem::class.java, EntityDataSerializers.INT) + + private const val SPAWN_TICKS = 100 // 5 秒 + private const val MELEE_TICKS = 200 // 10 秒 + private const val ROAR_TICKS = 24 // 1.2 秒 + private const val ROAR_HIT_TICKS = 10 // 0.5 秒 + private const val ROAR_RANGE = 4.0 + private const val ROAR_KNOCKBACK = 3.0 + private const val ROAR_KNOCKBACK_UP = 0.6 + + private const val EASY_DAMAGE = 5.0 + private const val NORMAL_DAMAGE = 7.0 + private const val HARD_DAMAGE = 9.0 + private const val ROAR_DAMAGE_EASY = 4.0f + private const val ROAR_DAMAGE_NORMAL = 6.0f + private const val ROAR_DAMAGE_HARD = 8.0f + + private const val EASY_HEALTH = 150.0 + private const val NORMAL_HEALTH = 200.0 + private const val HARD_HEALTH = 300.0 + + @JvmField + val LEAVES_ESSENCE_PARTICLE: ResourceLocation = + ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "leaves_essence_particle") + + @JvmStatic + fun createGolemAttributes(): AttributeSupplier.Builder = IronGolem.createAttributes() + .add(Attributes.MAX_HEALTH, NORMAL_HEALTH) + .add(Attributes.MOVEMENT_SPEED, 0.30) + .add(Attributes.ATTACK_DAMAGE, NORMAL_DAMAGE) + .add(Attributes.KNOCKBACK_RESISTANCE, 1.0) + .add(Attributes.FOLLOW_RANGE, 64.0) + } +} diff --git a/src/main/java/com/dec/decisland/entity/custom/ZombieWarrior.kt b/src/main/java/com/dec/decisland/entity/custom/ZombieWarrior.kt new file mode 100644 index 0000000..5a7611e --- /dev/null +++ b/src/main/java/com/dec/decisland/entity/custom/ZombieWarrior.kt @@ -0,0 +1,127 @@ +package com.dec.decisland.entity.custom + +import net.minecraft.core.Holder +import net.minecraft.util.RandomSource +import net.minecraft.world.Difficulty +import net.minecraft.world.DifficultyInstance +import net.minecraft.world.entity.Entity +import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.EquipmentSlot +import net.minecraft.world.entity.MobSpawnType +import net.minecraft.world.entity.SpawnGroupData +import net.minecraft.world.entity.ai.attributes.AttributeSupplier +import net.minecraft.world.entity.ai.attributes.Attributes +import net.minecraft.world.entity.ai.goal.LeapAtTargetGoal +import net.minecraft.world.entity.monster.Zombie +import net.minecraft.world.item.Item +import net.minecraft.world.item.ItemStack +import net.minecraft.world.item.Items +import net.minecraft.world.item.enchantment.Enchantment +import net.minecraft.world.level.Level +import net.minecraft.world.level.ServerLevelAccessor + +/** + * 僵尸战士(移植自基岩版 dec:zombie_warrior)。 + * + * 与原版僵尸的差异: + * - 难度感知攻击伤害:简单 3 / 普通 4 / 困难 6(基岩版固定 3,这里按难度梯度增强) + * - 随机最大生命值 18~30(基岩版 range_min/max) + * - 生成时随机获得「跳跃扑击」或「冲刺扑击」AI + * - 手持斧头(石/木/铁/金/钻,权重递减),10% 附魔 + * - 手持武器掉率 2%,盔甲掉率 0.05% + */ +class ZombieWarrior(entityType: EntityType, level: Level) : Zombie(entityType, level) { + + override fun doHurtTarget(target: Entity): Boolean { + // 攻击前按当前世界难度动态刷新攻击伤害 + getAttribute(Attributes.ATTACK_DAMAGE)?.baseValue = currentDifficultyDamage() + return super.doHurtTarget(target) + } + + private fun currentDifficultyDamage(): Double = when (level().difficulty) { + Difficulty.HARD -> HARD_DAMAGE + Difficulty.NORMAL -> NORMAL_DAMAGE + else -> EASY_DAMAGE + } + + override fun finalizeSpawn( + level: ServerLevelAccessor, + difficulty: DifficultyInstance, + spawnType: MobSpawnType, + spawnData: SpawnGroupData?, + ): SpawnGroupData? { + val data = super.finalizeSpawn(level, difficulty, spawnType, spawnData) + val random = level.random + + // 随机最大生命值(18~30),基岩版 range_min/range_max + getAttribute(Attributes.MAX_HEALTH)?.baseValue = random.nextInt(MIN_HEALTH, MAX_HEALTH + 1).toDouble() + health = maxHealth + + // 随机「冲刺扑击」或「跳跃扑击」AI(基岩版 randomize 组件组) + val leapHeight = if (random.nextBoolean()) SPRINT_LEAP_HEIGHT else JUMP_LEAP_HEIGHT + goalSelector.addGoal(LEAP_PRIORITY, LeapAtTargetGoal(this, leapHeight)) + + // 10% 概率给手持武器附魔(5~20 级,基岩版 enchant_with_level) + val weapon = mainHandItem + if (!weapon.isEmpty && random.nextFloat() < WEAPON_ENCHANT_CHANCE) { + enchantWeapon(random, weapon) + } + return data + } + + private fun enchantWeapon(random: RandomSource, weapon: ItemStack) { + val registryAccess = level().registryAccess() + val enchantments = registryAccess.lookupOrThrow(net.minecraft.core.registries.Registries.ENCHANTMENT) + val candidates = enchantments.listElements().toList() + if (candidates.isEmpty()) return + val enchantment: Holder = candidates[random.nextInt(candidates.size)] + val enchantmentLevel = random.nextInt(1, 4) + weapon.enchant(enchantment, enchantmentLevel) + } + + override fun populateDefaultEquipmentSlots(random: RandomSource, difficulty: DifficultyInstance) { + super.populateDefaultEquipmentSlots(random, difficulty) + setItemSlot(EquipmentSlot.MAINHAND, pickWeapon(random)) + } + + override fun getEquipmentDropChance(slot: EquipmentSlot): Float = + if (slot == EquipmentSlot.MAINHAND) WEAPON_DROP_CHANCE else ARMOR_DROP_CHANCE + + override fun removeWhenFarAway(distanceToClosestPlayer: Double): Boolean = true + + companion object { + private const val MIN_HEALTH = 18 + private const val MAX_HEALTH = 30 + private const val EASY_DAMAGE = 3.0 + private const val NORMAL_DAMAGE = 4.0 + private const val HARD_DAMAGE = 6.0 + private const val LEAP_PRIORITY = 4 + private const val SPRINT_LEAP_HEIGHT = 0.5f + private const val JUMP_LEAP_HEIGHT = 0.0f + private const val WEAPON_ENCHANT_CHANCE = 0.10f + private const val WEAPON_DROP_CHANCE = 0.02f + private const val ARMOR_DROP_CHANCE = 0.0005f + + // 基岩版 zombie_warrior_gear.json 的权重表 + private val WEAPONS: List> = listOf( + Items.STONE_AXE to 15, + Items.WOODEN_AXE to 10, + Items.IRON_AXE to 8, + Items.GOLDEN_AXE to 2, + Items.DIAMOND_AXE to 2, + ) + + private fun pickWeapon(random: RandomSource): ItemStack { + val total = WEAPONS.sumOf { it.second } + var roll = random.nextInt(total) + for ((item, weight) in WEAPONS) { + roll -= weight + if (roll < 0) return ItemStack(item) + } + return ItemStack(Items.STONE_AXE) + } + + @JvmStatic + fun createWarriorAttributes(): AttributeSupplier.Builder = Zombie.createAttributes() + } +} diff --git a/src/main/java/com/dec/decisland/events/ModClientEvents.kt b/src/main/java/com/dec/decisland/events/ModClientEvents.kt index e061527..b0d820a 100644 --- a/src/main/java/com/dec/decisland/events/ModClientEvents.kt +++ b/src/main/java/com/dec/decisland/events/ModClientEvents.kt @@ -6,11 +6,15 @@ import com.dec.decisland.client.RecoilClient import com.dec.decisland.client.bedrock.BedrockEmitterManager import com.dec.decisland.client.renderer.BedrockProjectileRenderer import com.dec.decisland.client.renderer.DartRenderer -import com.dec.decisland.client.renderer.EnergyBallBedrockRenderer +import com.dec.decisland.client.renderer.ElfOfLeavesRenderer import com.dec.decisland.client.renderer.EmptyRenderer +import com.dec.decisland.client.renderer.EnergyBallBedrockRenderer +import com.dec.decisland.client.renderer.GeneratedMobClient import com.dec.decisland.client.renderer.FashionArmorClientItemExtensions +import com.dec.decisland.client.renderer.LeavesGolemRenderer import com.dec.decisland.client.renderer.MaskClientItemExtensions import com.dec.decisland.client.renderer.PumpkinBombRenderer +import com.dec.decisland.client.renderer.ZombieWarriorRenderer import com.dec.decisland.client.gui.ClientManaOverlay import com.dec.decisland.entity.ModEntities import com.dec.decisland.entity.projectile.AmethystEnergyBall @@ -133,6 +137,9 @@ object ModClientEvents { EntityRenderers.register(ModEntities.GROWING_ENERGY_RAY.get(), ::EmptyRenderer) EntityRenderers.register(ModEntities.PUMPKIN_BOMB.get(), ::PumpkinBombRenderer) EntityRenderers.register(ModEntities.WITHER_CLOUD.get(), ::EmptyRenderer) + EntityRenderers.register(ModEntities.ZOMBIE_WARRIOR.get(), ::ZombieWarriorRenderer) + EntityRenderers.register(ModEntities.LEAVES_GOLEM.get(), ::LeavesGolemRenderer) + EntityRenderers.register(ModEntities.ELF_OF_LEAVES.get(), ::ElfOfLeavesRenderer) EntityRenderers.register(ModEntities.NIGHTMARE_SPORE.get(), ::EmptyRenderer) EntityRenderers.register(ModEntities.NIGHTMARE_RAY.get(), ::EmptyRenderer) EntityRenderers.register(ModEntities.WAVE_ENERGY.get(), ::EmptyRenderer) @@ -146,6 +153,7 @@ object ModClientEvents { EntityRenderers.register(ModEntities.BULLET_BY_LAVA_FLINTLOCK.get(), ::ThrownItemRenderer) EntityRenderers.register(ModEntities.BULLET_BY_STAR_FLINTLOCK.get(), ::ThrownItemRenderer) EntityRenderers.register(ModEntities.BULLET_BY_STORM_FLINTLOCK.get(), ::ThrownItemRenderer) + GeneratedMobClient.registerAll() } @SubscribeEvent diff --git a/src/main/java/com/dec/decisland/events/ModEventBusEvents.kt b/src/main/java/com/dec/decisland/events/ModEventBusEvents.kt index 0f1f076..2f42446 100644 --- a/src/main/java/com/dec/decisland/events/ModEventBusEvents.kt +++ b/src/main/java/com/dec/decisland/events/ModEventBusEvents.kt @@ -4,13 +4,22 @@ import com.dec.decisland.DecIsland import com.dec.decisland.client.model.ClothesModel import com.dec.decisland.client.model.EmptyModel import com.dec.decisland.client.model.FashionArmorModel +import com.dec.decisland.entity.GeneratedMobs +import com.dec.decisland.entity.ModEntities +import com.dec.decisland.entity.custom.ElfOfLeaves +import com.dec.decisland.entity.custom.LeavesGolem +import com.dec.decisland.entity.custom.ZombieWarrior import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.SpawnPlacementTypes import net.minecraft.world.entity.ai.attributes.Attributes +import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.level.levelgen.Heightmap import net.neoforged.bus.api.SubscribeEvent import net.neoforged.fml.common.EventBusSubscriber import net.neoforged.neoforge.client.event.EntityRenderersEvent import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent import net.neoforged.neoforge.event.entity.EntityAttributeModificationEvent +import net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent @EventBusSubscriber(modid = DecIsland.MOD_ID) object ModEventBusEvents { @@ -32,6 +41,23 @@ object ModEventBusEvents { @SubscribeEvent @JvmStatic fun registerAttributes(event: EntityAttributeCreationEvent) { + event.put(ModEntities.ZOMBIE_WARRIOR.get(), ZombieWarrior.createWarriorAttributes().build()) + event.put(ModEntities.LEAVES_GOLEM.get(), LeavesGolem.createGolemAttributes().build()) + event.put(ModEntities.ELF_OF_LEAVES.get(), ElfOfLeaves.createElfAttributes().build()) + GeneratedMobs.registerAttributes(event) + } + + @SubscribeEvent + @JvmStatic + fun registerSpawnPlacements(event: RegisterSpawnPlacementsEvent) { + event.register( + ModEntities.ZOMBIE_WARRIOR.get(), + SpawnPlacementTypes.ON_GROUND, + Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, + Monster::checkMonsterSpawnRules, + RegisterSpawnPlacementsEvent.Operation.REPLACE, + ) + GeneratedMobs.registerSpawnPlacements(event) } @SubscribeEvent diff --git a/src/main/java/com/dec/decisland/item/ModCreativeModeTabs.kt b/src/main/java/com/dec/decisland/item/ModCreativeModeTabs.kt index c61a351..d829904 100644 --- a/src/main/java/com/dec/decisland/item/ModCreativeModeTabs.kt +++ b/src/main/java/com/dec/decisland/item/ModCreativeModeTabs.kt @@ -2,6 +2,7 @@ package com.dec.decisland.item import com.dec.decisland.DecIsland import com.dec.decisland.block.ModBlocks +import com.dec.decisland.entity.GeneratedMobs import com.dec.decisland.item.category.Accessory import com.dec.decisland.item.category.Mask import com.dec.decisland.item.category.Material @@ -81,10 +82,26 @@ object ModCreativeModeTabs { val DECISLAND_MASKS_TAB: Supplier = registerTab( CreativeTabConfig.Builder( "decisland_masks_tab", - mapOf("en_us" to "DecIsland Masks", "zh_cn" to "DecIsland \u9762\u5177"), + mapOf("en_us" to "DecIsland Masks", "zh_cn" to "DecIsland 面具"), ).iconItem { Mask.FRANK_MASK.get() }.build(), ) + @JvmField + val DECISLAND_BLOCKS_TAB: Supplier = registerTab( + CreativeTabConfig.Builder( + "decisland_blocks_tab", + mapOf("en_us" to "DecIsland Blocks", "zh_cn" to "DecIsland 方块"), + ).iconItem { ModBlocks.RED_LANTERN.get().asItem() }.build(), + ) + + @JvmField + val DECISLAND_ENTITIES_TAB: Supplier = registerTab( + CreativeTabConfig.Builder( + "decisland_entities_tab", + mapOf("en_us" to "DecIsland Entities", "zh_cn" to "DecIsland 生物"), + ).iconItem { GeneratedMobs.GOBLIN_WIZARD_EGG.get() }.build(), + ) + private fun addItemsToTab(tabConfig: CreativeTabConfig, output: CreativeModeTab.Output) { val currentTab = CREATIVE_MOD_TABS.getEntries() .firstOrNull { it.id.path == tabConfig.name } @@ -107,6 +124,11 @@ object ModCreativeModeTabs { ?.let(output::accept) } } + + // 生成生物刷怪蛋全部归入 DecIsland 生物标签页 + if (currentTab != null && currentTab == DECISLAND_ENTITIES_TAB.get()) { + GeneratedMobs.SPAWN_EGGS.entries.forEach { output.accept(it.get()) } + } } @JvmStatic diff --git a/src/main/java/com/dec/decisland/particles/ModParticles.kt b/src/main/java/com/dec/decisland/particles/ModParticles.kt index f71128f..402fda6 100644 --- a/src/main/java/com/dec/decisland/particles/ModParticles.kt +++ b/src/main/java/com/dec/decisland/particles/ModParticles.kt @@ -368,6 +368,7 @@ object ModParticles { path == "textures/particle/sga_*" && namespace == "minecraft" -> ('a'..'z').map { char -> ResourceLocation.fromNamespaceAndPath(namespace, "sga_$char") } path.startsWith("textures/particle/") -> + // 项目图集配置 atlases/particles.json 以无前缀收录 textures/particle 目录 listOf(ResourceLocation.fromNamespaceAndPath(namespace, path.removePrefix("textures/particle/"))) path.startsWith("textures/wb_par/") -> listOf(ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "wb_par/${path.removePrefix("textures/wb_par/")}")) diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/abyssal_controller.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/abyssal_controller.animation.json new file mode 100644 index 0000000..37cc40e --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/abyssal_controller.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":6.24,"bones":{"rightArm":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,7.5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"leftArm":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,-7.5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"rightLeg":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"leftLeg":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,-5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":6.24,"bones":{"rightArm":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,7.5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"leftArm":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,-7.5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"rightLeg":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"leftLeg":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"3.12":{"post":[0,0,-5],"lerp_mode":"catmullrom"},"6.24":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/abyssal_shadow.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/abyssal_shadow.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/abyssal_shadow.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ash_bomb.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_bomb.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_bomb.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ash_horse.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_horse.animation.json new file mode 100644 index 0000000..69810ad --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_horse.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":"hold_on_last_frame","animation_length":1.83333,"bones":{"waist":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Body":{"rotation":{"0.0":[0,0,0],"0.25":[-40,0,0],"1.5":[-45,0,0],"1.7083":[5,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"heart":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Tail":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"TailA":{"rotation":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"TailB":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"TailC":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Head":{"rotation":{"0.0":[0,0,0],"0.25":[25,0,0],"0.4583":[0,0,0],"0.75":[0.02363,2.16489,-6.2494],"1.1667":[-0.13019,-0.61958,4.9663],"1.5":[0,0,0],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,-1.3875,0],"0.4583":[0,0,0],"1.5":[0,0,0],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.4583":[1,1,1],"1.5":[1,1,1],"1.7083":{"pre":[1,1,1],"post":[1,1,1],"lerp_mode":"catmullrom"},"1.8333":[1,1,1]}},"Ear":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Neck":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Saddle":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"bag":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg1":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg1A":{"rotation":{"0.0":[0,0,0],"0.25":[12.5,0,0],"0.875":[12.5,0,0],"1.5":[12.5,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"Leg1B":{"rotation":{"0.0":[0,0,0],"0.25":[-37.5,0,0],"0.875":[-37.5,0,0],"1.5":[-37.5,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"Leg1C":{"rotation":{"0.0":[0,0,0],"0.25":[22.5,0,0],"0.875":[22.5,0,0],"1.5":[22.5,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"Leg2":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg2A":{"rotation":{"0.0":[0,0,0],"0.25":[17.5,0,0],"0.875":[17.5,0,0],"1.5":[17.5,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"Leg2B":{"rotation":{"0.0":[0,0,0],"0.25":[-50,0,0],"0.875":[-50,0,0],"1.5":[-50,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"Leg2C":{"rotation":{"0.0":[0,0,0],"0.25":[30,0,0],"0.875":[30,0,0],"1.5":[30,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":[0,0,0],"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":[1,1,1],"1.8333":[1,1,1]}},"Leg3":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg3A":{"rotation":{"0.0":[0,0,0],"0.25":[-117.5,0,0],"0.375":[-115,0,0],"0.5":[-80.62,0,0],"0.625":[-122.91,0,0],"0.75":[-155.2,0,0],"0.875":[-117.5,0,0],"1.0":[-115,0,0],"1.125":[-80.62,0,0],"1.25":[-122.91,0,0],"1.375":[-155.2,0,0],"1.5":[-117.5,0,0],"1.7083":{"pre":[-7.48196,-0.51861,-0.01969],"post":[-7.48196,-0.51861,-0.01969],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,10.925,4.6125],"0.875":[0,10.925,4.6125],"1.5":[0,10.75,5.8625],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":{"pre":[1,1,1],"post":[1,1,1],"lerp_mode":"catmullrom"},"1.8333":[1,1,1]}},"Leg3B":{"rotation":{"0.0":[0,0,0],"0.25":[30,0,0],"0.375":[10,0,0],"0.5":[75,0,0],"0.625":[107.5,0,0],"0.75":[138.75,0,0],"0.875":[30,0,0],"1.0":[10,0,0],"1.125":[75,0,0],"1.25":[107.5,0,0],"1.375":[138.75,0,0],"1.5":[30,0,0],"1.7083":{"pre":[15,0,0],"post":[15,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":{"pre":[1,1,1],"post":[1,1,1],"lerp_mode":"catmullrom"},"1.8333":[1,1,1]}},"Leg3C":{"rotation":{"0.0":[0,0,0],"0.25":[-5,0,0],"0.375":[-7.5,0,0],"0.5":[35.63,0,0],"0.625":[34.59,0,0],"0.75":[19.8,0,0],"0.875":[-5,0,0],"1.0":[-7.5,0,0],"1.125":[35.63,0,0],"1.25":[34.59,0,0],"1.375":[19.8,0,0],"1.5":[-5,0,0],"1.7083":{"pre":[-5,0,0],"post":[-5,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":{"pre":[1,1,1],"post":[1,1,1],"lerp_mode":"catmullrom"},"1.8333":[1,1,1]}},"Leg4":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg4A":{"rotation":{"0.0":[0,0,0],"0.25":[-110,0,0],"0.375":[-139,0,0],"0.5":[-137.5,0,0],"0.625":[-99.19807,-2.30926,6.27742],"0.75":[-62.09904,-1.15463,3.13871],"0.875":[-110,0,0],"1.0":[-139,0,0],"1.125":[-137.5,0,0],"1.25":[-99.19807,-2.30926,6.27742],"1.375":[-62.09904,-1.15463,3.13871],"1.5":[-110,0,0],"1.7083":{"pre":[-7.5,0,0],"post":[-7.5,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,11,5],"0.875":[0,11,5],"1.5":[0,11,6.225],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":{"pre":[1,1,1],"post":[1,1,1],"lerp_mode":"catmullrom"},"1.8333":[1,1,1]}},"Leg4B":{"rotation":{"0.0":[0,0,0],"0.25":[97.5,0,0],"0.375":[123.5,0,0],"0.5":[20,0,0],"0.625":[5.83,0,0],"0.75":[106.67,0,0],"0.875":[97.5,0,0],"1.0":[123.5,0,0],"1.125":[20,0,0],"1.25":[5.83,0,0],"1.375":[106.67,0,0],"1.5":[97.5,0,0],"1.7083":{"pre":[20,0,0],"post":[20,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":{"pre":[1,1,1],"post":[1,1,1],"lerp_mode":"catmullrom"},"1.8333":[1,1,1]}},"Leg4C":{"rotation":{"0.0":[0,0,0],"0.25":[22.5,0,0],"0.375":[31.5,0,0],"0.5":[-12.5,0,0],"0.625":[-8.33,0,0],"0.75":[22.08,0,0],"0.875":[22.5,0,0],"1.0":[31.5,0,0],"1.125":[-12.5,0,0],"1.25":[-8.33,0,0],"1.375":[22.08,0,0],"1.5":[22.5,0,0],"1.7083":{"pre":[-12.45844,0.47264,0.95416],"post":[-12.45844,0.47264,0.95416],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0,0],"0.875":[0,0,0],"1.5":[0,0,0],"1.7083":{"pre":[0,0,0],"post":[0,0,0],"lerp_mode":"catmullrom"},"1.8333":[0,0,0]},"scale":{"0.0":[1,1,1],"0.25":[1,1,1],"0.875":[1,1,1],"1.5":[1,1,1],"1.7083":{"pre":[1,1,1],"post":[1,1,1],"lerp_mode":"catmullrom"},"1.8333":[1,1,1]}}}},"walk":{"loop":true,"animation_length":1.41667,"bones":{"waist":{"rotation":{"0.0":[0,0,0],"1.4167":[0,0,0]},"position":{"0.0":[0,-1,0],"0.25":[0,-0.75,0],"0.4167":[0,-0.09,0],"0.75":[0,-1.09,0],"1.125":[0,0.1725,0],"1.4167":[0,-1,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Body":{"rotation":{"0.0":[0,0,0],"0.25":[2.49762,0.10901,-2.49762],"0.7083":[0,0,0],"0.9583":[2.49762,-0.10901,2.49762],"1.4167":[0,0,0]},"position":{"0.0":[0,0,0],"0.25":[0,0.4125,0],"0.7083":[0,0,0],"0.9583":[0,0.4125,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"heart":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Tail":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"TailA":{"rotation":{"0.0":[0,-30,0],"0.7083":[0,17.5,0],"1.4167":[0,-30,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"TailB":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"TailC":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Head":{"rotation":{"0.0":[0,0,0],"0.4167":[-7.5,0,0],"0.75":[0,0,0],"1.125":[-7.5,0,0],"1.4167":[0,0,0]},"position":{"0.0":[0,0,0],"0.4167":[0,0.825,0],"0.75":[0,0,0],"1.125":[0,0.825,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Ear":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Saddle":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"bag":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg1":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg1A":{"rotation":{"0.0":[32.5,0,0],"0.2083":[42.5,0,0],"0.4583":[0,0,0],"0.7083":[-20,0,0],"0.9583":[7.5,0,0],"1.2083":[25,0,0],"1.4167":[32.5,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg1B":{"rotation":{"0.0":[-25,0,0],"0.2083":[-50,0,0],"0.4583":[-65,0,0],"0.7083":[-17.5,0,0],"0.9583":[-45,0,0],"1.2083":[-42.5,0,0],"1.4167":[-25,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg1C":{"rotation":{"0.0":[2.5,0,0],"0.2083":[10,0,0],"0.4583":[-10,0,0],"0.7083":[35,0,0],"0.9583":[37.5,0,0],"1.2083":[27.5,0,0],"1.4167":[2.5,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg2":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg2A":{"rotation":{"0.0":[-12.5,0,0],"0.2083":[2.5,0,0],"0.4583":[10,0,0],"0.7083":[47.5,0,0],"0.9583":[55,0,0],"1.2083":[-10,0,0],"1.4167":[-12.5,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg2B":{"rotation":{"0.0":[-22.5,0,0],"0.2083":[-40,0,0],"0.4583":[-40,0,0],"0.7083":[-40,0,0],"0.9583":[-47.5,0,0],"1.2083":[-50,0,0],"1.4167":[-22.5,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg2C":{"rotation":{"0.0":[35,0,0],"0.2083":[37.5,0,0],"0.4583":[27.5,0,0],"0.7083":[10,0,0],"0.9583":[0,0,0],"1.2083":[22.5,0,0],"1.4167":[35,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg3":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg3A":{"rotation":{"0.0":[-35.83,0,0],"0.2083":[-25.83,0,0],"0.4167":[-1.66,0,0],"0.6667":[12.65,0,0],"0.9167":[-9.85,0,0],"1.1667":[-52.35,0,0],"1.4167":[-35.83,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg3B":{"rotation":{"0.0":[-7.08,0,0],"0.2083":[10.42,0,0],"0.4167":[2.09,0,0],"0.6667":[26.81,0,0],"0.9167":[61.81,0,0],"1.1667":[74.31,0,0],"1.4167":[0.42,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg3C":{"rotation":{"0.0":[-15.42,0,0],"0.2083":[14.58,0,0],"0.4167":[-2.09,0,0],"0.6667":[29.86,0,0],"0.9167":[17.36,0,0],"1.1667":[32.36,0,0],"1.4167":[-5.42,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg4":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"Leg4A":{"rotation":{"0.0":[10,0,0],"0.2083":[-20,0,0],"0.4167":[-24.61,0,0],"0.6667":[-37.63,0,0],"0.9167":[-27.63,0,0],"1.1667":[-2.63,0,0],"1.4167":[10,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg4B":{"rotation":{"0.0":[29.58,0,0],"0.2083":[82.08,0,0],"0.4167":[63.26,0,0],"0.6667":[3.83,0,0],"0.9167":[1.33,0,0],"1.1667":[6.33,0,0],"1.4167":[29.58,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}},"Leg4C":{"rotation":{"0.0":[37.5,0,0],"0.2083":[7.5,0,0],"0.4167":[15.39,0,0],"0.6667":[-5.13,0,0],"0.9167":[27.37,0,0],"1.1667":[-2.63,0,0],"1.4167":[37.5,0,0]},"position":{"0.0":[0,0,0],"1.4167":[0,0,0]},"scale":{"0.0":[1,1,1],"1.4167":[1,1,1]}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ash_horse_head.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_horse_head.animation.json new file mode 100644 index 0000000..63e5583 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_horse_head.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1,"bones":{"UMouth":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[-17.5,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"main":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[12.5,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"LMouthWithSaddle":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[55,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1,"bones":{"UMouth":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[-17.5,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"main":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[12.5,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"LMouthWithSaddle":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[55,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ash_knight.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_knight.animation.json new file mode 100644 index 0000000..8117d59 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_knight.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":1,"bones":{"body":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"main":{"rotation":{"0.0":[0,7.5,0],"0.5":[0,-10,0],"1.0":[0,7.5,0]},"position":{"0.0":[0,-0.4375,0],"0.25":[0,0.5225,0],"0.5":[0,-0.4375,0],"0.75":[0,0.5225,0],"1.0":[0,-0.4375,0]},"scale":{"0.0":[1,1,1],"1.0":[1,1,1]}},"heart":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"head":{"rotation":[0,0,0],"position":[0,0,0],"scale":1},"rightArm":{"rotation":{"0.0":[40.25542,0.60096,7.0411],"0.5":[-27.21819,-2.70264,11.5503],"1.0":[40.25542,0.60096,7.0411]},"position":{"0.0":[0,0,0],"1.0":[0,0,0]},"scale":{"0.0":[1,1,1],"1.0":[1,1,1]}},"leftArm":{"rotation":{"0.0":[-39.27612,-0.61165,-12.4623],"0.5":[36.07748,7.49581,-6.59277],"1.0":[-39.27612,-0.61165,-12.4623]},"position":{"0.0":[0,0,0],"1.0":[0,0,0]},"scale":{"0.0":[1,1,1],"1.0":[1,1,1]}},"rightLeg":{"rotation":{"0.0":[-25,0,0],"0.5":{"pre":[27.5,0,0],"post":[27.5,0,0],"lerp_mode":"catmullrom"},"1.0":[-25,0,0]},"position":{"0.0":[0,0.6875,-0.8375],"0.1667":{"pre":[0,-0.06,-0.5],"post":[0,-0.06,-0.5],"lerp_mode":"catmullrom"},"0.2917":{"post":[0,0.69,-0.2525],"lerp_mode":"catmullrom"},"0.5":{"post":[0,0.69,1.28],"lerp_mode":"catmullrom"},"0.7917":{"post":[0,0.14,0.04],"lerp_mode":"catmullrom"},"1.0":[0,0.6875,-0.8375]},"scale":{"0.0":[1,1,1],"1.0":[1,1,1]}},"leftLeg":{"rotation":{"0.0":[25,0,0],"0.5":{"pre":[-25,0,0],"post":[-25,0,0],"lerp_mode":"catmullrom"},"1.0":[25,0,0]},"position":{"0.0":[0,0.5,1.125],"0.1667":{"pre":[0,-0.0075,-0.07],"post":[0,-0.0075,-0.07],"lerp_mode":"catmullrom"},"0.2917":{"post":[0,0.6375,-0.975],"lerp_mode":"catmullrom"},"0.5":{"post":[0,-0.125,-0.69],"lerp_mode":"catmullrom"},"0.7917":{"post":[0,-0.05,1.6475],"lerp_mode":"catmullrom"},"1.0":[0,0.5,1.125]},"scale":{"0.0":[1,1,1],"1.0":[1,1,1]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ash_knight_head.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_knight_head.animation.json new file mode 100644 index 0000000..4eae28e --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_knight_head.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1,"bones":{"main":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[0,4,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1,"bones":{"main":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[0,4,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ash_sword.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_sword.animation.json new file mode 100644 index 0000000..9bad827 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_sword.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":2,"bones":{"main":{"rotation":{"0.0":[-30,30,0],"0.5":[30,30,0],"1.0":[30,-30,0],"1.5":[-30,-30,0],"2.0":[-30,30,0]}}}},"walk":{"loop":true,"animation_length":2,"bones":{"main":{"rotation":{"0.0":[-30,30,0],"0.5":[30,30,0],"1.0":[30,-30,0],"1.5":[-30,-30,0],"2.0":[-30,30,0]}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ash_sword_phantom.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_sword_phantom.animation.json new file mode 100644 index 0000000..9bad827 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ash_sword_phantom.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":2,"bones":{"main":{"rotation":{"0.0":[-30,30,0],"0.5":[30,30,0],"1.0":[30,-30,0],"1.5":[-30,-30,0],"2.0":[-30,30,0]}}}},"walk":{"loop":true,"animation_length":2,"bones":{"main":{"rotation":{"0.0":[-30,30,0],"0.5":[30,30,0],"1.0":[30,-30,0],"1.5":[-30,-30,0],"2.0":[-30,30,0]}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/blackstone_thorn.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/blackstone_thorn.animation.json new file mode 100644 index 0000000..c7f8736 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/blackstone_thorn.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":"hold_on_last_frame","animation_length":5.0625,"bones":{"main":{"scale":{"0.0":[1,0,1],"1.5625":[1,0.1,1],"1.75":[1,1.5,1],"1.9375":[1,1,1],"2.125":[1,1,1],"2.3125":[1,0.1,1],"3.75":[1,0.1,1],"3.9375":[1,1.5,1],"4.125":[1,1,1],"4.3125":[1,1,1],"4.5":[1,0.1,1],"5.0625":[1,0,1]}}}},"walk":{"loop":"hold_on_last_frame","animation_length":5.0625,"bones":{"main":{"scale":{"0.0":[1,0,1],"1.5625":[1,0.1,1],"1.75":[1,1.5,1],"1.9375":[1,1,1],"2.125":[1,1,1],"2.3125":[1,0.1,1],"3.75":[1,0.1,1],"3.9375":[1,1.5,1],"4.125":[1,1,1],"4.3125":[1,1,1],"4.5":[1,0.1,1],"5.0625":[1,0,1]}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/chest_monster.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/chest_monster.animation.json new file mode 100644 index 0000000..09c775f --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/chest_monster.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":0.56,"bones":{"up":{"rotation":{"0.0":[0,0,0],"0.32":[0,0,0],"0.4":[-35,0,0],"0.56":[0,0,0]}},"global":{"position":{"0.0":[0,0,0],"0.32":[0,9,0],"0.56":[0,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/chester.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/chester.animation.json new file mode 100644 index 0000000..09c775f --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/chester.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":0.56,"bones":{"up":{"rotation":{"0.0":[0,0,0],"0.32":[0,0,0],"0.4":[-35,0,0],"0.56":[0,0,0]}},"global":{"position":{"0.0":[0,0,0],"0.32":[0,9,0],"0.56":[0,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/clam.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/clam.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/clam.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/crab.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/crab.animation.json new file mode 100644 index 0000000..b5d6fc7 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/crab.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":0.52,"bones":{"bone9":{"rotation":{"0.0":[-35,0,0],"0.2833":[5,0,0],"0.5167":[-35,0,0]}},"bone10":{"rotation":{"0.0":[20,0,0],"0.2833":[-30,0,0],"0.5167":[20,0,0]}},"bone11":{"rotation":{"0.0":[-25,0,0],"0.2833":[5,0,0],"0.5167":[-25,0,0]}},"bone12":{"rotation":{"0.0":[-20,0,0],"0.2833":[30,0,0],"0.5167":[-20,0,0]}},"bone13":{"rotation":{"0.0":[20,0,0],"0.2833":[-35,0,0],"0.5167":[20,0,0]}},"bone14":{"rotation":{"0.0":[-30,0,0],"0.2833":[25,0,0],"0.5167":[-30,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/dark_werewolf.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/dark_werewolf.animation.json new file mode 100644 index 0000000..30cad5c --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/dark_werewolf.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"bones":{"waist":{"rotation":[40,0,0]},"rightleg":{"rotation":[10,0,0],"scale":1.2},"leftleg":{"rotation":[10,0,0],"scale":1.2},"rightarm":{"rotation":[-30,0,0],"scale":1.3},"leftarm":{"rotation":[-30,0,0],"scale":1.3}}},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ender_snail.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ender_snail.animation.json new file mode 100644 index 0000000..8db48c0 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ender_snail.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":2,"bones":{"shell":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,3],"lerp_mode":"catmullrom"},"2.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"body":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,1],"lerp_mode":"catmullrom"},"2.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}},"scale":{"0.0":{"post":[1,1,1],"lerp_mode":"catmullrom"},"1.0":{"post":[1,1,1.4],"lerp_mode":"catmullrom"},"2.0":{"post":[1,1,1],"lerp_mode":"catmullrom"}}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ender_snake.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ender_snake.animation.json new file mode 100644 index 0000000..6d4dbb0 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ender_snake.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"bones":{"head_bone":{"position":[0,0,0],"rotation":["query.target_x_rotation",0,0]}}},"walk":{"loop":true,"bones":{"head_bone":{"rotation":["math.cos(query.life_time*60)*2",0,0],"position":[0,0,0]},"jaw":{"rotation":["5+math.cos(query.life_time*60)*5",0,0],"position":[0,0,0]},"horn":{"rotation":["math.cos(query.life_time*180)*6",0,0],"position":[0,0,0]},"horn2":{"rotation":[0,"math.cos(query.life_time*180)*10",0],"position":[0,0,0]},"horn3":{"rotation":[0,"math.cos(query.life_time*180)*10",0],"position":[0,0,0]}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/entity_soul.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/entity_soul.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/entity_soul.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/entity_soul_1.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/entity_soul_1.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/entity_soul_1.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/escaped_soul_entity.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/escaped_soul_entity.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/escaped_soul_entity.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/everlasting_winter_ghast.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/everlasting_winter_ghast.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/everlasting_winter_ghast.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/everlasting_winter_shadow.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/everlasting_winter_shadow.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/everlasting_winter_shadow.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/friendly_little_soul.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/friendly_little_soul.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/friendly_little_soul.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_heart.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_heart.animation.json new file mode 100644 index 0000000..072d30e --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_heart.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":1,"bones":{"down":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[50,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}},"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[0,-2,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"up":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[-50,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}},"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[0,2,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"left":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[0,-50,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}},"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[2,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"right":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[0,50,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}},"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[-2,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}},"behind":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[-70,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}},"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.5":{"post":[0,0,0],"lerp_mode":"catmullrom"},"1.0":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_heart_sleeping.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_heart_sleeping.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_heart_sleeping.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_shadow.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_shadow.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/frozen_shadow.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_axe.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_axe.animation.json new file mode 100644 index 0000000..a5d12f0 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_axe.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"animation_length":0.66667,"bones":{"iron_axe":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.6667":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":0.625,"bones":{"iron_axe":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.1667":{"post":[0,27.5,0],"lerp_mode":"catmullrom"},"0.4583":{"post":[0,-27.5,0],"lerp_mode":"catmullrom"},"0.625":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_staff.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_staff.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_staff.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_sword.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_sword.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_diamond_sword.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_iron_axe.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_iron_axe.animation.json new file mode 100644 index 0000000..a5d12f0 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_iron_axe.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"animation_length":0.66667,"bones":{"iron_axe":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.6667":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":0.625,"bones":{"iron_axe":{"rotation":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.1667":{"post":[0,27.5,0],"lerp_mode":"catmullrom"},"0.4583":{"post":[0,-27.5,0],"lerp_mode":"catmullrom"},"0.625":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_iron_sword.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_iron_sword.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_iron_sword.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_wooden_staff.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_wooden_staff.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_wooden_staff.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_wooden_sword.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_wooden_sword.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ghost_wooden_sword.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/goblin.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/goblin.animation.json new file mode 100644 index 0000000..71edf89 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/goblin.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":2.12,"bones":{"body":{"rotation":{"0.0":[2.5,0,0],"1.04":[-2.5,0,0],"2.12":[2.5,0,0]}},"head":{"rotation":{"0.0":[5,0,0],"1.04":[-5,0,0],"2.12":[5,0,0]},"position":{"0.0":[0,0,-0.5],"1.04":[0,0,0.5],"2.12":[0,0,-0.5]}},"rightArm":{"rotation":{"0.0":[-2.5,0,0],"1.04":[2.5,0,0],"2.12":[-2.5,0,0]},"position":{"0.0":[0,0,-0.25],"1.04":[0,0,0.25],"2.12":[0,0,-0.25]}},"leftArm":{"rotation":{"0.0":[-2.5,0,0],"1.04":[2.5,0,0],"2.08":[-2.5,0,0]},"position":{"0.0":[0,0,-0.25],"1.04":[0,0,0.25],"2.08":[0,0,-0.25]}}}},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/goblin_sniper.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/goblin_sniper.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/goblin_sniper.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/goblin_wizard.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/goblin_wizard.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/goblin_wizard.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/host_of_deep.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/host_of_deep.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/host_of_deep.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ice_monster.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_monster.animation.json new file mode 100644 index 0000000..14ce19a --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_monster.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":1,"bones":{"body":{"rotation":{"0.0":[0,0,0],"0.5":[7.5,0,0],"1.0":[0,0,0]},"position":{"0.0":[0,0,0],"0.5":[0,-1,-1],"1.0":[0,0,0]}},"head":{"rotation":{"0.0":[0,0,0],"0.5":[-2.5,0,0],"1.0":[0,0,0]}},"top":{"position":{"0.0":[0,0,0],"0.5":[0,1,0],"1.0":[0,0,0]}},"arm0":{"rotation":{"0.0":[0,0,0],"0.5":[-14.91643,2.11089,4.53359],"1.0":[0,0,0]}},"arm1":{"rotation":{"0.0":[0,0,0],"0.5":[-14.91643,-2.11089,-4.53359],"1.0":[0,0,0]}},"leg0":{"rotation":{"0.0":[0,0,0],"0.3333":[13.34,0,0],"0.6667":[-26.67,0,0],"1.0":[0,0,0]}},"knee0":{"rotation":{"0.0":[0,0,0],"0.3333":[8.33,0,0],"0.6667":[28.33,0,0],"1.0":[0,0,0]}},"leg1":{"rotation":{"0.0":[0,0,0],"0.3333":[-32.5,0,0],"0.6667":[20,0,0],"1.0":[0,0,0]}},"knee1":{"rotation":{"0.0":[0,0,0],"0.2917":[27.29,0,0],"0.6667":[8.33,0,0],"1.0":[0,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ice_spirit.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_spirit.animation.json new file mode 100644 index 0000000..82d59a7 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_spirit.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":1,"bones":{"head":{"rotation":{"0.0":[0,0,0],"0.5":[-5,0,0],"1.0":[0,0,0]}},"rightArm":{"rotation":{"0.0":[0,0,0],"0.25":[-32.5,0,0],"0.5":[0,0,0],"0.75":[30,0,0],"1.0":[0,0,0]}},"leftArm":{"rotation":{"0.0":[0,0,0],"0.25":[30,0,0],"0.5":[0,0,0],"0.75":[-30,0,0],"1.0":[0,0,0]}},"leftLeg":{"rotation":{"0.0":[0,0,0],"0.25":[-15,0,0],"0.5":[0,0,0],"0.75":[15,0,0],"1.0":[0,0,0]}},"rightLeg":{"rotation":{"0.0":[0,0,0],"0.25":[15,0,0],"0.5":[0,0,0],"0.75":[-15,0,0],"1.0":[0,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ice_thorn.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_thorn.animation.json new file mode 100644 index 0000000..c7f8736 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_thorn.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":"hold_on_last_frame","animation_length":5.0625,"bones":{"main":{"scale":{"0.0":[1,0,1],"1.5625":[1,0.1,1],"1.75":[1,1.5,1],"1.9375":[1,1,1],"2.125":[1,1,1],"2.3125":[1,0.1,1],"3.75":[1,0.1,1],"3.9375":[1,1.5,1],"4.125":[1,1,1],"4.3125":[1,1,1],"4.5":[1,0.1,1],"5.0625":[1,0,1]}}}},"walk":{"loop":"hold_on_last_frame","animation_length":5.0625,"bones":{"main":{"scale":{"0.0":[1,0,1],"1.5625":[1,0.1,1],"1.75":[1,1.5,1],"1.9375":[1,1,1],"2.125":[1,1,1],"2.3125":[1,0.1,1],"3.75":[1,0.1,1],"3.9375":[1,1.5,1],"4.125":[1,1,1],"4.3125":[1,1,1],"4.5":[1,0.1,1],"5.0625":[1,0,1]}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/ice_wizard.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_wizard.animation.json new file mode 100644 index 0000000..36716a9 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/ice_wizard.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":0.66667,"bones":{"fly_block":{"rotation":{"0.0":[0,0,0],"0.5":[0,-180,0]}},"leg0":{"rotation":{"0.0":[0,0,0],"0.1667":[12.5,0,0],"0.3333":[0,0,0],"0.5":[-12.5,0,0],"0.6667":[0,0,0]}},"leg1":{"rotation":{"0.0":[0,0,0],"0.1667":[-12.5,0,0],"0.3333":[0,0,0],"0.5":[12.5,0,0],"0.6667":[0,0,0]}},"rightArm":{"rotation":{"0.0":[0,0,0],"0.1667":[-12.5,0,0],"0.3333":[0,0,0],"0.5":[12.5,0,0],"0.6667":[0,0,0]}},"leftArm":{"rotation":{"0.0":[0,0,0],"0.1667":[12.5,0,0],"0.3333":[0,0,0],"0.5":[-12.5,0,0],"0.6667":[0,0,0]}},"clothes":{"rotation":{"0.0":[2.5,0,0],"0.375":[5,0,0],"0.6667":[2.5,0,0]}},"head":{"rotation":{"0.0":[0,0,0],"0.375":[-2.5,0,0],"0.6667":[0,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/illusioner.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/illusioner.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/illusioner.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/lava_lizard.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/lava_lizard.animation.json new file mode 100644 index 0000000..99ddf03 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/lava_lizard.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":0.76,"bones":{"leftFin":{"position":{"0.0":[0,0,0],"0.24":[0,0,-2],"0.76":[0,0,0]}},"rightFin":{"position":{"0.0":[0,0,0],"0.48":[0,0,-2],"0.76":[0,0,0]}},"waist":{"position":{"0.0":[0,0,0],"0.24":[0,0,-2],"0.76":[0,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/leaves_golem.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/leaves_golem.animation.json new file mode 100644 index 0000000..5a61a5a --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/leaves_golem.animation.json @@ -0,0 +1,1214 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.leaves_golem.move": { + "loop": true, + "animation_length": 1.84, + "bones": { + "global": { + "rotation": { + "0.0": [0, 0, 0], + "0.36": [0, 0, -2.5], + "0.88": [0, 0, 2.5], + "1.2": [0, 0, 0] + } + }, + "arm0": { + "rotation": { + "0.0": [-35, 0, 0], + "0.4": [-37.5, 0, 0], + "0.76": [-2.5, 0, 0], + "1.12": [20, 0, 0], + "1.48": [32.5, 0, 0], + "1.84": [-35, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "arm1": { + "rotation": { + "0.0": [14.97354, 0.85443, -2.34963], + "0.4": [14.97354, 0.85443, -2.34963], + "0.76": [-12.52646, 0.85443, -2.34963], + "1.12": [-22.52646, 0.85443, -2.34963], + "1.48": [-27.52646, 0.85443, -2.34963], + "1.84": [14.97354, 0.85443, -2.34963] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "leg0": { + "rotation": { + "0.0": [52.5, 0, 0], + "0.4": [55, 0, 0], + "0.76": [17.5, 0, 0], + "1.12": [-32.5, 0, 0], + "1.48": [-32.5, 0, 0], + "1.84": [52.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.76": [1, 1, 1], + "1.12": [1, 1, 1], + "1.48": [1, 1, 1], + "1.84": [1, 1, 1] + } + }, + "leg1": { + "rotation": { + "0.0": [-22.5, 0, 0], + "0.4": [-22.5, 0, 0], + "0.76": [17.5, 0, 0], + "1.12": [55, 0, 0], + "1.48": [55, 0, 0], + "1.84": [-22.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "body": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "1.84": [0, 0, 0] + }, + "position": { + "0.0": [0, 1, 0], + "0.4": [0, -2, 0], + "0.76": [0, 1.4, 0], + "1.12": [0, 0.4, 0], + "1.48": [0, -3.6, 0], + "1.68": [0, 0.37, 0], + "1.84": [0, 1, 0] + } + }, + "head": { + "rotation": { + "0.0": [5, 0, 0], + "0.4": [7.82902, 7.49282, 2.52154], + "0.76": [6.47186, 1.56187, 8.81469], + "1.12": [2.51893, -0.43523, -4.98107], + "1.48": [5.05919, -0.54094, -12.48848], + "1.84": [5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "zhe": { + "rotation": { + "0.0": [0, -7.5, 0], + "0.4": [0, -10, 0], + "0.76": [0, -2.5, 0], + "1.12": [0, 2.5, 0], + "1.48": [0, 0, 0], + "1.84": [0, -7.5, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.76": [1, 1, 1], + "1.12": [1, 1, 1], + "1.48": [1, 1, 1], + "1.84": [1, 1, 1] + } + }, + "zhe2": { + "rotation": { + "0.0": [-5, -2.5, 0], + "0.4": [-4.9429, -7.45695, -0.65738], + "0.76": [-5.00718, -0.02136, 0.32621], + "1.12": [-4.97913, 4.93584, 0.97983], + "1.48": [-4.97913, 4.93584, 0.97983], + "1.84": [-5, -2.5, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "zhe3": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 2.5], + "0.76": [2.5, 0, -15], + "1.12": [5, 0, -12.5], + "1.48": [0, 0, 20], + "1.84": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "zhe4": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.84": [1.05, 1.05, 1], + "1.84": [1, 1, 1] + } + }, + "arm2": { + "rotation": { + "0.0": [-22.5, 0, 0], + "0.4": [-25, 0, 0], + "0.76": [-12.5, 0, 0], + "1.12": [15, 0, 0], + "1.48": [12.5, 0, 0], + "1.84": [-22.5, 0, 0] + } + }, + "arm3": { + "rotation": { + "0.0": [10, 0, 0], + "0.4": [10, 0, 0], + "0.76": [-15, 0, 0], + "1.12": [-22.5, 0, 0], + "1.48": [-40, 0, 0], + "1.84": [10, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "leg2": { + "rotation": { + "0.0": [47.5, 0, 0], + "0.4": [-15, 0, 0], + "0.76": [-20, 0, 0], + "1.12": [-22.5, 0, 0], + "1.48": [20, 0, 0], + "1.84": [47.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + }, + "leg3": { + "rotation": { + "0.0": [-17.5, 0, 0], + "0.4": [7.5, 0, 0], + "0.76": [30, 0, 0], + "1.12": [65, 0, 0], + "1.48": [-15, 0, 0], + "1.84": [-17.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.76": [0, 0, 0], + "1.12": [0, 0, 0], + "1.48": [0, 0, 0], + "1.84": [0, 0, 0] + } + } + } + }, + "animation.leaves_golem.attack": { + "loop": true, + "animation_length": 0.6, + "bones": { + "arm0": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [35, 0, 0], + "0.3275": [-127.5, 0, 0], + "0.425": [-127.5, 0, 0], + "0.6": [0, 0, 0] + } + }, + "arm1": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [32.5, 0, 0], + "0.3275": [-110, 0, 0], + "0.425": [-110, 0, 0], + "0.6": [0, 0, 0] + } + }, + "body": { + "rotation": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.1275": [0, -2, 0], + "0.3275": [0, 1, 0], + "0.425": [0, 1, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "head": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [17.5, 0, 0], + "0.3275": [-7.5, 0, 0], + "0.425": [-7.5, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "leg0": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [-10, 0, 0], + "0.3275": [12.5, 0, 0], + "0.425": [12.5, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "leg1": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [5, 0, 0], + "0.3275": [25, 0, 0], + "0.425": [25, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "zhe": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [-2.5, 0, 0], + "0.3275": [-7.5, 0, 0], + "0.425": [-7.5, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "zhe2": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [7.5, 0, 0], + "0.3275": [-22.5, 0, 0], + "0.425": [-22.5, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "zhe3": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [-10, 0, 0], + "0.3275": [-2.5, 0, 0], + "0.425": [-2.5, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "zhe4": { + "rotation": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "arm2": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [15, 0, 0], + "0.3275": [-35, 0, 0], + "0.425": [-35, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1.4, 1], + "0.425": [1, 1.4, 1], + "0.6": [1, 1, 1] + } + }, + "arm3": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [10, 0, 0], + "0.3275": [-22.5, 0, 0], + "0.425": [-22.5, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1.4, 1], + "0.425": [1, 1.4, 1], + "0.6": [1, 1, 1] + } + }, + "leg2": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [27.5, 0, 0], + "0.3275": [-17.5, 0, 0], + "0.425": [-17.5, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + }, + "leg3": { + "rotation": { + "0.0": [0, 0, 0], + "0.1275": [12.5, 0, 0], + "0.3275": [-20, 0, 0], + "0.425": [-20, 0, 0], + "0.6": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0875": [0, 0, 0], + "0.175": [0, 0, 0], + "0.2875": [0, 0, 0], + "0.1275": [0, 0, 0], + "0.3275": [0, 0, 0], + "0.425": [0, 0, 0], + "0.6": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.0875": [1, 1, 1], + "0.175": [1, 1, 1], + "0.2875": [1, 1, 1], + "0.1275": [1, 1, 1], + "0.3275": [1, 1, 1], + "0.425": [1, 1, 1], + "0.6": [1, 1, 1] + } + } + } + }, + "animation.leaves_golem.roar": { + "loop": true, + "animation_length": 1.36, + "bones": { + "head": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [32.5, 0, 0], + "0.56": [35, 0, 0], + "0.72": [-38.33, 0, 0], + "0.88": [-38.576, 5.21822, -5.39451], + "1.04": [-38.66912, -5.55865, 5.75957], + "1.16": [-38.96082, 7.62816, -7.94696], + "1.28": [-38.33, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "arm0": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [15, 0, 0], + "0.56": [22.5, 0, 0], + "0.72": [-148.00846, 13.03284, -15.30417], + "1.0": [-143.00846, 13.03284, -15.30417], + "1.28": [-148.00846, 13.03284, -15.30417], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "arm1": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [7.5, 0, 0], + "0.56": [15, 0, 0], + "0.72": [-130.90488, -12.2421, 8.73129], + "1.0": [-125.90488, -12.2421, 8.73129], + "1.28": [-130.90488, -12.2421, 8.73129], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "body": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, -2, 0], + "0.56": [0, -2, 0], + "0.72": [0, 0.33, 0], + "1.28": [0, 0.33, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "leg0": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [-16.11629, 2.81878, 3.8854], + "0.56": [-16.11629, 2.81878, 3.8854], + "0.72": [6.43491, 1.98033, 0.76149], + "1.28": [6.43491, 1.98033, 0.76149], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "leg1": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [-15, 0, 0], + "0.56": [-15, 0, 0], + "0.72": [25, 0, 0], + "1.28": [25, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "zhe": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [7.5, 0, 0], + "0.56": [7.5, 0, 0], + "0.72": [-6.25, 0, 0], + "1.28": [-6.25, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "zhe2": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [12.5, 0, 0], + "0.56": [17.5, 0, 0], + "0.72": [-15.42, 0, 0], + "1.0": [-17.92, 0, 0], + "1.28": [-15.42, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "zhe3": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [-10, 0, 0], + "0.56": [-40, 0, 0], + "0.68": [10.28, 0, 0], + "0.72": [-73.33, 0, 0], + "0.88": [-58.33, 0, 0], + "1.04": [-74.33, 0, 0], + "1.16": [-66.33, 0, 0], + "1.28": [-73.33, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "zhe4": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "0.72": [5, 0, 0], + "0.88": [0.53, 0, 0], + "1.04": [2.07, 0, 0], + "1.16": [2.6, 0, 0], + "1.28": [-1.88, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "arm2": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [-57.5, 0, 0], + "0.56": [-67.5, 0, 0], + "0.72": [3.75, 0, 0], + "1.0": [1.25, 0, 0], + "1.28": [3.75, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "arm3": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [-57.5, 0, 0], + "0.56": [-67.5, 0, 0], + "0.72": [6.25, 0, 0], + "1.0": [1.25, 0, 0], + "1.28": [6.25, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "leg2": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [15, 0, 0], + "0.56": [15, 0, 0], + "0.72": [-10, 0, 0], + "1.28": [-10, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + }, + "leg3": { + "rotation": { + "0.0": [0, 0, 0], + "0.4": [15, 0, 0], + "0.56": [15, 0, 0], + "0.72": [-15, 0, 0], + "1.28": [-15, 0, 0], + "1.36": [0, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.4": [0, 0, 0], + "0.56": [0, 0, 0], + "1.36": [0, 0, 0] + }, + "scale": { + "0.0": [1, 1, 1], + "0.4": [1, 1, 1], + "0.56": [1, 1, 1], + "1.36": [1, 1, 1] + } + } + } + }, + "animation.leaves_golem.spawn": { + "animation_length": 5, + "bones": { + "head": { + "rotation": { + "4.48": [0, 0, 0], + "4.68": [0, 0, -12.5], + "4.88": [0, 0, 12.5], + "5.0": [0, 0, 0] + }, + "position": { + "0.0": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "2.8": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "3.96": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.8": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "3.96": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + } + } + }, + "arm0": { + "position": { + "0.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.2": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "3.04": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.2": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "3.04": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + } + } + }, + "arm1": { + "position": { + "0.0": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "1.68": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "2.44": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.68": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "2.44": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + } + } + }, + "leg0": { + "position": { + "0.0": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "0.44": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "1.24": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.44": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.24": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + } + } + }, + "leg1": { + "position": { + "0.0": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "0.76": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.76": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + } + } + }, + "body": { + "position": { + "0.0": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "0.96": { + "post": [0, -50, 0], + "lerp_mode": "catmullrom" + }, + "1.8": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "0.96": { + "post": [0, 0, 0], + "lerp_mode": "catmullrom" + }, + "1.8": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + }, + "5.0": { + "post": [1, 1, 1], + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/little_soul.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/little_soul.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/little_soul.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/murloc_wizard.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/murloc_wizard.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/murloc_wizard.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/mushroom_monster.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/mushroom_monster.animation.json new file mode 100644 index 0000000..e850e8a --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/mushroom_monster.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":0.56,"bones":{"body":{"scale":{"0.0":[1,1,1],"0.28":[1,0.8,1],"0.56":[1,1,1]}},"head":{"position":{"0.0":[0,0,0],"0.28":[0,-1,0],"0.56":[0,0,0]},"scale":{"0.0":[1,1,1],"0.28":[1,1,1],"0.56":[1,1,1]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/nautilus.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/nautilus.animation.json new file mode 100644 index 0000000..030e363 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/nautilus.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"walk":{"loop":true,"animation_length":2.04,"bones":{"bone":{"rotation":{"0.0":[-7.5,0,0],"1.0333":[15,0,0],"2.0333":[-7.5,0,0]}},"bone2":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone3":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone4":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone5":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone6":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone9":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone10":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone11":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}},"bone12":{"rotation":{"0.0":[10,0,0],"1.0333":[0,0,0],"2.0333":[10,0,0]}}}},"idle":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/saucer.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/saucer.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/saucer.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/sea_urchin.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/sea_urchin.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/sea_urchin.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_of_deep.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_of_deep.animation.json new file mode 100644 index 0000000..9e2390b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_of_deep.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":0},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_soul_1.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_soul_1.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_soul_1.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_soul_2.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_soul_2.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/shadow_soul_2.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/soul_soldier.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/soul_soldier.animation.json new file mode 100644 index 0000000..88bf545 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/soul_soldier.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}},"walk":{"loop":true,"animation_length":1.5,"bones":{"waist":{"position":{"0.0":{"post":[0,0,0],"lerp_mode":"catmullrom"},"0.75":{"post":[0,-3,0],"lerp_mode":"catmullrom"},"1.5":{"post":[0,0,0],"lerp_mode":"catmullrom"}}}}}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/animations/entity/werewolf.animation.json b/src/main/resources/assets/decisland/bedrock/animations/entity/werewolf.animation.json new file mode 100644 index 0000000..30cad5c --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/animations/entity/werewolf.animation.json @@ -0,0 +1 @@ +{"format_version":"1.8.0","animations":{"idle":{"loop":true,"bones":{"waist":{"rotation":[40,0,0]},"rightleg":{"rotation":[10,0,0],"scale":1.2},"leftleg":{"rotation":[10,0,0],"scale":1.2},"rightarm":{"rotation":[-30,0,0],"scale":1.3},"leftarm":{"rotation":[-30,0,0],"scale":1.3}}},"walk":{"loop":true,"animation_length":0}}} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/abyssal_controller.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/abyssal_controller.geometry.json new file mode 100644 index 0000000..fbbf7b6 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/abyssal_controller.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.abyssal_controller","texture_width":128,"texture_height":128,"visible_bounds_width":3,"visible_bounds_height":3,"visible_bounds_offset":[0,1.5,0]},"bones":[{"name":"root","pivot":[0,24,0]},{"name":"body","parent":"root","pivot":[0,24,0],"cubes":[{"origin":[-4,12,-2],"size":[8,12,4],"uv":[16,16]}]},{"name":"jacket","parent":"body","pivot":[0,24,0],"cubes":[{"origin":[-4,12,-2],"size":[8,12,4],"inflate":0.5,"uv":[16,32]}]},{"name":"waist","parent":"body","pivot":[0,12,0]},{"name":"head","parent":"root","pivot":[0,24,0],"cubes":[{"origin":[-4,24,-4],"size":[8,8,8],"inflate":0.5,"uv":[0,0]}]},{"name":"hat","parent":"root","pivot":[0,24,0],"cubes":[{"origin":[-4,24,-4],"size":[8,8,8],"inflate":1,"uv":[32,0]}]},{"name":"rightArm","parent":"root","pivot":[-7,22,0],"cubes":[{"origin":[-9,12,-2],"size":[4,12,4],"uv":[0,16]}]},{"name":"rightSleeve","parent":"rightArm","pivot":[-7,22,0],"cubes":[{"origin":[-9,12,-2],"size":[4,12,4],"inflate":0.5,"uv":[48,48]}]},{"name":"rightItem","parent":"rightArm","pivot":[-8,15,1]},{"name":"leftArm","parent":"root","pivot":[5,22,0],"cubes":[{"origin":[4,12,-2],"size":[4,12,4],"uv":[40,16],"mirror":true}]},{"name":"leftSleeve","parent":"leftArm","pivot":[5,22,0],"cubes":[{"origin":[5,12,-2],"size":[4,12,4],"inflate":0.5,"uv":[40,32],"mirror":true}]},{"name":"leftItem","parent":"leftArm","pivot":[6,15,1]},{"name":"rightLeg","parent":"root","pivot":[-1.9,12,0],"cubes":[{"origin":[-4.05,0,-2],"size":[4,12,4],"uv":[16,48]}]},{"name":"rightPants","parent":"rightLeg","pivot":[-1.9,12,0],"cubes":[{"origin":[-4.25,0,-2],"size":[4,12,4],"inflate":0.25,"uv":[0,48]}]},{"name":"leftLeg","parent":"root","pivot":[1.9,12,0],"cubes":[{"origin":[0.05,5,-2],"size":[4,7,4],"uv":[32,48],"mirror":true},{"origin":[1,3,-1.5],"size":[3,2,3],"uv":[0,64]},{"origin":[1.5,0,-1],"size":[2,3,2],"uv":[0,77]}]},{"name":"leftPants","parent":"leftLeg","pivot":[1.9,10,0],"cubes":[{"origin":[0.25,5,-2],"size":[4,9,4],"inflate":0.25,"uv":[0,32],"mirror":true}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/abyssal_shadow.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/abyssal_shadow.geometry.json new file mode 100644 index 0000000..60a73aa --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/abyssal_shadow.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.head","texture_width":64,"texture_height":64,"visible_bounds_width":2.5,"visible_bounds_height":2.5,"visible_bounds_offset":[0,1.25,0]},"bones":[{"name":"root","pivot":[0,1,0]},{"name":"head","parent":"root","pivot":[0,1,0],"cubes":[{"origin":[-4,1,-4],"size":[8,8,8],"inflate":0.5,"uv":[0,0]}]},{"name":"hat","parent":"root","pivot":[0,1,0],"cubes":[{"origin":[-4,1,-4],"size":[8,8,8],"inflate":1,"uv":[32,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ash_bomb.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ash_bomb.geometry.json new file mode 100644 index 0000000..21e8e47 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ash_bomb.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.half_block","texture_width":128,"texture_height":128,"visible_bounds_width":3,"visible_bounds_height":3,"visible_bounds_offset":[0,1.5,0]},"bones":[{"name":"bone","pivot":[0,0,0],"cubes":[{"origin":[-16,0,-16],"size":[32,16,32],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ash_horse.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ash_horse.geometry.json new file mode 100644 index 0000000..27c2bd3 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ash_horse.geometry.json @@ -0,0 +1,415 @@ +{ + "format_version": "1.10.0", + "geometry.ash_horse": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 4, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0], + "bones": [ + { + "name": "waist", + "pivot": [0, 0, 0] + }, + { + "name": "Body", + "parent": "waist", + "pivot": [0, 13, 9], + "cubes": [ + {"origin": [-5, 11, -10], "size": [10, 10, 24], "uv": [0, 34]} + ] + }, + { + "name": "heart", + "parent": "Body", + "pivot": [0, 15, -6], + "cubes": [ + {"origin": [-2, 13, -8], "size": [4, 4, 4], "uv": [0, 68]} + ], + "locators": { + "heart": [0, 16, -8] + } + }, + { + "name": "Tail", + "parent": "Body", + "pivot": [0, 21, 14] + }, + { + "name": "TailA", + "parent": "Tail", + "pivot": [0, 21, 14], + "rotation": [-65, 0, 0], + "cubes": [ + {"origin": [-1, 20, 14], "size": [2, 2, 10], "uv": [26, 0]} + ] + }, + { + "name": "TailB", + "parent": "Tail", + "pivot": [0, 21, 14], + "rotation": [-65, 0, 0] + }, + { + "name": "TailC", + "parent": "Tail", + "pivot": [0, 21, 14], + "rotation": [-80.34, 0, 0] + }, + { + "name": "Head", + "parent": "Body", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.5, 25, -11.5], "size": [5, 5, 7], "uv": [0, 0]} + ], + "locators": { + "eye0": [2, 28, -8], + "eye1": [-2, 28, -9] + } + }, + { + "name": "Mouth", + "parent": "Head", + "pivot": [0, 27.05, -13] + }, + { + "name": "UMouth", + "parent": "Mouth", + "pivot": [0, 20.05, -10], + "cubes": [ + {"origin": [-2, 27.05, -17], "size": [4, 3, 6], "uv": [24, 18]} + ] + }, + { + "name": "LMouth", + "parent": "Mouth", + "pivot": [0, 22, 2], + "cubes": [ + {"origin": [-2, 26, -16.5], "size": [4, 2, 5], "uv": [24, 27]} + ] + }, + { + "name": "Ear", + "parent": "Head", + "pivot": [0, 20, -10] + }, + { + "name": "Ear1", + "parent": "Ear", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [0.45, 29, -6], "size": [2, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "Ear2", + "parent": "Ear", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.45, 29, -6], "size": [2, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "MuleEar", + "parent": "Head", + "pivot": [0, 20, -10] + }, + { + "name": "MuleEarL", + "parent": "MuleEar", + "pivot": [0, 20, -10], + "rotation": [30, 0, 15], + "cubes": [ + {"origin": [-2, 29, -6], "size": [2, 7, 1], "uv": [0, 12]} + ] + }, + { + "name": "MuleEarR", + "parent": "MuleEar", + "pivot": [0, 20, -10], + "rotation": [30, 0, -15], + "cubes": [ + {"origin": [0, 29, -6], "size": [2, 7, 1], "uv": [0, 12]} + ] + }, + { + "name": "Neck", + "parent": "Head", + "pivot": [0, 20, -10], + "cubes": [ + {"origin": [-2.05, 15.8, -12], "size": [4, 14, 8], "uv": [0, 12]} + ], + "locators": { + "lead": [0, 17, -8] + } + }, + { + "name": "Mane", + "parent": "Head", + "pivot": [0, 20, -10], + "cubes": [ + {"origin": [-1, 15.5, -5], "size": [2, 15, 3], "uv": [50, 0]} + ] + }, + { + "name": "hair", + "parent": "Mane", + "pivot": [0, 30, -3], + "rotation": [-45, 0, 0] + }, + { + "name": "HeadSaddle", + "parent": "Head", + "pivot": [0, 20, -10], + "cubes": [ + {"origin": [-2.5, 25.1, -17], "size": [5, 5, 12], "uv": [80, 12], "inflate": 0.05} + ] + }, + { + "name": "SaddleMouth", + "parent": "Head", + "pivot": [0, 26, -14], + "rotation": [-30, 0, 0] + }, + { + "name": "SaddleMouthL", + "parent": "SaddleMouth", + "pivot": [0, 22.35296, -7.61487], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [1.5, 28.35296, -11.61487], "size": [1, 2, 2], "uv": [74, 13]} + ] + }, + { + "name": "SaddleMouthR", + "parent": "SaddleMouth", + "pivot": [0, 22.35296, -7.61487], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.5, 28.35296, -11.61487], "size": [1, 2, 2], "uv": [74, 13]} + ] + }, + { + "name": "Saddle", + "parent": "Body", + "pivot": [0, 22, 2], + "cubes": [ + {"origin": [-5, 21, -1], "size": [10, 1, 8], "uv": [80, 0]} + ] + }, + { + "name": "SaddleB", + "parent": "Saddle", + "pivot": [0, 22, 2], + "cubes": [ + {"origin": [-1.5, 22, -1], "size": [3, 1, 2], "uv": [106, 9]} + ] + }, + { + "name": "SaddleC", + "parent": "Saddle", + "pivot": [0, 22, 2], + "cubes": [ + {"origin": [-4, 22, 5], "size": [8, 1, 2], "uv": [80, 9]} + ] + }, + { + "name": "SaddleL", + "parent": "Saddle", + "pivot": [5, 21, 2], + "cubes": [ + {"origin": [4.5, 15, 1.5], "size": [1, 6, 1], "uv": [70, 0]}, + {"origin": [4.5, 15, 1.5], "size": [1, 6, 1], "uv": [70, 0]} + ] + }, + { + "name": "SaddleL2", + "parent": "Saddle", + "pivot": [5, 21, 2], + "cubes": [ + {"origin": [4.5, 13, 1], "size": [1, 2, 2], "uv": [74, 0]} + ] + }, + { + "name": "SaddleR2", + "parent": "Saddle", + "pivot": [-5, 21, 2], + "cubes": [ + {"origin": [-5.5, 13, 1], "size": [1, 2, 2], "uv": [74, 4]} + ] + }, + { + "name": "SaddleR", + "parent": "Saddle", + "pivot": [-5, 21, 2], + "cubes": [ + {"origin": [-5.5, 15, 1.5], "size": [1, 6, 1], "uv": [80, 0]} + ] + }, + { + "name": "SaddleMouthLine", + "parent": "Saddle", + "pivot": [0, 0, 0] + }, + { + "name": "SaddleMouthLineR", + "parent": "SaddleMouthLine", + "pivot": [0, 20, -10] + }, + { + "name": "SaddleMouthLineB", + "parent": "SaddleMouthLine", + "pivot": [0, 20, -10] + }, + { + "name": "bag", + "parent": "Body", + "pivot": [0, 20, -10] + }, + { + "name": "Bag1", + "parent": "bag", + "pivot": [-7.5, 21, 10], + "rotation": [0, 90, 0] + }, + { + "name": "Bag2", + "parent": "bag", + "pivot": [4.5, 21, 10], + "rotation": [0, 90, 0] + }, + { + "name": "Leg1", + "parent": "waist", + "pivot": [4, 15, 11] + }, + { + "name": "Leg1A", + "parent": "Leg1", + "pivot": [4, 15, 11], + "cubes": [ + {"origin": [1.5, 8, 8.5], "size": [4, 9, 5], "uv": [78, 29]} + ] + }, + { + "name": "Leg1B", + "parent": "Leg1", + "pivot": [4, 8, 11], + "cubes": [ + {"origin": [2, 3, 9.5], "size": [3, 5, 3], "uv": [78, 43]} + ] + }, + { + "name": "Leg1C", + "parent": "Leg1", + "pivot": [4, 8, 11], + "cubes": [ + {"origin": [1.5, -0.1, 9], "size": [4, 3, 4], "uv": [78, 51]} + ], + "locators": { + "leg1c": [4, 2, 12] + } + }, + { + "name": "Leg2", + "parent": "waist", + "pivot": [4, 15, 11] + }, + { + "name": "Leg2A", + "parent": "Leg2", + "pivot": [-4, 15, 11], + "cubes": [ + {"origin": [-5.5, 8, 8.5], "size": [4, 9, 5], "uv": [96, 29]} + ] + }, + { + "name": "Leg2B", + "parent": "Leg2", + "pivot": [-4, 8, 11], + "cubes": [ + {"origin": [-5, 3, 9.5], "size": [3, 5, 3], "uv": [96, 43]} + ] + }, + { + "name": "Leg2C", + "parent": "Leg2", + "pivot": [-4, 8, 11], + "cubes": [ + {"origin": [-5.5, -0.1, 9], "size": [4, 3, 4], "uv": [96, 51]} + ], + "locators": { + "leg2c": [-4, 2, 12] + } + }, + { + "name": "Leg3", + "parent": "waist", + "pivot": [4, 15, 11] + }, + { + "name": "Leg3A", + "parent": "Leg3", + "pivot": [4, 15, -8], + "cubes": [ + {"origin": [2.1, 8, -10.1], "size": [3, 8, 4], "uv": [44, 29]} + ] + }, + { + "name": "Leg3B", + "parent": "Leg3", + "pivot": [4, 8, -8], + "cubes": [ + {"origin": [2.1, 3, -9.6], "size": [3, 5, 3], "uv": [44, 41]} + ] + }, + { + "name": "Leg3C", + "parent": "Leg3", + "pivot": [4, 8, -8], + "cubes": [ + {"origin": [1.6, -0.1, -10.1], "size": [4, 3, 4], "uv": [44, 51]} + ], + "locators": { + "leg3c": [4, 2, -8] + } + }, + { + "name": "Leg4", + "parent": "waist", + "pivot": [4, 15, 11] + }, + { + "name": "Leg4A", + "parent": "Leg4", + "pivot": [-4, 15, -8], + "cubes": [ + {"origin": [-5.1, 8, -10.1], "size": [3, 8, 4], "uv": [60, 29]} + ] + }, + { + "name": "Leg4B", + "parent": "Leg4", + "pivot": [-4, 8, -8], + "cubes": [ + {"origin": [-5.1, 3, -9.6], "size": [3, 5, 3], "uv": [60, 41]} + ] + }, + { + "name": "Leg4C", + "parent": "Leg4", + "pivot": [-4, 8, -8], + "cubes": [ + {"origin": [-5.6, -0.1, -10.1], "size": [4, 3, 4], "uv": [60, 51]} + ], + "locators": { + "leg4c": [-4, 2, -8] + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ash_horse_head.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ash_horse_head.geometry.json new file mode 100644 index 0000000..95b8a1a --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ash_horse_head.geometry.json @@ -0,0 +1,142 @@ +{ + "format_version": "1.10.0", + "geometry.ash_horse_head": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 4, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0], + "bones": [ + { + "name": "main", + "pivot": [0, -17, 10] + }, + { + "name": "HeadSaddle", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.5, 8.1, -7], "size": [5, 5, 12], "uv": [80, 12], "inflate": 0.05} + ] + }, + { + "name": "Mane", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-1, -1.5, 5], "size": [2, 15, 3], "uv": [50, 0]} + ] + }, + { + "name": "hair", + "parent": "Mane", + "pivot": [0, 13, 7], + "rotation": [-45, 0, 0] + }, + { + "name": "Neck", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.05, -1.2, -2], "size": [4, 14, 8], "uv": [0, 12]} + ], + "locators": { + "lead": [0, 0, 2] + } + }, + { + "name": "MuleEarR", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, -15], + "cubes": [ + {"origin": [0, 12, 4], "size": [2, 7, 1], "uv": [0, 12]} + ] + }, + { + "name": "MuleEarL", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, 15], + "cubes": [ + {"origin": [-2, 12, 4], "size": [2, 7, 1], "uv": [0, 12]} + ] + }, + { + "name": "Ear2", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.45, 12, 4], "size": [2, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "Ear1", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [0.45, 12, 4], "size": [2, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "UMouth", + "parent": "main", + "pivot": [0, 10.05, -5], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2, 8.48782, -11.16987], "size": [4, 3, 6], "uv": [24, 18]} + ] + }, + { + "name": "Head", + "parent": "main", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.5, 8, -1.5], "size": [5, 5, 7], "uv": [0, 0]} + ], + "locators": { + "eye0": [2, 11, 2], + "eye1": [-2, 11, 1] + } + }, + { + "name": "LMouthWithSaddle", + "parent": "main", + "pivot": [0, 8, -5] + }, + { + "name": "LMouth", + "parent": "LMouthWithSaddle", + "pivot": [0, 8, -5], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2, 7.59808, -9.87564], "size": [4, 2, 5], "uv": [24, 27]} + ] + }, + { + "name": "SaddleMouthR", + "parent": "LMouthWithSaddle", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.5, 9, -4], "size": [1, 2, 2], "uv": [74, 13]} + ] + }, + { + "name": "SaddleMouthL", + "parent": "LMouthWithSaddle", + "pivot": [0, 3, 0], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [1.5, 9, -4], "size": [1, 2, 2], "uv": [74, 13]} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ash_knight.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ash_knight.geometry.json new file mode 100644 index 0000000..edd0380 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ash_knight.geometry.json @@ -0,0 +1,218 @@ +{ + "format_version": "1.10.0", + "geometry.ash_knight": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "bones": [ + { + "name": "waist", + "pivot": [0, 14, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 26, 0] + }, + { + "name": "main", + "parent": "body", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-4, 14, -2], "size": [8, 12, 4], "uv": [16, 16]} + ] + }, + { + "name": "chestplate", + "parent": "main", + "pivot": [0, 22, 0], + "cubes": [ + {"origin": [-4, 14, -2], "size": [8, 12, 4], "uv": [32, 32], "inflate": 0.1} + ] + }, + { + "name": "heart", + "parent": "main", + "pivot": [0, 22, 0], + "cubes": [ + {"origin": [-2, 20, -2], "size": [4, 4, 4], "uv": [0, 32], "inflate": -0.5} + ], + "locators": { + "heart": [0, 22, 0] + } + }, + { + "name": "cope", + "parent": "main", + "pivot": [0, 24, 1], + "rotation": [2.5, 0, 0], + "cubes": [ + {"origin": [-4, 10, 2.1], "size": [8, 16, 0], "uv": [16, 32]} + ] + }, + { + "name": "head", + "parent": "main", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-4, 26, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "locators": { + "head": [0, 30, 0] + } + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-4, 26, -4], "size": [8, 8, 8], "uv": [32, 0], "inflate": 0.5} + ] + }, + { + "name": "corner0", + "parent": "hat", + "pivot": [-4, 34, -4], + "rotation": [30, 0, -30], + "cubes": [ + {"origin": [-4.5, 33.25, -5.43301], "size": [2, 4, 2], "uv": [28, 54]} + ] + }, + { + "name": "corner1", + "parent": "hat", + "pivot": [4, 34, -4], + "rotation": [30, 0, 30], + "cubes": [ + {"origin": [3, 34, -5], "size": [2, 4, 2], "uv": [28, 54]} + ] + }, + { + "name": "rightArm", + "parent": "main", + "pivot": [-5, 24, 0], + "cubes": [ + {"origin": [-6, 12, -1], "size": [2, 14, 2], "uv": [40, 16]} + ], + "locators": { + "rightarm": [-5, 19, 0] + } + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-5, 13, 1] + }, + { + "name": "right_shoulder", + "parent": "rightArm", + "pivot": [-5, 24, 0], + "rotation": [0, 0, 30], + "cubes": [ + {"origin": [-8, 24, -2], "size": [4, 2, 4], "uv": [0, 46], "inflate": 0.2} + ] + }, + { + "name": "right_sleeve", + "parent": "right_shoulder", + "pivot": [-5, 24, 0], + "rotation": [0, 0, -30], + "cubes": [ + {"origin": [-7, 19, -2], "size": [3, 6, 4], "uv": [0, 52]} + ] + }, + { + "name": "leftArm", + "parent": "main", + "pivot": [5, 24, 0], + "mirror": true, + "cubes": [ + {"origin": [4, 12, -1], "size": [2, 14, 2], "uv": [40, 16]} + ], + "locators": { + "leftarm": [5, 19, 0] + } + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [6, 17, 1] + }, + { + "name": "left_shoulder", + "parent": "leftArm", + "pivot": [5, 24, 0], + "rotation": [0, 0, -30], + "cubes": [ + {"origin": [4, 24, -2], "size": [4, 2, 4], "uv": [0, 40], "inflate": 0.2} + ] + }, + { + "name": "left_sleeve", + "parent": "left_shoulder", + "pivot": [5, 24, 0], + "rotation": [0, 0, 30], + "cubes": [ + {"origin": [4, 19, -2], "size": [3, 6, 4], "uv": [14, 52]} + ] + }, + { + "name": "rightLeg", + "parent": "body", + "pivot": [-2, 14, 0], + "cubes": [ + {"origin": [-3, 0, -1], "size": [2, 14, 2], "uv": [0, 16]} + ], + "locators": { + "rightleg": [-2, 8, 0] + } + }, + { + "name": "right_leggings", + "parent": "rightLeg", + "pivot": [-2, 14, 0], + "cubes": [ + {"origin": [-4, 2, -2], "size": [4, 12, 4], "uv": [64, 0]} + ] + }, + { + "name": "right_boots", + "parent": "rightLeg", + "pivot": [-2, 14, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 4, 4], "uv": [36, 54], "inflate": 0.2} + ] + }, + { + "name": "leftLeg", + "parent": "body", + "pivot": [2, 14, 0], + "mirror": true, + "cubes": [ + {"origin": [1, 0, -1], "size": [2, 14, 2], "uv": [0, 16]} + ], + "locators": { + "leftleg": [2, 8, 0] + } + }, + { + "name": "left_leggings", + "parent": "leftLeg", + "pivot": [2, 14, 0], + "cubes": [ + {"origin": [0, 2, -2], "size": [4, 12, 4], "uv": [80, 0]} + ] + }, + { + "name": "left_boots", + "parent": "leftLeg", + "pivot": [2, 2, 0], + "cubes": [ + {"origin": [0, 0, -2], "size": [4, 4, 4], "uv": [36, 54], "inflate": 0.2} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ash_knight_head.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ash_knight_head.geometry.json new file mode 100644 index 0000000..7b8a993 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ash_knight_head.geometry.json @@ -0,0 +1,53 @@ +{ + "format_version": "1.10.0", + "geometry.ash_knight_head": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "bones": [ + { + "name": "main", + "pivot": [0, 1, 0] + }, + { + "name": "head", + "parent": "main", + "pivot": [0, 1, 0], + "cubes": [ + {"origin": [-4, 1, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "locators": { + "head": [0, 5, 0] + } + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 1, 0], + "cubes": [ + {"origin": [-4, 1, -4], "size": [8, 8, 8], "uv": [32, 0], "inflate": 0.5} + ] + }, + { + "name": "corner0", + "parent": "hat", + "pivot": [-4, 9, -4], + "rotation": [30, 0, -30], + "cubes": [ + {"origin": [-4.5, 8.25, -5.43301], "size": [2, 4, 2], "uv": [28, 54]} + ] + }, + { + "name": "corner1", + "parent": "hat", + "pivot": [4, 9, -4], + "rotation": [30, 0, 30], + "cubes": [ + {"origin": [3, 9, -5], "size": [2, 4, 2], "uv": [28, 54]} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ash_sword.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ash_sword.geometry.json new file mode 100644 index 0000000..0f3a19d --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ash_sword.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.ash_sword","texture_width":16,"texture_height":16,"visible_bounds_width":1,"visible_bounds_height":1,"visible_bounds_offset":[0,0,0]},"bones":[{"name":"main","pivot":[0,8,-11],"texture_meshes":[{"texture":"default","position":[0,0,0],"rotation":[0,45,0],"local_pivot":[8,1,8]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ash_sword_phantom.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ash_sword_phantom.geometry.json new file mode 100644 index 0000000..0f3a19d --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ash_sword_phantom.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.ash_sword","texture_width":16,"texture_height":16,"visible_bounds_width":1,"visible_bounds_height":1,"visible_bounds_offset":[0,0,0]},"bones":[{"name":"main","pivot":[0,8,-11],"texture_meshes":[{"texture":"default","position":[0,0,0],"rotation":[0,45,0],"local_pivot":[8,1,8]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/blackstone_thorn.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/blackstone_thorn.geometry.json new file mode 100644 index 0000000..cd624d1 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/blackstone_thorn.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.ice_thorn","texture_width":16,"texture_height":16,"visible_bounds_width":3,"visible_bounds_height":4,"visible_bounds_offset":[0,1,0]},"bones":[{"name":"main","pivot":[0,0,0],"cubes":[{"origin":[-5,0,-5],"size":[10,4,10],"uv":[0,0]},{"origin":[-4,4,-4],"size":[8,2,8],"uv":[0,0]},{"origin":[-3,6,-3],"size":[6,4,6],"uv":[0,0]},{"origin":[-2,10,-2],"size":[4,8,4],"uv":[0,0]},{"origin":[-1,18,-1],"size":[2,12,2],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/chest_monster.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/chest_monster.geometry.json new file mode 100644 index 0000000..c043f5a --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/chest_monster.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.chester","texture_width":64,"texture_height":64,"visible_bounds_width":2,"visible_bounds_height":2.5,"visible_bounds_offset":[0,0.75,0]},"bones":[{"name":"global","pivot":[0,0,0],"cubes":[{"origin":[-5,0,-4],"size":[9,6,9],"uv":[0,0]}]},{"name":"up","parent":"global","pivot":[-0.5,5.75,5],"cubes":[{"origin":[-5,6,-4],"size":[9,3,9],"uv":[0,15]},{"origin":[-1,5,-5],"size":[1,2,1],"uv":[0,28]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/chester.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/chester.geometry.json new file mode 100644 index 0000000..c043f5a --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/chester.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.chester","texture_width":64,"texture_height":64,"visible_bounds_width":2,"visible_bounds_height":2.5,"visible_bounds_offset":[0,0.75,0]},"bones":[{"name":"global","pivot":[0,0,0],"cubes":[{"origin":[-5,0,-4],"size":[9,6,9],"uv":[0,0]}]},{"name":"up","parent":"global","pivot":[-0.5,5.75,5],"cubes":[{"origin":[-5,6,-4],"size":[9,3,9],"uv":[0,15]},{"origin":[-1,5,-5],"size":[1,2,1],"uv":[0,28]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/clam.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/clam.geometry.json new file mode 100644 index 0000000..2b20524 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/clam.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.clam","texture_width":64,"texture_height":64,"visible_bounds_width":2,"visible_bounds_height":1,"visible_bounds_offset":[0,0.5,0]},"bones":[{"name":"under","pivot":[0,0,0],"cubes":[{"origin":[-3,0,7],"size":[6,1,1],"uv":[0,0]},{"origin":[-2,0,6],"size":[4,1,1],"uv":[0,0]},{"origin":[-1,0,5],"size":[2,1,1],"uv":[0,0]},{"origin":[-2,-1,4],"size":[4,1,1],"uv":[0,0]},{"origin":[-3,-1,3],"size":[6,1,1],"uv":[0,0]},{"origin":[-4,-1,2],"size":[8,1,1],"uv":[0,0]},{"origin":[-5,-2,1],"size":[10,1,1],"uv":[0,0]},{"origin":[-5,-2,-5],"size":[10,1,1],"uv":[0,0]},{"origin":[-6,-2,0],"size":[12,1,1],"uv":[0,0]},{"origin":[-6,-2,-1],"size":[12,1,1],"uv":[0,0]},{"origin":[-6,-2,-2],"size":[12,1,1],"uv":[0,0]},{"origin":[-6,-2,-3],"size":[12,1,1],"uv":[0,0]},{"origin":[-6,-2,-4],"size":[12,1,1],"uv":[0,0]}]},{"name":"over","pivot":[0,0,0],"cubes":[{"origin":[-2,0,4],"size":[4,1,1],"uv":[0,0]},{"origin":[-2,0,4],"size":[4,1,1],"uv":[0,0]},{"origin":[-3,0,3],"size":[6,1,1],"uv":[0,0]},{"origin":[-4,0,2],"size":[8,1,1],"uv":[0,0]},{"origin":[-5,1,1],"size":[10,1,1],"uv":[0,0]},{"origin":[-6,1,0],"size":[12,1,1],"uv":[0,0]},{"origin":[-6,1,-1],"size":[12,1,1],"uv":[0,0]},{"origin":[-6,1,-3],"size":[12,1,1],"uv":[0,0]},{"origin":[-6,1,-4],"size":[12,1,1],"uv":[0,0]},{"origin":[-5,1,-5],"size":[10,1,1],"uv":[0,0]},{"origin":[-6,1,-2],"size":[12,1,1],"uv":[0,0]}]},{"name":"body","pivot":[0,0,0],"cubes":[{"origin":[-1,-1,-1],"size":[2,2,2],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/crab.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/crab.geometry.json new file mode 100644 index 0000000..a71ddf1 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/crab.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.crab","texture_width":256,"texture_height":256,"visible_bounds_width":5,"visible_bounds_height":2,"visible_bounds_offset":[0,0,0]},"bones":[{"name":"bone","pivot":[3,19,-1],"rotation":[0,90,0],"cubes":[{"origin":[9.08552,10.48838,-8.19239],"size":[9,10,7],"pivot":[19.08552,3.48838,-8.19239],"rotation":[0,0,10],"uv":[78,78]},{"origin":[-15.24696,12.73674,-2.15486],"size":[13,10,10],"pivot":[-5.24696,4.73674,1.84514],"rotation":[0,-50,-10],"uv":[0,66]},{"origin":[-0.59565,10.78481,-12.97056],"size":[13,10,10],"pivot":[17.40435,3.78481,-8.97056],"rotation":[0,45,10],"uv":[50,56]},{"origin":[-27.01779,6.00269,-1.11902],"size":[13,4,4],"pivot":[-1,5.08462,6.03279],"rotation":[-10,5,30],"uv":[96,63]},{"origin":[-27.32054,4.79244,-7.9827],"size":[14,4,4],"pivot":[-1,5.08462,6.03279],"rotation":[-10,0,30],"uv":[80,11]},{"origin":[16.73462,4.90202,-0.88631],"size":[13,4,4],"pivot":[-1,5.08462,6.03279],"rotation":[-10,-5,-30],"uv":[32,93]},{"origin":[15.51782,8.3437,2.89915],"size":[13,4,4],"pivot":[-1,5.08462,6.03279],"rotation":[-10,-15,-30],"uv":[80,19]},{"origin":[16.90893,3.68517,-7.78746],"size":[13,4,4],"pivot":[-1,5.08462,6.03279],"rotation":[-10,0,-30],"uv":[86,55]},{"origin":[-27.18857,8.00959,4.50388],"size":[13,4,4],"pivot":[-1,5.08462,6.03279],"rotation":[-10,15,30],"uv":[66,95]},{"origin":[-11,12.08462,5.03279],"size":[23,10,7],"pivot":[-1,5.08462,6.03279],"rotation":[-10,0,0],"uv":[0,49]},{"origin":[-11,12,-12],"size":[23,10,3],"uv":[67,27]},{"origin":[-5,25,-11],"size":[2,7,3],"pivot":[5,18,-26],"rotation":[0,0,-25],"uv":[0,66]},{"origin":[3,17,-11],"size":[2,6,3],"pivot":[13,10,-26],"rotation":[0,0,30],"uv":[75,120]},{"origin":[-11,12,-9],"size":[23,10,17],"uv":[0,0]},{"origin":[-10,7.04798,9.90929],"size":[21,5,6],"pivot":[-1,-4.95202,9.90929],"rotation":[10,0,0],"uv":[63,0]},{"origin":[-12,10,-11],"size":[25,5,17],"pivot":[-1,-2,-11],"rotation":[-10,0,0],"uv":[0,27]},{"origin":[-16.23169,10.28628,-8.95858],"size":[9,10,7],"pivot":[-19.23169,3.28628,-8.95858],"rotation":[0,0,-10],"uv":[46,76]}],"locators":{"locator11":[-1,0,-7],"locator8":[-1,0,-7],"locator2":[-1,0,-9]}},{"name":"bone2","pivot":[-8,15,-14],"cubes":[{"origin":[-17,7,-8],"size":[10,6,6],"pivot":[11,-2,-10],"rotation":[0,-20,15],"uv":[0,86]}],"locators":{"locator3":[0,0,0]}},{"name":"bone3","pivot":[0,0,0]},{"name":"bone4","pivot":[-11,16,-15],"cubes":[{"origin":[-16,4,-16],"size":[4,14,5],"pivot":[-12,14,-13],"rotation":[35,0,35],"uv":[60,103]},{"origin":[-20.31709,6.71343,-10.96694],"size":[6,4,7],"pivot":[-15.31709,6.71343,-6.96694],"rotation":[10,0,0],"uv":[34,101]},{"origin":[-19.31709,0.7742,-6.27235],"size":[4,6,2],"pivot":[-15.31709,2.7742,-6.27235],"rotation":[10,0,0],"uv":[117,0]}],"locators":{"locator5":[0,0,0]}},{"name":"bone5","parent":"bone4","pivot":[-15.31709,2.7742,-6.27235],"cubes":[{"origin":[-19.31709,0.7742,-9.27235],"size":[4,6,3],"pivot":[-15.31709,2.7742,-7.27235],"rotation":[10,0,0],"uv":[36,66]}]},{"name":"bone6","pivot":[-11,17,12],"cubes":[{"origin":[-16,12,5],"size":[10,6,6],"pivot":[-6,14,8],"rotation":[0,20,15],"uv":[78,43]}],"locators":{"locator6":[0,0,0]}},{"name":"bone7","pivot":[-14,18,10],"cubes":[{"origin":[-16.67008,4.53339,9.02251],"size":[4,12,5],"pivot":[-12.67008,15.53339,13.02251],"rotation":[-40,0,35],"uv":[110,71]},{"origin":[-22.30518,9.03129,2.88767],"size":[6,4,6],"uv":[104,89]},{"origin":[-22.30518,3.03129,2.88767],"size":[6,7,3],"uv":[119,22]},{"origin":[-22.30518,3.03129,5.88767],"size":[6,7,3],"pivot":[-16.30518,9.03129,9.88767],"rotation":[10,0,0],"uv":[112,99]}],"locators":{"locator7":[0,0,0]}},{"name":"bone8","pivot":[0,0,0]},{"name":"bone9","pivot":[0,23,-24],"cubes":[{"origin":[-3.12592,8.58788,-25.21274],"size":[4,15,5],"pivot":[0.87408,21.58788,-21.21274],"rotation":[-25,0,0],"uv":[16,98]},{"origin":[-3.12592,-0.50364,-30.33201],"size":[4,12,5],"uv":[78,103]}],"locators":{"locator9":[0,0,0]}},{"name":"bone10","pivot":[9,21,-21],"cubes":[{"origin":[6,-0.35641,-31.59808],"size":[4,11,4],"uv":[110,40]},{"origin":[6,7,-24],"size":[4,17,4],"pivot":[7,23,-21],"rotation":[-30,0,0],"uv":[96,99]}],"locators":{"locator10":[0,0,0]}},{"name":"bone11","pivot":[19,23,-22],"cubes":[{"origin":[15.71427,8.26182,-21.68328],"size":[4,19,4],"pivot":[16.71427,26.26182,-21.68328],"rotation":[-30,0,0],"uv":[0,98]},{"origin":[15.71427,-0.32663,-30.68328],"size":[4,11,4],"uv":[0,27]}]},{"name":"bone12","pivot":[-2,18,25],"cubes":[{"origin":[-4,9,22],"size":[4,11,3],"pivot":[0,19,22],"rotation":[25,0,0],"uv":[48,119]},{"origin":[-4,0.20478,25.94511],"size":[4,11,3],"uv":[13,118]}],"locators":{"locator12":[0,0,0]}},{"name":"bone13","pivot":[8,22,23],"cubes":[{"origin":[6,8,22],"size":[4,14,3],"pivot":[10,20,22],"rotation":[30,0,0],"uv":[0,0]},{"origin":[6,0.1077,27.59808],"size":[4,11,3],"uv":[116,8]}],"locators":{"locator13":[0,0,0]}},{"name":"bone14","pivot":[18,22,22],"cubes":[{"origin":[16,13,24],"size":[4,11,3],"pivot":[19,13,26],"rotation":[25,0,0],"uv":[112,112]},{"origin":[16,0,24],"size":[4,13,3],"uv":[34,112]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/dark_werewolf.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/dark_werewolf.geometry.json new file mode 100644 index 0000000..16e99d2 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/dark_werewolf.geometry.json @@ -0,0 +1,84 @@ +{ + "format_version": "1.10.0", + "geometry.werewolf": { + "texturewidth": 64, + "textureheight": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "bones": [ + { + "name": "waist", + "pivot": [0, 12, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]}, + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]}, + {"origin": [-2, 25, -8], "size": [4, 3, 4], "uv": [24, 0]}, + {"origin": [-1, 28, -8], "size": [1, 1, 1], "uv": [0, 0]}, + {"origin": [0, 28, -8], "size": [1, 1, 1], "uv": [0, 0]}, + {"origin": [-5, 31, 1], "size": [2, 3, 1], "uv": [12, 0]}, + {"origin": [3, 31, 1], "size": [2, 3, 1], "uv": [12, 0]} + ] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-6, 15, 1] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "mirror": true, + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ] + }, + { + "name": "rightLeg", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ] + }, + { + "name": "leftLeg", + "pivot": [1.9, 12, 0], + "mirror": true, + "cubes": [ + {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ] + }, + { + "name": "bone", + "parent": "body", + "pivot": [0, 0, 0], + "rotation": [10, 0, 0], + "cubes": [ + {"origin": [-1, 12, 3], "size": [2, 2, 7], "uv": [8, 0]} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ender_snail.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ender_snail.geometry.json new file mode 100644 index 0000000..b90aef6 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ender_snail.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.snail","texture_width":32,"texture_height":32,"visible_bounds_width":2,"visible_bounds_height":1,"visible_bounds_offset":[0,0.5,0]},"bones":[{"name":"global","pivot":[0,3,0]},{"name":"shell","parent":"global","pivot":[0,0,0],"cubes":[{"origin":[-2,1,-1],"size":[4,5,5],"uv":[0,10]}]},{"name":"body","parent":"global","pivot":[0,0,0],"cubes":[{"origin":[-1,0,-3],"size":[2,1,8],"uv":[0,0]},{"origin":[-1,1,-3],"size":[2,3,2],"pivot":[0,0,0],"rotation":[5,0,0],"uv":[13,0]}]},{"name":"head","parent":"global","pivot":[0,4,-3]},{"name":"right_eye","parent":"head","pivot":[0,4,-3],"rotation":[0,0,-12.5],"cubes":[{"origin":[-1,3,-3],"size":[1,3,0],"uv":[5,4]},{"origin":[-1,6,-4],"size":[1,1,1],"uv":[0,3]}]},{"name":"left_eye","parent":"head","pivot":[0,4,-3],"rotation":[0,0,12.5],"cubes":[{"origin":[0,3,-3],"size":[1,3,0],"uv":[5,0]},{"origin":[0,6,-4],"size":[1,1,1],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ender_snake.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ender_snake.geometry.json new file mode 100644 index 0000000..1bf4e45 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ender_snake.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.ender_snake","texture_width":64,"texture_height":64,"visible_bounds_width":4,"visible_bounds_height":3,"visible_bounds_offset":[0,0.5,0]},"bones":[{"name":"head_bone","pivot":[0,3,-3],"cubes":[{"origin":[-5,4,-15],"size":[10,0,16],"uv":[-16,48]},{"origin":[-5,1,-15],"size":[10,7,16],"uv":[0,0]}]},{"name":"horn","parent":"head_bone","pivot":[0,8,1],"rotation":[-65,0,0],"cubes":[{"origin":[-6,8,1],"size":[12,10,0],"uv":[38,4]}]},{"name":"horn2","parent":"head_bone","pivot":[5,4,0],"cubes":[{"origin":[0,5,0],"size":[12,10,0],"pivot":[5,5,0],"rotation":[-60,0,90],"uv":[38,4]}]},{"name":"horn3","parent":"head_bone","pivot":[-5,4,0],"rotation":[-180,0,180],"cubes":[{"origin":[-10,5,0],"size":[12,10,0],"pivot":[-5,5,0],"rotation":[60,0,90],"uv":[38,4]}]},{"name":"jaw","parent":"head_bone","pivot":[0,3,0],"cubes":[{"origin":[-5,0,-15],"size":[10,4,16],"uv":[0,24]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/entity_soul.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/entity_soul.geometry.json new file mode 100644 index 0000000..367eba6 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/entity_soul.geometry.json @@ -0,0 +1,250 @@ +{ + "format_version": "1.10.0", + "geometry.escaped_soul": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0], + "bones": [ + { + "name": "root", + "pivot": [0, 19, 0], + "locators": { + "particles_point": [0, 19, 0] + } + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 15, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 21, 0], + "cubes": [ + {"origin": [-6, 21, -2], "size": [12, 12, 4], "uv": [36, 0]}, + {"origin": [-5, 15, -2], "size": [10, 6, 4], "uv": [52, 34], "inflate": -0.01}, + {"origin": [-5, 11, 2], "size": [10, 4, 0], "uv": [56, 56]}, + {"origin": [5, 11, -2], "size": [0, 4, 4], "uv": [0, 10]}, + {"origin": [-5, 11, -2], "size": [0, 4, 4], "uv": [0, 0]}, + {"origin": [-5, 11, -2], "size": [10, 4, 0], "uv": [56, 52]}, + {"origin": [-4, 24, -4], "size": [8, 8, 6], "uv": [48, 16], "inflate": -1}, + {"origin": [-6, 17, -2], "size": [12, 4, 0], "uv": [56, 30]}, + {"origin": [-6, 17, 2], "size": [12, 4, 0], "uv": [24, 16]}, + {"origin": [-6, 17, -2], "size": [0, 4, 4], "uv": [28, 0]}, + {"origin": [6, 17, -2], "size": [0, 4, 4], "uv": [0, 14]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 33, 0] + }, + { + "name": "maxilla", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 35, -4], "size": [10, 6, 8], "uv": [0, 0]}, + {"origin": [-5, 33, -4], "size": [10, 2, 0], "uv": [60, 62], "inflate": -0.01}, + {"origin": [-5, 33, 4], "size": [10, 2, 0], "uv": [56, 60], "inflate": -0.01}, + {"origin": [5, 33, -4], "size": [0, 2, 8], "uv": [20, 50], "inflate": -0.01}, + {"origin": [-5, 33, -4], "size": [0, 2, 8], "uv": [20, 48], "inflate": -0.01} + ] + }, + { + "name": "royal_crown", + "parent": "maxilla", + "pivot": [0, 7, 0], + "cubes": [ + {"origin": [-4, 41, 2], "size": [8, 2, 2], "uv": [56, 48]}, + {"origin": [2, 43, -4], "size": [2, 2, 2], "uv": [46, 18]}, + {"origin": [-1, 43, -4], "size": [2, 4, 2], "uv": [0, 38]}, + {"origin": [-4, 43, -4], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [2, 41, -2], "size": [2, 2, 4], "uv": [20, 64]}, + {"origin": [-4, 41, -2], "size": [2, 2, 4], "uv": [28, 38]}, + {"origin": [-4, 41, -4], "size": [8, 2, 2], "uv": [56, 44]} + ] + }, + { + "name": "maxilla0", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 33, -4], "size": [10, 2, 8], "uv": [0, 38], "inflate": 0.01}, + {"origin": [5, 31, -4], "size": [0, 2, 8], "uv": [20, 46], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [0, 2, 8], "uv": [24, 12], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [10, 2, 0], "uv": [40, 62], "inflate": -0.01}, + {"origin": [-5, 31, 4], "size": [10, 2, 0], "uv": [20, 62], "inflate": -0.01} + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 33, 0] + }, + { + "name": "cape", + "parent": "body", + "pivot": [0, 31, 3] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [7, 29, 0], + "cubes": [ + {"origin": [6, 15, -3], "size": [4, 18, 6], "uv": [0, 48]} + ] + }, + { + "name": "left_shoulder", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -0.99} + ] + }, + { + "name": "left_shoulder4", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder3", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [-45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder2", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "leftSleeve", + "parent": "leftArm", + "pivot": [7, 29, 0] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [8, 22, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-7, 29, 0], + "cubes": [ + {"origin": [-10, 15, -3], "size": [4, 18, 6], "uv": [36, 38]} + ] + }, + { + "name": "rightSleeve", + "parent": "rightArm", + "pivot": [-7, 29, 0] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-8, 22, 1], + "locators": { + "lead_hold": [-8, 22, 1] + } + }, + { + "name": "right_shoulder", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99} + ] + }, + { + "name": "right_shoulder4", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder3", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [-45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder2", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "jacket", + "parent": "body", + "pivot": [0, 31, 0] + }, + { + "name": "leg", + "parent": "root", + "pivot": [0, 19, 0] + }, + { + "name": "leg0", + "parent": "leg", + "pivot": [0, 17, 0] + }, + { + "name": "leg1", + "parent": "leg0", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-4, 9, -2], "size": [8, 4, 4], "uv": [0, 30], "inflate": -0.01} + ] + }, + { + "name": "leg2", + "parent": "leg1", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-3, 6, -2], "size": [6, 2, 4], "uv": [14, 48], "inflate": -0.01} + ] + }, + { + "name": "leg3", + "parent": "leg2", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-2, 3, -1], "size": [4, 2, 2], "uv": [28, 0], "inflate": -0.01}, + {"origin": [-1, 0, -1], "size": [2, 2, 2], "uv": [64, 0], "inflate": -0.01} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/entity_soul_1.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/entity_soul_1.geometry.json new file mode 100644 index 0000000..367eba6 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/entity_soul_1.geometry.json @@ -0,0 +1,250 @@ +{ + "format_version": "1.10.0", + "geometry.escaped_soul": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0], + "bones": [ + { + "name": "root", + "pivot": [0, 19, 0], + "locators": { + "particles_point": [0, 19, 0] + } + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 15, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 21, 0], + "cubes": [ + {"origin": [-6, 21, -2], "size": [12, 12, 4], "uv": [36, 0]}, + {"origin": [-5, 15, -2], "size": [10, 6, 4], "uv": [52, 34], "inflate": -0.01}, + {"origin": [-5, 11, 2], "size": [10, 4, 0], "uv": [56, 56]}, + {"origin": [5, 11, -2], "size": [0, 4, 4], "uv": [0, 10]}, + {"origin": [-5, 11, -2], "size": [0, 4, 4], "uv": [0, 0]}, + {"origin": [-5, 11, -2], "size": [10, 4, 0], "uv": [56, 52]}, + {"origin": [-4, 24, -4], "size": [8, 8, 6], "uv": [48, 16], "inflate": -1}, + {"origin": [-6, 17, -2], "size": [12, 4, 0], "uv": [56, 30]}, + {"origin": [-6, 17, 2], "size": [12, 4, 0], "uv": [24, 16]}, + {"origin": [-6, 17, -2], "size": [0, 4, 4], "uv": [28, 0]}, + {"origin": [6, 17, -2], "size": [0, 4, 4], "uv": [0, 14]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 33, 0] + }, + { + "name": "maxilla", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 35, -4], "size": [10, 6, 8], "uv": [0, 0]}, + {"origin": [-5, 33, -4], "size": [10, 2, 0], "uv": [60, 62], "inflate": -0.01}, + {"origin": [-5, 33, 4], "size": [10, 2, 0], "uv": [56, 60], "inflate": -0.01}, + {"origin": [5, 33, -4], "size": [0, 2, 8], "uv": [20, 50], "inflate": -0.01}, + {"origin": [-5, 33, -4], "size": [0, 2, 8], "uv": [20, 48], "inflate": -0.01} + ] + }, + { + "name": "royal_crown", + "parent": "maxilla", + "pivot": [0, 7, 0], + "cubes": [ + {"origin": [-4, 41, 2], "size": [8, 2, 2], "uv": [56, 48]}, + {"origin": [2, 43, -4], "size": [2, 2, 2], "uv": [46, 18]}, + {"origin": [-1, 43, -4], "size": [2, 4, 2], "uv": [0, 38]}, + {"origin": [-4, 43, -4], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [2, 41, -2], "size": [2, 2, 4], "uv": [20, 64]}, + {"origin": [-4, 41, -2], "size": [2, 2, 4], "uv": [28, 38]}, + {"origin": [-4, 41, -4], "size": [8, 2, 2], "uv": [56, 44]} + ] + }, + { + "name": "maxilla0", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 33, -4], "size": [10, 2, 8], "uv": [0, 38], "inflate": 0.01}, + {"origin": [5, 31, -4], "size": [0, 2, 8], "uv": [20, 46], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [0, 2, 8], "uv": [24, 12], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [10, 2, 0], "uv": [40, 62], "inflate": -0.01}, + {"origin": [-5, 31, 4], "size": [10, 2, 0], "uv": [20, 62], "inflate": -0.01} + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 33, 0] + }, + { + "name": "cape", + "parent": "body", + "pivot": [0, 31, 3] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [7, 29, 0], + "cubes": [ + {"origin": [6, 15, -3], "size": [4, 18, 6], "uv": [0, 48]} + ] + }, + { + "name": "left_shoulder", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -0.99} + ] + }, + { + "name": "left_shoulder4", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder3", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [-45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder2", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "leftSleeve", + "parent": "leftArm", + "pivot": [7, 29, 0] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [8, 22, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-7, 29, 0], + "cubes": [ + {"origin": [-10, 15, -3], "size": [4, 18, 6], "uv": [36, 38]} + ] + }, + { + "name": "rightSleeve", + "parent": "rightArm", + "pivot": [-7, 29, 0] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-8, 22, 1], + "locators": { + "lead_hold": [-8, 22, 1] + } + }, + { + "name": "right_shoulder", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99} + ] + }, + { + "name": "right_shoulder4", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder3", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [-45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder2", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "jacket", + "parent": "body", + "pivot": [0, 31, 0] + }, + { + "name": "leg", + "parent": "root", + "pivot": [0, 19, 0] + }, + { + "name": "leg0", + "parent": "leg", + "pivot": [0, 17, 0] + }, + { + "name": "leg1", + "parent": "leg0", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-4, 9, -2], "size": [8, 4, 4], "uv": [0, 30], "inflate": -0.01} + ] + }, + { + "name": "leg2", + "parent": "leg1", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-3, 6, -2], "size": [6, 2, 4], "uv": [14, 48], "inflate": -0.01} + ] + }, + { + "name": "leg3", + "parent": "leg2", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-2, 3, -1], "size": [4, 2, 2], "uv": [28, 0], "inflate": -0.01}, + {"origin": [-1, 0, -1], "size": [2, 2, 2], "uv": [64, 0], "inflate": -0.01} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/escaped_soul_entity.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/escaped_soul_entity.geometry.json new file mode 100644 index 0000000..367eba6 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/escaped_soul_entity.geometry.json @@ -0,0 +1,250 @@ +{ + "format_version": "1.10.0", + "geometry.escaped_soul": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0], + "bones": [ + { + "name": "root", + "pivot": [0, 19, 0], + "locators": { + "particles_point": [0, 19, 0] + } + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 15, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 21, 0], + "cubes": [ + {"origin": [-6, 21, -2], "size": [12, 12, 4], "uv": [36, 0]}, + {"origin": [-5, 15, -2], "size": [10, 6, 4], "uv": [52, 34], "inflate": -0.01}, + {"origin": [-5, 11, 2], "size": [10, 4, 0], "uv": [56, 56]}, + {"origin": [5, 11, -2], "size": [0, 4, 4], "uv": [0, 10]}, + {"origin": [-5, 11, -2], "size": [0, 4, 4], "uv": [0, 0]}, + {"origin": [-5, 11, -2], "size": [10, 4, 0], "uv": [56, 52]}, + {"origin": [-4, 24, -4], "size": [8, 8, 6], "uv": [48, 16], "inflate": -1}, + {"origin": [-6, 17, -2], "size": [12, 4, 0], "uv": [56, 30]}, + {"origin": [-6, 17, 2], "size": [12, 4, 0], "uv": [24, 16]}, + {"origin": [-6, 17, -2], "size": [0, 4, 4], "uv": [28, 0]}, + {"origin": [6, 17, -2], "size": [0, 4, 4], "uv": [0, 14]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 33, 0] + }, + { + "name": "maxilla", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 35, -4], "size": [10, 6, 8], "uv": [0, 0]}, + {"origin": [-5, 33, -4], "size": [10, 2, 0], "uv": [60, 62], "inflate": -0.01}, + {"origin": [-5, 33, 4], "size": [10, 2, 0], "uv": [56, 60], "inflate": -0.01}, + {"origin": [5, 33, -4], "size": [0, 2, 8], "uv": [20, 50], "inflate": -0.01}, + {"origin": [-5, 33, -4], "size": [0, 2, 8], "uv": [20, 48], "inflate": -0.01} + ] + }, + { + "name": "royal_crown", + "parent": "maxilla", + "pivot": [0, 7, 0], + "cubes": [ + {"origin": [-4, 41, 2], "size": [8, 2, 2], "uv": [56, 48]}, + {"origin": [2, 43, -4], "size": [2, 2, 2], "uv": [46, 18]}, + {"origin": [-1, 43, -4], "size": [2, 4, 2], "uv": [0, 38]}, + {"origin": [-4, 43, -4], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [2, 41, -2], "size": [2, 2, 4], "uv": [20, 64]}, + {"origin": [-4, 41, -2], "size": [2, 2, 4], "uv": [28, 38]}, + {"origin": [-4, 41, -4], "size": [8, 2, 2], "uv": [56, 44]} + ] + }, + { + "name": "maxilla0", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 33, -4], "size": [10, 2, 8], "uv": [0, 38], "inflate": 0.01}, + {"origin": [5, 31, -4], "size": [0, 2, 8], "uv": [20, 46], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [0, 2, 8], "uv": [24, 12], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [10, 2, 0], "uv": [40, 62], "inflate": -0.01}, + {"origin": [-5, 31, 4], "size": [10, 2, 0], "uv": [20, 62], "inflate": -0.01} + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 33, 0] + }, + { + "name": "cape", + "parent": "body", + "pivot": [0, 31, 3] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [7, 29, 0], + "cubes": [ + {"origin": [6, 15, -3], "size": [4, 18, 6], "uv": [0, 48]} + ] + }, + { + "name": "left_shoulder", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -0.99} + ] + }, + { + "name": "left_shoulder4", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder3", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [-45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder2", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "leftSleeve", + "parent": "leftArm", + "pivot": [7, 29, 0] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [8, 22, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-7, 29, 0], + "cubes": [ + {"origin": [-10, 15, -3], "size": [4, 18, 6], "uv": [36, 38]} + ] + }, + { + "name": "rightSleeve", + "parent": "rightArm", + "pivot": [-7, 29, 0] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-8, 22, 1], + "locators": { + "lead_hold": [-8, 22, 1] + } + }, + { + "name": "right_shoulder", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99} + ] + }, + { + "name": "right_shoulder4", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder3", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [-45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder2", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "jacket", + "parent": "body", + "pivot": [0, 31, 0] + }, + { + "name": "leg", + "parent": "root", + "pivot": [0, 19, 0] + }, + { + "name": "leg0", + "parent": "leg", + "pivot": [0, 17, 0] + }, + { + "name": "leg1", + "parent": "leg0", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-4, 9, -2], "size": [8, 4, 4], "uv": [0, 30], "inflate": -0.01} + ] + }, + { + "name": "leg2", + "parent": "leg1", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-3, 6, -2], "size": [6, 2, 4], "uv": [14, 48], "inflate": -0.01} + ] + }, + { + "name": "leg3", + "parent": "leg2", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-2, 3, -1], "size": [4, 2, 2], "uv": [28, 0], "inflate": -0.01}, + {"origin": [-1, 0, -1], "size": [2, 2, 2], "uv": [64, 0], "inflate": -0.01} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/everlasting_winter_ghast.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/everlasting_winter_ghast.geometry.json new file mode 100644 index 0000000..df92392 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/everlasting_winter_ghast.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.everlasting_winter_ghast","texture_width":128,"texture_height":128,"visible_bounds_width":3,"visible_bounds_height":28,"visible_bounds_offset":[0,-11,0]},"bones":[{"name":"root","pivot":[0,0,0]},{"name":"waist","parent":"root","pivot":[0,12,0]},{"name":"body","parent":"waist","pivot":[0,24,0],"cubes":[{"origin":[-4,12,-2],"size":[8,12,4],"uv":[16,16]},{"origin":[-4,12,-2],"size":[8,12,4],"inflate":0.25,"uv":[16,32]}]},{"name":"head","parent":"body","pivot":[0,24,0],"cubes":[{"origin":[-4,24,-4],"size":[8,8,8],"uv":[0,0]},{"origin":[-4,24,-4],"size":[8,8,8],"inflate":0.5,"uv":[32,0]}]},{"name":"leftArm","parent":"body","pivot":[5,21.5,0],"cubes":[{"origin":[4,11.5,-2],"size":[3,12,4],"uv":[32,48]},{"origin":[4,11.5,-2],"size":[3,12,4],"inflate":0.25,"uv":[48,48]}]},{"name":"leftItem","parent":"leftArm","pivot":[6,14.5,1]},{"name":"rightArm","parent":"body","pivot":[-5,21.5,0],"cubes":[{"origin":[-7,11.5,-2],"size":[3,12,4],"uv":[40,16]},{"origin":[-7,11.5,-2],"size":[3,12,4],"inflate":0.25,"uv":[40,32]}]},{"name":"rightItem","parent":"rightArm","pivot":[-6,14.5,1],"locators":{"lead_hold":[-6,14.5,1]}},{"name":"rightLeg","parent":"root","pivot":[-1.9,12,0],"cubes":[{"origin":[-3.9,0,-2],"size":[4,12,4],"uv":[0,16]},{"origin":[-3.9,0,-2],"size":[4,12,4],"inflate":0.25,"uv":[0,32]}]},{"name":"leftLeg","parent":"root","pivot":[1.9,12,0],"cubes":[{"origin":[-0.1,0,-2],"size":[4,12,4],"uv":[16,48]},{"origin":[-0.1,0,-2],"size":[4,12,4],"inflate":0.25,"uv":[0,48]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/everlasting_winter_shadow.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/everlasting_winter_shadow.geometry.json new file mode 100644 index 0000000..df92392 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/everlasting_winter_shadow.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.everlasting_winter_ghast","texture_width":128,"texture_height":128,"visible_bounds_width":3,"visible_bounds_height":28,"visible_bounds_offset":[0,-11,0]},"bones":[{"name":"root","pivot":[0,0,0]},{"name":"waist","parent":"root","pivot":[0,12,0]},{"name":"body","parent":"waist","pivot":[0,24,0],"cubes":[{"origin":[-4,12,-2],"size":[8,12,4],"uv":[16,16]},{"origin":[-4,12,-2],"size":[8,12,4],"inflate":0.25,"uv":[16,32]}]},{"name":"head","parent":"body","pivot":[0,24,0],"cubes":[{"origin":[-4,24,-4],"size":[8,8,8],"uv":[0,0]},{"origin":[-4,24,-4],"size":[8,8,8],"inflate":0.5,"uv":[32,0]}]},{"name":"leftArm","parent":"body","pivot":[5,21.5,0],"cubes":[{"origin":[4,11.5,-2],"size":[3,12,4],"uv":[32,48]},{"origin":[4,11.5,-2],"size":[3,12,4],"inflate":0.25,"uv":[48,48]}]},{"name":"leftItem","parent":"leftArm","pivot":[6,14.5,1]},{"name":"rightArm","parent":"body","pivot":[-5,21.5,0],"cubes":[{"origin":[-7,11.5,-2],"size":[3,12,4],"uv":[40,16]},{"origin":[-7,11.5,-2],"size":[3,12,4],"inflate":0.25,"uv":[40,32]}]},{"name":"rightItem","parent":"rightArm","pivot":[-6,14.5,1],"locators":{"lead_hold":[-6,14.5,1]}},{"name":"rightLeg","parent":"root","pivot":[-1.9,12,0],"cubes":[{"origin":[-3.9,0,-2],"size":[4,12,4],"uv":[0,16]},{"origin":[-3.9,0,-2],"size":[4,12,4],"inflate":0.25,"uv":[0,32]}]},{"name":"leftLeg","parent":"root","pivot":[1.9,12,0],"cubes":[{"origin":[-0.1,0,-2],"size":[4,12,4],"uv":[16,48]},{"origin":[-0.1,0,-2],"size":[4,12,4],"inflate":0.25,"uv":[0,48]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/friendly_little_soul.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/friendly_little_soul.geometry.json new file mode 100644 index 0000000..31bdad1 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/friendly_little_soul.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.little_soul","texture_width":64,"texture_height":64,"visible_bounds_width":5,"visible_bounds_height":5.5,"visible_bounds_offset":[0,1.25,0]},"bones":[{"name":"root","pivot":[0,0,0]},{"name":"waist","parent":"root","pivot":[0,12,0]},{"name":"body","parent":"waist","pivot":[1,24,0],"cubes":[{"origin":[-4,12,-4],"size":[8,10,8],"uv":[0,0]},{"origin":[-4,9,-4],"size":[8,3,0],"uv":[24,3]},{"origin":[-4,9,4],"size":[8,3,0],"uv":[24,0]},{"origin":[4,9,-4],"size":[0,3,8],"uv":[0,13]},{"origin":[-4,9,-4],"size":[0,3,8],"uv":[0,10]}]},{"name":"head","parent":"body","pivot":[1,24,0]},{"name":"hat","parent":"head","pivot":[1,24,0]},{"name":"leftArm","parent":"body","pivot":[3,16,-1],"cubes":[{"origin":[3.5,15,-2],"size":[6,2,2],"pivot":[3,16,-1],"rotation":[0,45,0],"uv":[14,22]}]},{"name":"rightArm","parent":"body","pivot":[-4,16,-1],"cubes":[{"origin":[-9,15,-1.29289],"size":[6,2,2],"pivot":[-2,16,-1],"rotation":[0,-45,0],"uv":[16,18]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/frozen_heart.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/frozen_heart.geometry.json new file mode 100644 index 0000000..748489e --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/frozen_heart.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.frozen_heart","texture_width":64,"texture_height":64,"visible_bounds_width":3,"visible_bounds_height":2.5,"visible_bounds_offset":[0,0.75,0]},"bones":[{"name":"head","pivot":[0,8,0]},{"name":"head_cube","parent":"head","pivot":[0,0,0],"cubes":[{"origin":[-8,0,-8],"size":[16,16,16],"uv":[0,0]}]},{"name":"tentacle","parent":"head","pivot":[0,0,0]},{"name":"down","parent":"tentacle","pivot":[0,0,0],"cubes":[{"origin":[-1,-8,-1],"size":[2,8,2],"pivot":[0,8,0],"rotation":[15,0,0],"uv":[0,0]}]},{"name":"up","parent":"tentacle","pivot":[0,16,0],"cubes":[{"origin":[-1,-8,-1],"size":[2,8,2],"pivot":[0,8,0],"rotation":[165,0,0],"uv":[0,0]}]},{"name":"left","parent":"tentacle","pivot":[8,8,0],"cubes":[{"origin":[-1,-8,-1],"size":[2,8,2],"pivot":[0,8,0],"rotation":[15,0,-90],"uv":[0,0]}]},{"name":"right","parent":"tentacle","pivot":[-8,8,0],"cubes":[{"origin":[-1,-8,-1],"size":[2,8,2],"pivot":[0,8,0],"rotation":[15,0,90],"uv":[0,0]}]},{"name":"behind","parent":"tentacle","pivot":[0,8,8],"cubes":[{"origin":[-1,-8,-1],"size":[2,8,2],"pivot":[0,8,0],"rotation":[90,0,0],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/frozen_heart_sleeping.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/frozen_heart_sleeping.geometry.json new file mode 100644 index 0000000..404651c --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/frozen_heart_sleeping.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.block","texture_width":128,"texture_height":128,"visible_bounds_width":3,"visible_bounds_height":3,"visible_bounds_offset":[0,1.5,0]},"bones":[{"name":"bone","pivot":[0,0,0],"cubes":[{"origin":[-16,0,-16],"size":[32,32,32],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/frozen_shadow.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/frozen_shadow.geometry.json new file mode 100644 index 0000000..c1ec288 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/frozen_shadow.geometry.json @@ -0,0 +1,111 @@ +{ + "format_version": "1.8.0", + "geometry.cuteboi": { + "visible_bounds_width": 1, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "bones": [{ + "name": "root", + "pivot": [0.0, 0.0, 0.0] + }, { + "name": "waist", + "parent": "root", + "pivot": [0.0, 12.0, 0.0] + }, { + "name": "body", + "parent": "waist", + "pivot": [0.0, 24.0, 0.0], + "cubes": [{ + "origin": [-4.0, 12.0, -2.0], + "size": [8, 12, 4], + "uv": [16, 16] + }, { + "origin": [-4.0, 12.0, -2.0], + "size": [8, 12, 4], + "uv": [16, 32], + "inflate": 0.25 + }] + }, { + "name": "head", + "parent": "body", + "pivot": [0.0, 24.0, 0.0], + "cubes": [{ + "origin": [-4.0, 24.0, -4.0], + "size": [8, 8, 8], + "uv": [0, 0] + }, { + "origin": [-4.0, 24.0, -4.0], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 0.5 + }] + }, { + "name": "rightLeg", + "parent": "root", + "pivot": [-1.9, 12.0, 0.0], + "cubes": [{ + "origin": [-3.9, 0.0, -2.0], + "size": [4, 12, 4], + "uv": [0, 16] + }, { + "origin": [-3.9, 0.0, -2.0], + "size": [4, 12, 4], + "uv": [0, 32], + "inflate": 0.25 + }] + }, { + "name": "leftLeg", + "parent": "root", + "pivot": [1.9, 12.0, 0.0], + "cubes": [{ + "origin": [-0.1, 0.0, -2.0], + "size": [4, 12, 4], + "uv": [16, 48] + }, { + "origin": [-0.1, 0.0, -2.0], + "size": [4, 12, 4], + "uv": [0, 48], + "inflate": 0.25 + }] + }, { + "name": "leftArm", + "parent": "body", + "pivot": [5.0, 21.5, 0.0], + "cubes": [{ + "origin": [4.0, 11.5, -2.0], + "size": [3, 12, 4], + "uv": [32, 48] + }, { + "origin": [4.0, 11.5, -2.0], + "size": [3, 12, 4], + "uv": [48, 48], + "inflate": 0.25 + }] + }, { + "name": "leftItem", + "pivot": [6, 14.5, 1], + "parent": "leftArm" + }, { + "name": "rightArm", + "parent": "body", + "pivot": [-5.0, 21.5, 0.0], + "cubes": [{ + "origin": [-7.0, 11.5, -2.0], + "size": [3, 12, 4], + "uv": [40, 16] + }, { + "origin": [-7.0, 11.5, -2.0], + "size": [3, 12, 4], + "uv": [40, 32], + "inflate": 0.25 + }] + }, { + "name": "rightItem", + "pivot": [-6, 14.5, 1], + "locators": { + "lead_hold": [-6, 14.5, 1] + }, + "parent": "rightArm" + }] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_axe.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_axe.geometry.json new file mode 100644 index 0000000..a131c5e --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_axe.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.ghost_axe","texture_width":16,"texture_height":16,"visible_bounds_width":2,"visible_bounds_height":2.5,"visible_bounds_offset":[0,0.75,0]},"bones":[{"name":"iron_axe","pivot":[0,13,-12],"rotation":[0,45,90],"cubes":[{"origin":[-11,13,-11],"size":[2,1,7],"uv":{"north":{"uv":[11,1],"uv_size":[-2,1]},"east":{"uv":[10,1],"uv_size":[1,7]},"south":{"uv":[9,7],"uv_size":[2,1]},"west":{"uv":[9,1],"uv_size":[1,7]},"up":{"uv":[11,8],"uv_size":[-2,-7]},"down":{"uv":[11,1],"uv_size":[-2,7]}}},{"origin":[-9,13,-10],"size":[1,1,8],"uv":{"north":{"uv":[9,2],"uv_size":[-1,1]},"east":{"uv":[8,2],"uv_size":[1,8]},"south":{"uv":[8,9],"uv_size":[1,1]},"west":{"uv":[8,2],"uv_size":[1,8]},"up":{"uv":[9,10],"uv_size":[-1,-8]},"down":{"uv":[9,2],"uv_size":[-1,8]}}},{"origin":[-12,13,-10],"size":[1,1,7],"uv":{"north":{"uv":[12,2],"uv_size":[-1,1]},"east":{"uv":[11,2],"uv_size":[1,7]},"south":{"uv":[11,8],"uv_size":[1,1]},"west":{"uv":[11,2],"uv_size":[1,7]},"up":{"uv":[12,9],"uv_size":[-1,-7]},"down":{"uv":[12,2],"uv_size":[-1,7]}}},{"origin":[-8,13,-9],"size":[1,1,4],"uv":{"north":{"uv":[8,3],"uv_size":[-1,1]},"east":{"uv":[7,3],"uv_size":[1,4]},"south":{"uv":[7,6],"uv_size":[1,1]},"west":{"uv":[7,3],"uv_size":[1,4]},"up":{"uv":[8,7],"uv_size":[-1,-4]},"down":{"uv":[8,3],"uv_size":[-1,4]}}},{"origin":[-7,13,-8],"size":[1,1,2],"uv":{"north":{"uv":[7,4],"uv_size":[-1,1]},"east":{"uv":[6,4],"uv_size":[1,2]},"south":{"uv":[6,5],"uv_size":[1,1]},"west":{"uv":[6,4],"uv_size":[1,2]},"up":{"uv":[7,6],"uv_size":[-1,-2]},"down":{"uv":[7,4],"uv_size":[-1,2]}}},{"origin":[-13,13,-8],"size":[1,1,5],"uv":{"north":{"uv":[13,4],"uv_size":[-1,1]},"east":{"uv":[12,4],"uv_size":[1,5]},"south":{"uv":[12,8],"uv_size":[1,1]},"west":{"uv":[12,4],"uv_size":[1,5]},"up":{"uv":[13,9],"uv_size":[-1,-5]},"down":{"uv":[13,4],"uv_size":[-1,5]}}},{"origin":[-14,13,-6],"size":[1,1,2],"uv":{"north":{"uv":[14,6],"uv_size":[-1,1]},"east":{"uv":[13,6],"uv_size":[1,2]},"south":{"uv":[13,7],"uv_size":[1,1]},"west":{"uv":[13,6],"uv_size":[1,2]},"up":{"uv":[14,8],"uv_size":[-1,-2]},"down":{"uv":[14,6],"uv_size":[-1,2]}}},{"origin":[-8,13,-4],"size":[1,1,3],"uv":{"north":{"uv":[8,8],"uv_size":[-1,1]},"east":{"uv":[7,8],"uv_size":[1,3]},"south":{"uv":[7,10],"uv_size":[1,1]},"west":{"uv":[7,8],"uv_size":[1,3]},"up":{"uv":[8,11],"uv_size":[-1,-3]},"down":{"uv":[8,8],"uv_size":[-1,3]}}},{"origin":[-10,13,-4],"size":[1,1,1],"uv":{"north":{"uv":[10,8],"uv_size":[-1,1]},"east":{"uv":[9,8],"uv_size":[1,1]},"south":{"uv":[9,8],"uv_size":[1,1]},"west":{"uv":[9,8],"uv_size":[1,1]},"up":{"uv":[10,9],"uv_size":[-1,-1]},"down":{"uv":[10,8],"uv_size":[-1,1]}}},{"origin":[-7,13,-3],"size":[1,1,3],"uv":{"north":{"uv":[7,9],"uv_size":[-1,1]},"east":{"uv":[6,9],"uv_size":[1,3]},"south":{"uv":[6,11],"uv_size":[1,1]},"west":{"uv":[6,9],"uv_size":[1,3]},"up":{"uv":[7,12],"uv_size":[-1,-3]},"down":{"uv":[7,9],"uv_size":[-1,3]}}},{"origin":[-6,13,-2],"size":[1,1,3],"uv":{"north":{"uv":[6,10],"uv_size":[-1,1]},"east":{"uv":[5,10],"uv_size":[1,3]},"south":{"uv":[5,12],"uv_size":[1,1]},"west":{"uv":[5,10],"uv_size":[1,3]},"up":{"uv":[6,13],"uv_size":[-1,-3]},"down":{"uv":[6,10],"uv_size":[-1,3]}}},{"origin":[-5,13,-1],"size":[1,1,3],"uv":{"north":{"uv":[5,11],"uv_size":[-1,1]},"east":{"uv":[4,11],"uv_size":[1,3]},"south":{"uv":[4,13],"uv_size":[1,1]},"west":{"uv":[4,11],"uv_size":[1,3]},"up":{"uv":[5,14],"uv_size":[-1,-3]},"down":{"uv":[5,11],"uv_size":[-1,3]}}},{"origin":[-4,13,0],"size":[1,1,3],"uv":{"north":{"uv":[4,12],"uv_size":[-1,1]},"east":{"uv":[3,12],"uv_size":[1,3]},"south":{"uv":[3,14],"uv_size":[1,1]},"west":{"uv":[3,12],"uv_size":[1,3]},"up":{"uv":[4,15],"uv_size":[-1,-3]},"down":{"uv":[4,12],"uv_size":[-1,3]}}},{"origin":[-3,13,1],"size":[1,1,2],"uv":{"north":{"uv":[3,13],"uv_size":[-1,1]},"east":{"uv":[2,13],"uv_size":[1,2]},"south":{"uv":[2,14],"uv_size":[1,1]},"west":{"uv":[2,13],"uv_size":[1,2]},"up":{"uv":[3,15],"uv_size":[-1,-2]},"down":{"uv":[3,13],"uv_size":[-1,2]}}}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_staff.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_staff.geometry.json new file mode 100644 index 0000000..079bbb1 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_staff.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.diamond_staff","texture_width":32,"texture_height":32,"visible_bounds_width":2,"visible_bounds_height":2,"visible_bounds_offset":[0,0,0]},"bones":[{"name":"diamond_staff","pivot":[0,8,0],"rotation":[-90,0,-45],"cubes":[{"origin":[-8,8,5],"size":[3,1,3],"uv":[8,0]},{"origin":[-5,8,3],"size":[1,1,3],"uv":[19,5]},{"origin":[-4,8,2],"size":[1,1,3],"uv":[13,19]},{"origin":[-3,8,1],"size":[1,1,3],"uv":[8,18]},{"origin":[-2,8,0],"size":[1,1,3],"uv":[0,18]},{"origin":[-1,8,-1],"size":[1,1,3],"uv":[17,1]},{"origin":[0,8,-2],"size":[1,1,3],"uv":[15,15]},{"origin":[1,8,-3],"size":[1,1,3],"uv":[14,8]},{"origin":[2,8,-4],"size":[1,1,3],"uv":[10,14]},{"origin":[-6,8,4],"size":[1,1,1],"uv":[6,14]},{"origin":[3,8,-7],"size":[1,1,5],"uv":[7,8]},{"origin":[4,8,-7],"size":[1,1,4],"uv":[0,13]},{"origin":[5,8,-8],"size":[1,1,6],"uv":[0,0]},{"origin":[6,8,-8],"size":[1,1,5],"uv":[0,7]},{"origin":[7,8,-8],"size":[1,1,3],"uv":[11,4]},{"origin":[4,8,-2],"size":[1,1,1],"uv":[0,13]},{"origin":[5,8,-1],"size":[1,1,1],"uv":[7,9]},{"origin":[6,8,-2],"size":[1,1,1],"uv":[0,9]},{"origin":[3,8,-1],"size":[1,1,1],"uv":[8,4]},{"origin":[2,8,-6],"size":[1,1,1],"uv":[7,7]},{"origin":[1,8,-5],"size":[1,1,1],"uv":[0,7]},{"origin":[0,8,-4],"size":[1,1,1],"uv":[0,4]},{"origin":[0,8,-6],"size":[1,1,1],"uv":[0,2]},{"origin":[1,8,-7],"size":[1,1,1],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_sword.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_sword.geometry.json new file mode 100644 index 0000000..306c504 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_diamond_sword.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.sword","texture_width":32,"texture_height":32,"visible_bounds_width":3,"visible_bounds_height":1,"visible_bounds_offset":[0,0.5,0]},"bones":[{"name":"all","pivot":[0,0,0],"rotation":[0,-45,0]},{"name":"blade","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[-4,0,-3],"size":[1,1,2],"uv":[17,8]},{"origin":[-3,0,-2],"size":[1,1,2],"uv":[10,16]},{"origin":[-2,0,-2],"size":[3,1,1],"uv":[14,0]},{"origin":[-2,0,-1],"size":[1,1,2],"uv":[16,16]},{"origin":[-3,0,-3],"size":[3,1,1],"uv":[14,14]},{"origin":[-4,0,-4],"size":[3,1,1],"uv":[0,14]},{"origin":[-1,0,-1],"size":[3,1,3],"uv":[0,0]},{"origin":[-5,0,-4],"size":[1,1,2],"uv":[0,16]},{"origin":[-5,0,-5],"size":[3,1,1],"uv":[7,13]},{"origin":[-6,0,-5],"size":[1,1,2],"uv":[15,11]},{"origin":[-6,0,-6],"size":[3,1,1],"uv":[0,12]},{"origin":[-7,0,-6],"size":[1,1,2],"uv":[15,5]},{"origin":[-7,0,-7],"size":[3,1,1],"uv":[9,11]},{"origin":[-8,0,-7],"size":[1,1,2],"uv":[6,15]},{"origin":[-8,0,-8],"size":[3,1,1],"uv":[9,5]}]},{"name":"cross","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[2,0,2],"size":[1,1,1],"uv":[0,19]},{"origin":[0,0,2],"size":[2,1,3],"uv":[0,8]},{"origin":[2,0,0],"size":[3,1,2],"uv":[7,8]},{"origin":[2,0,3],"size":[1,1,1],"uv":[14,16]},{"origin":[3,0,2],"size":[1,1,1],"uv":[15,8]},{"origin":[-1,0,3],"size":[1,1,3],"uv":[9,1]},{"origin":[3,0,-1],"size":[3,1,1],"uv":[14,2]},{"origin":[-2,0,4],"size":[1,1,2],"uv":[4,18]},{"origin":[4,0,-2],"size":[2,1,1],"uv":[10,19]}]},{"name":"hilt","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[4,0,4],"size":[2,1,1],"uv":[19,4]},{"origin":[3,0,3],"size":[2,1,1],"uv":[16,19]},{"origin":[4,0,5],"size":[1,1,1],"uv":[20,16]},{"origin":[3,0,4],"size":[1,1,1],"uv":[19,11]}]},{"name":"tail","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[5,0,5],"size":[3,1,3],"uv":[0,4]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ghost_iron_axe.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_iron_axe.geometry.json new file mode 100644 index 0000000..a131c5e --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_iron_axe.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.ghost_axe","texture_width":16,"texture_height":16,"visible_bounds_width":2,"visible_bounds_height":2.5,"visible_bounds_offset":[0,0.75,0]},"bones":[{"name":"iron_axe","pivot":[0,13,-12],"rotation":[0,45,90],"cubes":[{"origin":[-11,13,-11],"size":[2,1,7],"uv":{"north":{"uv":[11,1],"uv_size":[-2,1]},"east":{"uv":[10,1],"uv_size":[1,7]},"south":{"uv":[9,7],"uv_size":[2,1]},"west":{"uv":[9,1],"uv_size":[1,7]},"up":{"uv":[11,8],"uv_size":[-2,-7]},"down":{"uv":[11,1],"uv_size":[-2,7]}}},{"origin":[-9,13,-10],"size":[1,1,8],"uv":{"north":{"uv":[9,2],"uv_size":[-1,1]},"east":{"uv":[8,2],"uv_size":[1,8]},"south":{"uv":[8,9],"uv_size":[1,1]},"west":{"uv":[8,2],"uv_size":[1,8]},"up":{"uv":[9,10],"uv_size":[-1,-8]},"down":{"uv":[9,2],"uv_size":[-1,8]}}},{"origin":[-12,13,-10],"size":[1,1,7],"uv":{"north":{"uv":[12,2],"uv_size":[-1,1]},"east":{"uv":[11,2],"uv_size":[1,7]},"south":{"uv":[11,8],"uv_size":[1,1]},"west":{"uv":[11,2],"uv_size":[1,7]},"up":{"uv":[12,9],"uv_size":[-1,-7]},"down":{"uv":[12,2],"uv_size":[-1,7]}}},{"origin":[-8,13,-9],"size":[1,1,4],"uv":{"north":{"uv":[8,3],"uv_size":[-1,1]},"east":{"uv":[7,3],"uv_size":[1,4]},"south":{"uv":[7,6],"uv_size":[1,1]},"west":{"uv":[7,3],"uv_size":[1,4]},"up":{"uv":[8,7],"uv_size":[-1,-4]},"down":{"uv":[8,3],"uv_size":[-1,4]}}},{"origin":[-7,13,-8],"size":[1,1,2],"uv":{"north":{"uv":[7,4],"uv_size":[-1,1]},"east":{"uv":[6,4],"uv_size":[1,2]},"south":{"uv":[6,5],"uv_size":[1,1]},"west":{"uv":[6,4],"uv_size":[1,2]},"up":{"uv":[7,6],"uv_size":[-1,-2]},"down":{"uv":[7,4],"uv_size":[-1,2]}}},{"origin":[-13,13,-8],"size":[1,1,5],"uv":{"north":{"uv":[13,4],"uv_size":[-1,1]},"east":{"uv":[12,4],"uv_size":[1,5]},"south":{"uv":[12,8],"uv_size":[1,1]},"west":{"uv":[12,4],"uv_size":[1,5]},"up":{"uv":[13,9],"uv_size":[-1,-5]},"down":{"uv":[13,4],"uv_size":[-1,5]}}},{"origin":[-14,13,-6],"size":[1,1,2],"uv":{"north":{"uv":[14,6],"uv_size":[-1,1]},"east":{"uv":[13,6],"uv_size":[1,2]},"south":{"uv":[13,7],"uv_size":[1,1]},"west":{"uv":[13,6],"uv_size":[1,2]},"up":{"uv":[14,8],"uv_size":[-1,-2]},"down":{"uv":[14,6],"uv_size":[-1,2]}}},{"origin":[-8,13,-4],"size":[1,1,3],"uv":{"north":{"uv":[8,8],"uv_size":[-1,1]},"east":{"uv":[7,8],"uv_size":[1,3]},"south":{"uv":[7,10],"uv_size":[1,1]},"west":{"uv":[7,8],"uv_size":[1,3]},"up":{"uv":[8,11],"uv_size":[-1,-3]},"down":{"uv":[8,8],"uv_size":[-1,3]}}},{"origin":[-10,13,-4],"size":[1,1,1],"uv":{"north":{"uv":[10,8],"uv_size":[-1,1]},"east":{"uv":[9,8],"uv_size":[1,1]},"south":{"uv":[9,8],"uv_size":[1,1]},"west":{"uv":[9,8],"uv_size":[1,1]},"up":{"uv":[10,9],"uv_size":[-1,-1]},"down":{"uv":[10,8],"uv_size":[-1,1]}}},{"origin":[-7,13,-3],"size":[1,1,3],"uv":{"north":{"uv":[7,9],"uv_size":[-1,1]},"east":{"uv":[6,9],"uv_size":[1,3]},"south":{"uv":[6,11],"uv_size":[1,1]},"west":{"uv":[6,9],"uv_size":[1,3]},"up":{"uv":[7,12],"uv_size":[-1,-3]},"down":{"uv":[7,9],"uv_size":[-1,3]}}},{"origin":[-6,13,-2],"size":[1,1,3],"uv":{"north":{"uv":[6,10],"uv_size":[-1,1]},"east":{"uv":[5,10],"uv_size":[1,3]},"south":{"uv":[5,12],"uv_size":[1,1]},"west":{"uv":[5,10],"uv_size":[1,3]},"up":{"uv":[6,13],"uv_size":[-1,-3]},"down":{"uv":[6,10],"uv_size":[-1,3]}}},{"origin":[-5,13,-1],"size":[1,1,3],"uv":{"north":{"uv":[5,11],"uv_size":[-1,1]},"east":{"uv":[4,11],"uv_size":[1,3]},"south":{"uv":[4,13],"uv_size":[1,1]},"west":{"uv":[4,11],"uv_size":[1,3]},"up":{"uv":[5,14],"uv_size":[-1,-3]},"down":{"uv":[5,11],"uv_size":[-1,3]}}},{"origin":[-4,13,0],"size":[1,1,3],"uv":{"north":{"uv":[4,12],"uv_size":[-1,1]},"east":{"uv":[3,12],"uv_size":[1,3]},"south":{"uv":[3,14],"uv_size":[1,1]},"west":{"uv":[3,12],"uv_size":[1,3]},"up":{"uv":[4,15],"uv_size":[-1,-3]},"down":{"uv":[4,12],"uv_size":[-1,3]}}},{"origin":[-3,13,1],"size":[1,1,2],"uv":{"north":{"uv":[3,13],"uv_size":[-1,1]},"east":{"uv":[2,13],"uv_size":[1,2]},"south":{"uv":[2,14],"uv_size":[1,1]},"west":{"uv":[2,13],"uv_size":[1,2]},"up":{"uv":[3,15],"uv_size":[-1,-2]},"down":{"uv":[3,13],"uv_size":[-1,2]}}}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ghost_iron_sword.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_iron_sword.geometry.json new file mode 100644 index 0000000..306c504 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_iron_sword.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.sword","texture_width":32,"texture_height":32,"visible_bounds_width":3,"visible_bounds_height":1,"visible_bounds_offset":[0,0.5,0]},"bones":[{"name":"all","pivot":[0,0,0],"rotation":[0,-45,0]},{"name":"blade","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[-4,0,-3],"size":[1,1,2],"uv":[17,8]},{"origin":[-3,0,-2],"size":[1,1,2],"uv":[10,16]},{"origin":[-2,0,-2],"size":[3,1,1],"uv":[14,0]},{"origin":[-2,0,-1],"size":[1,1,2],"uv":[16,16]},{"origin":[-3,0,-3],"size":[3,1,1],"uv":[14,14]},{"origin":[-4,0,-4],"size":[3,1,1],"uv":[0,14]},{"origin":[-1,0,-1],"size":[3,1,3],"uv":[0,0]},{"origin":[-5,0,-4],"size":[1,1,2],"uv":[0,16]},{"origin":[-5,0,-5],"size":[3,1,1],"uv":[7,13]},{"origin":[-6,0,-5],"size":[1,1,2],"uv":[15,11]},{"origin":[-6,0,-6],"size":[3,1,1],"uv":[0,12]},{"origin":[-7,0,-6],"size":[1,1,2],"uv":[15,5]},{"origin":[-7,0,-7],"size":[3,1,1],"uv":[9,11]},{"origin":[-8,0,-7],"size":[1,1,2],"uv":[6,15]},{"origin":[-8,0,-8],"size":[3,1,1],"uv":[9,5]}]},{"name":"cross","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[2,0,2],"size":[1,1,1],"uv":[0,19]},{"origin":[0,0,2],"size":[2,1,3],"uv":[0,8]},{"origin":[2,0,0],"size":[3,1,2],"uv":[7,8]},{"origin":[2,0,3],"size":[1,1,1],"uv":[14,16]},{"origin":[3,0,2],"size":[1,1,1],"uv":[15,8]},{"origin":[-1,0,3],"size":[1,1,3],"uv":[9,1]},{"origin":[3,0,-1],"size":[3,1,1],"uv":[14,2]},{"origin":[-2,0,4],"size":[1,1,2],"uv":[4,18]},{"origin":[4,0,-2],"size":[2,1,1],"uv":[10,19]}]},{"name":"hilt","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[4,0,4],"size":[2,1,1],"uv":[19,4]},{"origin":[3,0,3],"size":[2,1,1],"uv":[16,19]},{"origin":[4,0,5],"size":[1,1,1],"uv":[20,16]},{"origin":[3,0,4],"size":[1,1,1],"uv":[19,11]}]},{"name":"tail","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[5,0,5],"size":[3,1,3],"uv":[0,4]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ghost_wooden_staff.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_wooden_staff.geometry.json new file mode 100644 index 0000000..b6d1829 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_wooden_staff.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.wooden_staff","texture_width":32,"texture_height":32,"visible_bounds_width":2,"visible_bounds_height":2,"visible_bounds_offset":[0,0,0]},"bones":[{"name":"wooden_staff","pivot":[0,12,0],"rotation":[-90,0,45],"cubes":[{"origin":[5,11,5],"size":[3,1,3],"uv":[0,0]},{"origin":[4,11,4],"size":[2,1,1],"uv":[13,0]},{"origin":[3,11,3],"size":[2,1,1],"uv":[6,13]},{"origin":[2,11,2],"size":[2,1,1],"uv":[0,13]},{"origin":[1,11,1],"size":[2,1,1],"uv":[11,12]},{"origin":[0,11,0],"size":[2,1,1],"uv":[6,11]},{"origin":[-1,11,-1],"size":[2,1,1],"uv":[0,11]},{"origin":[-2,11,-2],"size":[2,1,1],"uv":[10,7]},{"origin":[-3,11,-3],"size":[2,1,1],"uv":[10,4]},{"origin":[-6,11,-4],"size":[4,1,1],"uv":[0,7]},{"origin":[4,11,5],"size":[1,1,1],"uv":[15,10]},{"origin":[3,11,4],"size":[1,1,1],"uv":[15,8]},{"origin":[2,11,3],"size":[1,1,1],"uv":[15,5]},{"origin":[1,11,2],"size":[1,1,1],"uv":[14,15]},{"origin":[0,11,1],"size":[1,1,1],"uv":[8,15]},{"origin":[-1,11,0],"size":[1,1,1],"uv":[4,15]},{"origin":[-2,11,-1],"size":[1,1,1],"uv":[0,15]},{"origin":[-3,11,-2],"size":[1,1,1],"uv":[14,2]},{"origin":[-4,11,-3],"size":[1,1,1],"uv":[11,14]},{"origin":[-7,11,-6],"size":[4,1,2],"uv":[0,4]},{"origin":[-7,11,-7],"size":[3,1,1],"uv":[8,9]},{"origin":[-8,11,-8],"size":[3,1,1],"uv":[0,9]},{"origin":[-8,11,-7],"size":[1,1,2],"uv":[9,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ghost_wooden_sword.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_wooden_sword.geometry.json new file mode 100644 index 0000000..306c504 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ghost_wooden_sword.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.sword","texture_width":32,"texture_height":32,"visible_bounds_width":3,"visible_bounds_height":1,"visible_bounds_offset":[0,0.5,0]},"bones":[{"name":"all","pivot":[0,0,0],"rotation":[0,-45,0]},{"name":"blade","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[-4,0,-3],"size":[1,1,2],"uv":[17,8]},{"origin":[-3,0,-2],"size":[1,1,2],"uv":[10,16]},{"origin":[-2,0,-2],"size":[3,1,1],"uv":[14,0]},{"origin":[-2,0,-1],"size":[1,1,2],"uv":[16,16]},{"origin":[-3,0,-3],"size":[3,1,1],"uv":[14,14]},{"origin":[-4,0,-4],"size":[3,1,1],"uv":[0,14]},{"origin":[-1,0,-1],"size":[3,1,3],"uv":[0,0]},{"origin":[-5,0,-4],"size":[1,1,2],"uv":[0,16]},{"origin":[-5,0,-5],"size":[3,1,1],"uv":[7,13]},{"origin":[-6,0,-5],"size":[1,1,2],"uv":[15,11]},{"origin":[-6,0,-6],"size":[3,1,1],"uv":[0,12]},{"origin":[-7,0,-6],"size":[1,1,2],"uv":[15,5]},{"origin":[-7,0,-7],"size":[3,1,1],"uv":[9,11]},{"origin":[-8,0,-7],"size":[1,1,2],"uv":[6,15]},{"origin":[-8,0,-8],"size":[3,1,1],"uv":[9,5]}]},{"name":"cross","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[2,0,2],"size":[1,1,1],"uv":[0,19]},{"origin":[0,0,2],"size":[2,1,3],"uv":[0,8]},{"origin":[2,0,0],"size":[3,1,2],"uv":[7,8]},{"origin":[2,0,3],"size":[1,1,1],"uv":[14,16]},{"origin":[3,0,2],"size":[1,1,1],"uv":[15,8]},{"origin":[-1,0,3],"size":[1,1,3],"uv":[9,1]},{"origin":[3,0,-1],"size":[3,1,1],"uv":[14,2]},{"origin":[-2,0,4],"size":[1,1,2],"uv":[4,18]},{"origin":[4,0,-2],"size":[2,1,1],"uv":[10,19]}]},{"name":"hilt","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[4,0,4],"size":[2,1,1],"uv":[19,4]},{"origin":[3,0,3],"size":[2,1,1],"uv":[16,19]},{"origin":[4,0,5],"size":[1,1,1],"uv":[20,16]},{"origin":[3,0,4],"size":[1,1,1],"uv":[19,11]}]},{"name":"tail","parent":"all","pivot":[0,0,0],"cubes":[{"origin":[5,0,5],"size":[3,1,3],"uv":[0,4]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/goblin.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/goblin.geometry.json new file mode 100644 index 0000000..a214db7 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/goblin.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.goblin","texture_width":64,"texture_height":64,"visible_bounds_width":3,"visible_bounds_height":4,"visible_bounds_offset":[0,1,0]},"bones":[{"name":"body","pivot":[0,17,-2],"cubes":[{"origin":[-4,14,3],"size":[8,5,4],"pivot":[0,3,5],"rotation":[30,0,0],"uv":[20,22]},{"origin":[-4,7.45427,-2.06814],"size":[8,6,4],"pivot":[0,-2.54573,-0.06814],"rotation":[2.5,0,0],"uv":[0,16]}]},{"name":"bodyArmor","parent":"body","pivot":[0,24,0]},{"name":"belt","parent":"body","pivot":[0,24,0]},{"name":"waist","pivot":[0,12,0]},{"name":"head","pivot":[0,16,-2],"cubes":[{"origin":[-4.5,16,-8],"size":[9,9,8],"uv":[0,0]},{"origin":[-4.5,16,-4],"size":[9,1,4],"uv":[26,0]},{"origin":[5.5,24,-18],"size":[1,9,3],"pivot":[2,8,-14],"rotation":[-45,0,-42.5],"uv":[24,43]},{"origin":[-4.5,29,-17],"size":[1,9,3],"pivot":[-8,13,-13],"rotation":[-45,0,40],"uv":[24,43]},{"origin":[-4.5,20,-9],"size":[9,2,1],"uv":[26,5]},{"origin":[-1.5,17,-3],"size":[3,3,3],"pivot":[0,-5,-4],"rotation":[17.5,0,0],"uv":[32,44]},{"origin":[-1.5,37.05695,14.2378],"size":[3,2,4],"pivot":[0,14.05695,14.2378],"rotation":[87.5,0,0],"uv":[34,8]}]},{"name":"rightArm","pivot":[-5,15,-2],"cubes":[{"origin":[-8,8,-4],"size":[4,8,4],"uv":[0,38]}]},{"name":"rightItem","parent":"rightArm","pivot":[-6,10,-2]},{"name":"rightArmArmor","parent":"rightArm","pivot":[-5,22,0]},{"name":"leftArm","pivot":[5,15,-2],"mirror":true,"cubes":[{"origin":[4,8,-4],"size":[4,8,4],"uv":[32,32],"mirror":false}]},{"name":"leftArmArmor","parent":"leftArm","pivot":[5,22,0],"mirror":true},{"name":"rightLeg","pivot":[-1.9,8,0],"cubes":[{"origin":[-3.9,0,-2],"size":[4,8,4],"uv":[16,31]}]},{"name":"rightLegging","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"rightBoot","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"rightSock","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"leftLeg","pivot":[1.9,8,0],"mirror":true,"cubes":[{"origin":[-0.1,0,-2],"size":[4,8,4],"uv":[0,26],"mirror":false}]},{"name":"leftLegging","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"leftBoot","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"leftSock","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"helmet","pivot":[0,24,0]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/goblin_sniper.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/goblin_sniper.geometry.json new file mode 100644 index 0000000..12f411f --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/goblin_sniper.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.goblin_wizard","texture_width":128,"texture_height":128,"visible_bounds_width":3,"visible_bounds_height":4,"visible_bounds_offset":[0,1,0]},"bones":[{"name":"body","pivot":[0,17,-2],"cubes":[{"origin":[-4,14,3],"size":[8,5,4],"pivot":[0,3,5],"rotation":[30,0,0],"uv":[20,22]},{"origin":[-4,7.45427,-2.06814],"size":[8,6,4],"pivot":[0,-2.54573,-0.06814],"rotation":[2.5,0,0],"uv":[0,16]}]},{"name":"bodyArmor","parent":"body","pivot":[0,24,0]},{"name":"belt","parent":"body","pivot":[0,24,0]},{"name":"waist","pivot":[0,12,0]},{"name":"head","pivot":[0,16,-2],"cubes":[{"origin":[-4.5,16,-8],"size":[9,9,8],"uv":[0,0]},{"origin":[-4.5,16,-4],"size":[9,1,4],"uv":[26,0]},{"origin":[-4.5,20,-9],"size":[9,2,1],"uv":[26,5]},{"origin":[-1.5,17,-3],"size":[3,3,3],"pivot":[0,-5,-4],"rotation":[17.5,0,0],"uv":[32,44]},{"origin":[-1.5,37.05695,14.2378],"size":[3,2,4],"pivot":[0,14.05695,14.2378],"rotation":[87.5,0,0],"uv":[34,8]}]},{"name":"hat","parent":"head","pivot":[0,16,-2],"cubes":[{"origin":[-5,16,-8],"size":[10,9.5,9],"uv":[64,0]}]},{"name":"rightArm","pivot":[-5,15,-2],"cubes":[{"origin":[-8,8,-4],"size":[4,8,4],"uv":[0,38]}]},{"name":"rightItem","parent":"rightArm","pivot":[-6,10,-2]},{"name":"rightArmArmor","parent":"rightArm","pivot":[-5,22,0]},{"name":"leftArm","pivot":[5,15,-2],"mirror":true,"cubes":[{"origin":[4,8,-4],"size":[4,8,4],"uv":[32,32],"mirror":false}]},{"name":"leftArmArmor","parent":"leftArm","pivot":[5,22,0],"mirror":true},{"name":"rightLeg","pivot":[-1.9,8,0],"cubes":[{"origin":[-3.9,0,-2],"size":[4,8,4],"uv":[16,31]}]},{"name":"rightLegging","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"rightBoot","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"rightSock","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"leftLeg","pivot":[1.9,8,0],"mirror":true,"cubes":[{"origin":[-0.1,0,-2],"size":[4,8,4],"uv":[0,26],"mirror":false}]},{"name":"leftLegging","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"leftBoot","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"leftSock","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"helmet","pivot":[0,24,0]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/goblin_wizard.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/goblin_wizard.geometry.json new file mode 100644 index 0000000..12f411f --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/goblin_wizard.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.goblin_wizard","texture_width":128,"texture_height":128,"visible_bounds_width":3,"visible_bounds_height":4,"visible_bounds_offset":[0,1,0]},"bones":[{"name":"body","pivot":[0,17,-2],"cubes":[{"origin":[-4,14,3],"size":[8,5,4],"pivot":[0,3,5],"rotation":[30,0,0],"uv":[20,22]},{"origin":[-4,7.45427,-2.06814],"size":[8,6,4],"pivot":[0,-2.54573,-0.06814],"rotation":[2.5,0,0],"uv":[0,16]}]},{"name":"bodyArmor","parent":"body","pivot":[0,24,0]},{"name":"belt","parent":"body","pivot":[0,24,0]},{"name":"waist","pivot":[0,12,0]},{"name":"head","pivot":[0,16,-2],"cubes":[{"origin":[-4.5,16,-8],"size":[9,9,8],"uv":[0,0]},{"origin":[-4.5,16,-4],"size":[9,1,4],"uv":[26,0]},{"origin":[-4.5,20,-9],"size":[9,2,1],"uv":[26,5]},{"origin":[-1.5,17,-3],"size":[3,3,3],"pivot":[0,-5,-4],"rotation":[17.5,0,0],"uv":[32,44]},{"origin":[-1.5,37.05695,14.2378],"size":[3,2,4],"pivot":[0,14.05695,14.2378],"rotation":[87.5,0,0],"uv":[34,8]}]},{"name":"hat","parent":"head","pivot":[0,16,-2],"cubes":[{"origin":[-5,16,-8],"size":[10,9.5,9],"uv":[64,0]}]},{"name":"rightArm","pivot":[-5,15,-2],"cubes":[{"origin":[-8,8,-4],"size":[4,8,4],"uv":[0,38]}]},{"name":"rightItem","parent":"rightArm","pivot":[-6,10,-2]},{"name":"rightArmArmor","parent":"rightArm","pivot":[-5,22,0]},{"name":"leftArm","pivot":[5,15,-2],"mirror":true,"cubes":[{"origin":[4,8,-4],"size":[4,8,4],"uv":[32,32],"mirror":false}]},{"name":"leftArmArmor","parent":"leftArm","pivot":[5,22,0],"mirror":true},{"name":"rightLeg","pivot":[-1.9,8,0],"cubes":[{"origin":[-3.9,0,-2],"size":[4,8,4],"uv":[16,31]}]},{"name":"rightLegging","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"rightBoot","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"rightSock","parent":"rightLeg","pivot":[-1.9,12,0]},{"name":"leftLeg","pivot":[1.9,8,0],"mirror":true,"cubes":[{"origin":[-0.1,0,-2],"size":[4,8,4],"uv":[0,26],"mirror":false}]},{"name":"leftLegging","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"leftBoot","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"leftSock","parent":"leftLeg","pivot":[1.9,12,0],"mirror":true},{"name":"helmet","pivot":[0,24,0]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/host_of_deep.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/host_of_deep.geometry.json new file mode 100644 index 0000000..c0b9904 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/host_of_deep.geometry.json @@ -0,0 +1,84 @@ +{ + "format_version": "1.10.0", + "geometry.host_of_deep": { + "texturewidth": 64, + "textureheight": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -3], "size": [8, 12, 6], "uv": [16, 20]}, + {"origin": [-4, 6, -3], "size": [8, 18, 6], "uv": [0, 38], "inflate": 0.5} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [0, 0]}, + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [32, 0], "inflate": 0.5} + ] + }, + { + "name": "arms", + "parent": "body", + "pivot": [0, 22, 0], + "cubes": [ + {"origin": [-8, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [4, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [-4, 16, -2], "size": [8, 4, 4], "uv": [40, 38]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [2, 12, 0], + "mirror": true, + "cubes": [ + {"origin": [0, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ], + "locators": { + "right_hand": [-6, 12, 0] + } + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-5.5, 16, 0.5] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "mirror": true, + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ], + "locators": { + "left_hand": [6, 12, 0] + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ice_monster.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ice_monster.geometry.json new file mode 100644 index 0000000..1a1d715 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ice_monster.geometry.json @@ -0,0 +1,182 @@ +{ + "format_version": "1.10.0", + "geometry.ice_monster": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 4, + "visible_bounds_height": 5, + "visible_bounds_offset": [0, 2.5, 0], + "bones": [ + { + "name": "waist", + "pivot": [0, 24, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 15, 0], + "rotation": [15, 0, 0], + "cubes": [ + {"origin": [-8, 23, -5], "size": [16, 12, 12], "uv": [0, 0]}, + {"origin": [-6.5, 15, -4], "size": [13, 8, 8], "uv": [0, 24], "inflate": 0.5} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 33, 0], + "rotation": [-15, 0, 0], + "locators": { + "lead": [0, 31, 0] + } + }, + { + "name": "top", + "parent": "head", + "pivot": [0, 38, 5], + "cubes": [ + {"origin": [-5, 39, -3.5], "size": [10, 8, 8], "uv": [48, 16]} + ] + }, + { + "name": "corner", + "parent": "top", + "pivot": [0, 47, 0], + "rotation": [-12.5, 0, 0], + "cubes": [ + {"origin": [2, 46, 2.5], "size": [2, 4, 2], "uv": [68, 48]}, + {"origin": [3, 46, -1.5], "size": [2, 7, 2], "uv": [82, 79]}, + {"origin": [-5, 46, -1.5], "size": [2, 7, 2], "uv": [60, 82]}, + {"origin": [-5, 46, -3.5], "size": [2, 8, 2], "uv": [24, 54]}, + {"origin": [3, 46, -3.5], "size": [2, 8, 2], "uv": [0, 0]}, + {"origin": [-4, 46, 2.5], "size": [2, 4, 2], "uv": [54, 32]}, + {"origin": [-3, 46, -0.5], "size": [2, 6, 2], "uv": [84, 0]}, + {"origin": [1, 46, -0.5], "size": [2, 6, 2], "uv": [82, 30]}, + {"origin": [-1, 46, -3.5], "size": [2, 12, 2], "uv": [24, 40]}, + {"origin": [-1, 46, 2.5], "size": [2, 6, 2], "uv": [42, 64]} + ] + }, + { + "name": "inner_corner", + "parent": "corner", + "pivot": [0, 49, -2], + "rotation": [-15, 0, -30], + "cubes": [ + {"origin": [-5.5, 48, -1.5], "size": [2, 7, 2], "uv": [74, 81]}, + {"origin": [-7.5, 45, 0.5], "size": [2, 7, 2], "uv": [76, 14]}, + {"origin": [-5.5, 47, 2.5], "size": [2, 7, 2], "uv": [24, 78]} + ] + }, + { + "name": "inner_corner2", + "parent": "corner", + "pivot": [0, 48, 0], + "rotation": [-15, 0, 30], + "cubes": [ + {"origin": [3.5, 48, -1.5], "size": [2, 7, 2], "uv": [78, 62]}, + {"origin": [5.5, 45, 0.5], "size": [2, 7, 2], "uv": [60, 48]}, + {"origin": [3.5, 47, 2.5], "size": [2, 7, 2], "uv": [76, 72]} + ] + }, + { + "name": "maxilla", + "parent": "head", + "pivot": [0, -1, 0], + "cubes": [ + {"origin": [-5, 35, -3.5], "size": [10, 6, 8], "uv": [56, 0], "inflate": -0.1} + ] + }, + { + "name": "arm0", + "parent": "body", + "pivot": [-9, 31, 0], + "rotation": [-15, 0, 0], + "cubes": [ + {"origin": [-14, 11.5, -3], "size": [6, 24, 6], "uv": [0, 40]} + ] + }, + { + "name": "shoulder", + "parent": "arm0", + "pivot": [-12, 34, 0], + "cubes": [ + {"origin": [-15, 29, -3], "size": [6, 8, 6], "uv": [72, 48], "inflate": 0.1} + ] + }, + { + "name": "arm_corner", + "parent": "shoulder", + "pivot": [-14, 35, 0], + "rotation": [0, 0, -30], + "cubes": [ + {"origin": [-15, 35, -2], "size": [4, 4, 4], "uv": [60, 74]}, + {"origin": [-14, 37, -1], "size": [2, 6, 2], "uv": [34, 24]} + ] + }, + { + "name": "arm1", + "parent": "body", + "pivot": [9, 31, 0], + "rotation": [-15, 0, 0], + "cubes": [ + {"origin": [8, 11.5, -3], "size": [6, 24, 6], "uv": [36, 34]} + ] + }, + { + "name": "shoulder1", + "parent": "arm1", + "pivot": [12, 34, 0], + "cubes": [ + {"origin": [9, 29, -3], "size": [6, 8, 6], "uv": [36, 72], "inflate": 0.1} + ] + }, + { + "name": "arm_corner2", + "parent": "shoulder1", + "pivot": [11, 35, 0], + "rotation": [0, 0, 30], + "cubes": [ + {"origin": [11, 36, -2], "size": [4, 4, 4], "uv": [44, 0]}, + {"origin": [12, 38, -1], "size": [2, 6, 2], "uv": [0, 24]} + ] + }, + { + "name": "leg0", + "parent": "waist", + "pivot": [-3, 13, 0], + "rotation": [-15, 0, 0], + "cubes": [ + {"origin": [-6.5, 8, -3], "size": [6, 8, 6], "uv": [0, 72]} + ] + }, + { + "name": "knee0", + "parent": "leg0", + "pivot": [-4, 10, 0], + "rotation": [15, 0, 0], + "cubes": [ + {"origin": [-6.5, 0, -3], "size": [6, 10, 6], "uv": [54, 58], "inflate": 0.1} + ] + }, + { + "name": "leg1", + "parent": "waist", + "pivot": [3, 13, 0], + "rotation": [-15, 0, 0], + "mirror": true, + "cubes": [ + {"origin": [0.5, 8, -3], "size": [6, 8, 6], "uv": [18, 64], "mirror": false} + ] + }, + { + "name": "knee1", + "parent": "leg1", + "pivot": [4, 10, 0], + "rotation": [15, 0, 0], + "cubes": [ + {"origin": [0.5, 0, -3], "size": [6, 10, 6], "uv": [60, 32], "inflate": 0.1} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ice_spirit.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ice_spirit.geometry.json new file mode 100644 index 0000000..ba5bb4c --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ice_spirit.geometry.json @@ -0,0 +1,121 @@ +{ + "format_version": "1.10.0", + "geometry.ice_spirit": { + "texturewidth": 64, + "textureheight": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 1.25, 0], + "bones": [ + { + "name": "root", + "pivot": [0, 4, 0], + "locators": { + "particles_point": [0, 8, 0] + } + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 4, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 4, 0] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 7, 0], + "cubes": [ + {"origin": [-4, 4, -4], "size": [8, 8, 8], "uv": [0, 0]} + ] + }, + { + "name": "corner", + "parent": "head", + "pivot": [0, 11, -1], + "rotation": [-30, 0, 0], + "cubes": [ + {"origin": [-4, 10, -4], "size": [2, 6, 2], "uv": [32, 24], "inflate": -0.1}, + {"origin": [2, 10, -4], "size": [2, 6, 2], "uv": [30, 32], "inflate": -0.1}, + {"origin": [1, 9, -1], "size": [2, 6, 2], "uv": [32, 16], "inflate": -0.1}, + {"origin": [-3, 9, -1], "size": [2, 6, 2], "uv": [32, 8], "inflate": -0.1}, + {"origin": [-1, 10, -4], "size": [2, 8, 2], "uv": [24, 24], "inflate": -0.1}, + {"origin": [-1, 10, 1.5], "size": [2, 6, 2], "uv": [32, 0], "inflate": -0.1} + ] + }, + { + "name": "corner0", + "parent": "corner", + "pivot": [-1, 13, 0], + "rotation": [0, 0, -30], + "cubes": [ + {"origin": [-5, 10, -1], "size": [2, 6, 2], "uv": [0, 0], "inflate": -0.1} + ] + }, + { + "name": "corner1", + "parent": "corner", + "pivot": [2, 13, 0], + "rotation": [0, 0, 30], + "cubes": [ + {"origin": [3, 10, -1], "size": [2, 6, 2], "uv": [24, 0], "inflate": -0.1} + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 14, 0] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-4, 8, 0], + "rotation": [0, 0, 15], + "cubes": [ + {"origin": [-6, 1, -2], "size": [3, 8, 4], "uv": [0, 35]} + ], + "locators": { + "right_hand": [-4, 3, 0] + } + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-5, 14, 1] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 9, 0], + "rotation": [0, 0, -15], + "mirror": true, + "cubes": [ + {"origin": [3, 1, -2], "size": [3, 8, 4], "uv": [0, 24], "mirror": false} + ], + "locators": { + "left_hand": [5, 4, 0] + } + }, + { + "name": "leftLeg", + "parent": "root", + "pivot": [1.9, 3, 0], + "mirror": true, + "cubes": [ + {"origin": [-0.1, 0, -2], "size": [4, 4, 4], "uv": [16, 16], "mirror": false} + ] + }, + { + "name": "rightLeg", + "parent": "root", + "pivot": [-1.9, 2, 0], + "cubes": [ + {"origin": [-3.9, 0, -2], "size": [4, 4, 4], "uv": [0, 16]} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ice_thorn.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ice_thorn.geometry.json new file mode 100644 index 0000000..cd624d1 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ice_thorn.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.ice_thorn","texture_width":16,"texture_height":16,"visible_bounds_width":3,"visible_bounds_height":4,"visible_bounds_offset":[0,1,0]},"bones":[{"name":"main","pivot":[0,0,0],"cubes":[{"origin":[-5,0,-5],"size":[10,4,10],"uv":[0,0]},{"origin":[-4,4,-4],"size":[8,2,8],"uv":[0,0]},{"origin":[-3,6,-3],"size":[6,4,6],"uv":[0,0]},{"origin":[-2,10,-2],"size":[4,8,4],"uv":[0,0]},{"origin":[-1,18,-1],"size":[2,12,2],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/ice_wizard.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/ice_wizard.geometry.json new file mode 100644 index 0000000..bf21a3f --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/ice_wizard.geometry.json @@ -0,0 +1,131 @@ +{ + "format_version": "1.10.0", + "geometry.ice_wizard": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "bones": [ + { + "name": "body", + "pivot": [0, 12, 0], + "cubes": [ + {"origin": [-4, 12, -3], "size": [8, 12, 6], "uv": [16, 20]} + ] + }, + { + "name": "block", + "parent": "body", + "pivot": [0, 0, 0] + }, + { + "name": "ice_block", + "parent": "block", + "pivot": [0, 18, 0], + "cubes": [ + {"origin": [-8, 2, -8], "size": [16, 32, 16], "uv": [0, 64], "inflate": -10} + ] + }, + { + "name": "fly_block", + "parent": "block", + "pivot": [0, 18, 0] + }, + { + "name": "rightblock", + "parent": "fly_block", + "pivot": [0, 18, 0], + "rotation": [0, 90, 0], + "cubes": [ + {"origin": [-8, 10, -21], "size": [16, 16, 16], "uv": [0, 64], "inflate": -10} + ], + "locators": { + "rightblock": [0, 18, -13] + } + }, + { + "name": "leftblock", + "parent": "fly_block", + "pivot": [0, 18, 0], + "rotation": [0, -90, 0], + "cubes": [ + {"origin": [-8, 10, -21], "size": [16, 16, 16], "uv": [0, 64], "inflate": -10} + ], + "locators": { + "leftblock": [0, 18, -13] + } + }, + { + "name": "clothes", + "parent": "body", + "pivot": [0, 20, 0], + "cubes": [ + {"origin": [-4, 6, -3], "size": [8, 18, 6], "uv": [0, 38], "inflate": 0.5} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4.5, 23.5, -4.5], "size": [9, 11, 9], "uv": [28, 44]}, + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [0, 0]} + ] + }, + { + "name": "nose", + "parent": "head", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-1, 23, -6], "size": [2, 4, 2], "uv": [24, 0]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [2, 12, 0], + "mirror": true, + "cubes": [ + {"origin": [0, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [44, 22]} + ], + "locators": { + "right_hand": [-6, 12, 0] + } + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-5.5, 16, 0.5] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "mirror": true, + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [44, 22]} + ], + "locators": { + "left_hand": [6, 12, 0] + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/illusioner.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/illusioner.geometry.json new file mode 100644 index 0000000..752d629 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/illusioner.geometry.json @@ -0,0 +1,150 @@ +{ + "format_version": "1.10.0", + "geometry.illusioner": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [ 0, 1.25, 0 ], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "head", + "parent": "body", + "pivot": [ 0.0, 24.0, 0.0 ], + "cubes": [ + { + "origin": [ -4.0, 24.0, -4.0 ], + "size": [ 8.0, 10.0, 8.0 ], + "uv": [ 0, 0 ] + } + ] + }, + { + "name":"hat", + "parent":"head", + "pivot":[0.0,1.05,0.0], + "cubes":[ + { + "origin":[-4.0,23.1903,-4.1], + "size":[8.0,11.0,8.0], + "uv":[32,0], + "inflate":0.5 + } + ] + }, + { + "name": "nose", + "parent": "head", + "pivot": [ 0.0, 26.0, 0.0 ], + "cubes": [ + { + "origin": [ -1.0, 23.0, -6.0 ], + "size": [ 2.0, 4.0, 2.0 ], + "uv": [ 24, 0 ] + } + ] + }, + { + "name": "body", + "pivot": [ 0.0, 24.0, 0.0 ], + "cubes": [ + { + "origin": [ -4.0, 12.0, -3.0 ], + "size": [ 8.0, 12.0, 6.0 ], + "uv": [ 16, 20 ] + }, + { + "origin": [ -4.0, 6.0, -3.0 ], + "size": [ 8.0, 18.0, 6.0 ], + "uv": [ 0, 38 ], + "inflate": 0.5 + } + ] + }, + { + "name": "arms", + "parent": "body", + "pivot": [ 0.0, 22.0, 0.0 ], + "cubes": [ + { + "origin": [ -8.0, 16.0, -2.0 ], + "size": [ 4.0, 8.0, 4.0 ], + "uv": [ 44, 22 ] + }, + { + "origin": [ 4.0, 16.0, -2.0 ], + "size": [ 4.0, 8.0, 4.0 ], + "uv": [ 44, 22 ] + }, + { + "origin": [ -4.0, 16.0, -2.0 ], + "size": [ 8.0, 4.0, 4.0 ], + "uv": [ 40, 38 ] + } + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [ -2.0, 12.0, 0.0 ], + "cubes": [ + { + "origin": [ -4.0, 0.0, -2.0 ], + "size": [ 4.0, 12.0, 4.0 ], + "uv": [ 0, 22 ] + } + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [ 2.0, 12.0, 0.0 ], + "mirror": true, + "cubes": [ + { + "origin": [ 0.0, 0.0, -2.0 ], + "size": [ 4.0, 12.0, 4.0 ], + "uv": [ 0, 22 ] + } + ] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [ -5.0, 22.0, 0.0 ], + "locators": { + "right_hand": [ -6.0, 12.0, 0.0 ] + }, + "cubes": [ + { + "origin": [ -8.0, 12.0, -2.0 ], + "size": [ 4.0, 12.0, 4.0 ], + "uv": [ 40, 46 ] + } + ] + }, + { + "name": "rightItem", + "pivot": [ -5.5, 16, 0.5 ], + "neverRender": true, + "parent": "rightArm" + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [ 5.0, 22.0, 0.0 ], + "locators": { + "left_hand": [ 6.0, 12.0, 0.0 ] + }, + "mirror": true, + "cubes": [ + { + "origin": [ 4.0, 12.0, -2.0 ], + "size": [ 4.0, 12.0, 4.0 ], + "uv": [ 40, 46 ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/lava_lizard.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/lava_lizard.geometry.json new file mode 100644 index 0000000..612f690 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/lava_lizard.geometry.json @@ -0,0 +1,65 @@ +{ + "format_version": "1.10.0", + "geometry.lava_lizard": { + "texturewidth": 32, + "textureheight": 32, + "visible_bounds_width": 3, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0], + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-1, 1, 1], "size": [2, 4, 7], "uv": [0, 0]}, + {"origin": [0, 5, 0], "size": [0, 1, 6], "uv": [20, -6]}, + {"origin": [-0.9992, 2.0008, -3], "size": [2, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 2, 0], + "cubes": [ + {"origin": [-1, 1, -2], "size": [2, 4, 3], "uv": [11, 0]} + ] + }, + { + "name": "leftFin", + "parent": "body", + "pivot": [1, 1, 0], + "rotation": [0, 0, 35], + "cubes": [ + {"origin": [1, 1, 1], "size": [2, 0, 1], "uv": [24, 4]} + ] + }, + { + "name": "rightFin", + "parent": "body", + "pivot": [-1, 1, 0], + "rotation": [0, 0, -35], + "cubes": [ + {"origin": [-3, 1, 1], "size": [2, 0, 1], "uv": [24, 1]}, + {"origin": [-3, 1, 6], "size": [2, 0, 1], "uv": [24, 1]} + ] + }, + { + "name": "tailfin", + "parent": "body", + "pivot": [0, 0, 8], + "cubes": [ + {"origin": [0, 1, 8], "size": [0, 4, 6], "uv": [20, 1]} + ] + }, + { + "name": "waist", + "parent": "body", + "pivot": [0, 1, 0], + "rotation": [0, 0, 45], + "cubes": [ + {"origin": [0.94038, 1.74959, 6], "size": [2, 0, 1], "uv": [24, 1]} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/leaves_golem.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/leaves_golem.geometry.json new file mode 100644 index 0000000..faa575d --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/leaves_golem.geometry.json @@ -0,0 +1,162 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.leaves_golem", + "texture_width": 128, + "texture_height": 128, + "visible_bounds_width": 4, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0] + }, + "bones": [ + { + "name": "body", + "pivot": [0, 29, 0] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-4, 14, 0], + "rotation": [-22.48072, 0.95645, 2.30991], + "cubes": [ + {"origin": [-7.5, 6, -3], "size": [6, 8, 5], "uv": [37, 0]} + ] + }, + { + "name": "leg3", + "parent": "leg0", + "pivot": [-4, 6, -3], + "rotation": [22.48072, 0.95645, -2.30991], + "cubes": [ + {"origin": [-7.5, -2, -3], "size": [6, 8, 5], "uv": [37, 8]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [5, 14, 0], + "rotation": [-22.48072, -0.95645, -2.30991], + "mirror": true, + "cubes": [ + {"origin": [1.5, 6, -3], "size": [6, 8, 5], "uv": [60, 0]} + ] + }, + { + "name": "leg2", + "parent": "leg1", + "pivot": [5, 6, -3], + "rotation": [22.48072, -0.95645, 2.30991], + "mirror": true, + "cubes": [ + {"origin": [1.5, -2, -3], "size": [6, 8, 5], "uv": [60, 8]} + ] + }, + { + "name": "zhe", + "parent": "body", + "pivot": [0, 14, 0], + "rotation": [-5, 0, 0], + "cubes": [ + {"origin": [-4.5, 14, -3], "size": [9, 5, 6], "inflate": 0.5, "uv": [0, 70]}, + {"origin": [2, 14, 0], "size": [4, 4, 4], "uv": [0, 113]}, + {"origin": [1, 16, 1], "size": [4, 4, 4], "uv": [0, 113]} + ] + }, + { + "name": "zhe2", + "parent": "zhe", + "pivot": [0, 19, 0], + "rotation": [12.5, 0, 0], + "cubes": [ + {"origin": [-9, 19, -6], "size": [18, 12, 11], "uv": [0, 40]}, + {"origin": [-8, 22, 3], "size": [6, 7, 4], "uv": [0, 113]}, + {"origin": [0, 23, 3], "size": [4, 5, 4], "uv": [0, 113]}, + {"origin": [3, 20, 4], "size": [4, 7, 4], "uv": [0, 113]} + ] + }, + { + "name": "arm1", + "parent": "zhe2", + "pivot": [9, 29, 0], + "rotation": [4.99527, 0.21782, -2.4905], + "cubes": [ + {"origin": [9, 17.5, -3], "size": [4, 14, 6], "uv": [60, 58]}, + {"origin": [10, 22, -1], "size": [4, 7, 5], "uv": [0, 113]} + ] + }, + { + "name": "arm3", + "parent": "arm1", + "pivot": [13, 17, 3], + "rotation": [-12.5, 0, 0], + "cubes": [ + {"origin": [9, 1.5, -3], "size": [4, 16, 6], "uv": [60, 72]}, + {"origin": [8, 8, -5], "size": [4, 7, 5], "uv": [0, 113]}, + {"origin": [11, 13, -4], "size": [4, 7, 5], "uv": [0, 113]}, + {"origin": [10, 2, 0], "size": [4, 7, 5], "uv": [0, 113]} + ] + }, + { + "name": "arm0", + "parent": "zhe2", + "pivot": [-9, 29, 0], + "rotation": [7.5, 0, 2.5], + "cubes": [ + {"origin": [-13, 17.5, -3], "size": [4, 14, 6], "uv": [60, 21]}, + {"origin": [-15, 18, -6], "size": [4, 7, 5], "uv": [0, 113]}, + {"origin": [-14, 21, 0], "size": [4, 7, 5], "uv": [0, 113]}, + {"origin": [-16, 28, -5], "size": [6, 5, 7], "uv": [0, 113]} + ] + }, + { + "name": "arm2", + "parent": "arm0", + "pivot": [-13, 17, 3], + "rotation": [-15, 0, 0], + "cubes": [ + {"origin": [-13, 1.5, -3], "size": [4, 16, 6], "uv": [60, 35]}, + {"origin": [-15, 12, 0], "size": [4, 7, 5], "uv": [0, 113]}, + {"origin": [-15, 3, -5], "size": [4, 7, 5], "uv": [0, 113]}, + {"origin": [-11, 5, -1], "size": [4, 7, 5], "uv": [0, 113]} + ] + }, + { + "name": "head", + "parent": "zhe2", + "pivot": [0, 31, -2], + "rotation": [-7.5, 0, 0], + "cubes": [ + {"origin": [-4, 31, -7.5], "size": [8, 10, 8], "uv": [0, 0]} + ], + "locators": { + "lead": [0, 29, -2] + } + }, + { + "name": "zhe3", + "parent": "head", + "pivot": [0, 34, -7], + "cubes": [ + {"origin": [-1, 30, -9.5], "size": [2, 4, 2], "uv": [24, 0]} + ] + }, + { + "name": "zhe4", + "parent": "head", + "pivot": [0, 31, -2], + "cubes": [ + {"origin": [-5, 30, 0], "size": [4, 7, 5], "uv": [0, 113]}, + {"origin": [-6, 38, -4], "size": [15, 7, 4], "uv": [0, 116]}, + {"origin": [-9, 35, -10], "size": [4, 7, 7], "uv": [0, 113]}, + {"origin": [-3, 35, 0], "size": [12, 7, 4], "uv": [0, 114]}, + {"origin": [3, 36, -8], "size": [4, 7, 7], "uv": [0, 113]}, + {"origin": [3, 32, -1], "size": [4, 7, 7], "uv": [0, 113]}, + {"origin": [-7, 36, -3], "size": [4, 7, 7], "uv": [0, 113]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/little_soul.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/little_soul.geometry.json new file mode 100644 index 0000000..31bdad1 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/little_soul.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.little_soul","texture_width":64,"texture_height":64,"visible_bounds_width":5,"visible_bounds_height":5.5,"visible_bounds_offset":[0,1.25,0]},"bones":[{"name":"root","pivot":[0,0,0]},{"name":"waist","parent":"root","pivot":[0,12,0]},{"name":"body","parent":"waist","pivot":[1,24,0],"cubes":[{"origin":[-4,12,-4],"size":[8,10,8],"uv":[0,0]},{"origin":[-4,9,-4],"size":[8,3,0],"uv":[24,3]},{"origin":[-4,9,4],"size":[8,3,0],"uv":[24,0]},{"origin":[4,9,-4],"size":[0,3,8],"uv":[0,13]},{"origin":[-4,9,-4],"size":[0,3,8],"uv":[0,10]}]},{"name":"head","parent":"body","pivot":[1,24,0]},{"name":"hat","parent":"head","pivot":[1,24,0]},{"name":"leftArm","parent":"body","pivot":[3,16,-1],"cubes":[{"origin":[3.5,15,-2],"size":[6,2,2],"pivot":[3,16,-1],"rotation":[0,45,0],"uv":[14,22]}]},{"name":"rightArm","parent":"body","pivot":[-4,16,-1],"cubes":[{"origin":[-9,15,-1.29289],"size":[6,2,2],"pivot":[-2,16,-1],"rotation":[0,-45,0],"uv":[16,18]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/murloc_wizard.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/murloc_wizard.geometry.json new file mode 100644 index 0000000..0b2dcec --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/murloc_wizard.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.murloc","texture_width":64,"texture_height":64,"visible_bounds_width":6,"visible_bounds_height":4.5,"visible_bounds_offset":[0,0.75,0]},"bones":[{"name":"rightLeg","pivot":[-1.9,12,0]},{"name":"body","pivot":[0,24,0],"cubes":[{"origin":[-4,12,-2],"size":[8,12,4],"uv":{"north":{"uv":[4,20],"uv_size":[8,12]},"east":{"uv":[0,20],"uv_size":[4,12]},"south":{"uv":[16,20],"uv_size":[8,12]},"west":{"uv":[12,20],"uv_size":[4,12]},"up":{"uv":[4,16],"uv_size":[8,4]},"down":{"uv":[12,20],"uv_size":[8,-4]}}},{"origin":[-1,22,0],"size":[1,1,3],"uv":{"north":{"uv":[27,7],"uv_size":[1,1]},"east":{"uv":[24,7],"uv_size":[3,1]},"south":{"uv":[31,7],"uv_size":[1,1]},"west":{"uv":[28,7],"uv_size":[3,1]},"up":{"uv":[27,4],"uv_size":[1,3]},"down":{"uv":[28,7],"uv_size":[1,-3]}}},{"origin":[-1,20,1],"size":[1,1,3],"uv":{"north":{"uv":[27,3],"uv_size":[1,1]},"east":{"uv":[24,3],"uv_size":[3,1]},"south":{"uv":[31,3],"uv_size":[1,1]},"west":{"uv":[28,3],"uv_size":[3,1]},"up":{"uv":[27,0],"uv_size":[1,3]},"down":{"uv":[28,3],"uv_size":[1,-3]}}},{"origin":[-1,18,2],"size":[1,1,3],"uv":{"north":{"uv":[23,19],"uv_size":[1,1]},"east":{"uv":[20,19],"uv_size":[3,1]},"south":{"uv":[27,19],"uv_size":[1,1]},"west":{"uv":[24,19],"uv_size":[3,1]},"up":{"uv":[23,16],"uv_size":[1,3]},"down":{"uv":[24,19],"uv_size":[1,-3]}}},{"origin":[-1,16,1],"size":[1,1,3],"uv":{"north":{"uv":[3,7],"uv_size":[1,1]},"east":{"uv":[0,7],"uv_size":[3,1]},"south":{"uv":[7,7],"uv_size":[1,1]},"west":{"uv":[4,7],"uv_size":[3,1]},"up":{"uv":[3,4],"uv_size":[1,3]},"down":{"uv":[4,7],"uv_size":[1,-3]}}},{"origin":[-1,14,0],"size":[1,1,3],"uv":{"north":{"uv":[3,3],"uv_size":[1,1]},"east":{"uv":[0,3],"uv_size":[3,1]},"south":{"uv":[7,3],"uv_size":[1,1]},"west":{"uv":[4,3],"uv_size":[3,1]},"up":{"uv":[3,0],"uv_size":[1,3]},"down":{"uv":[4,3],"uv_size":[1,-3]}}}]},{"name":"head","parent":"body","pivot":[0,24,0],"cubes":[{"origin":[-4,24,-4],"size":[8,8,8],"uv":{"north":{"uv":[8,8],"uv_size":[8,8]},"east":{"uv":[0,8],"uv_size":[8,8]},"south":{"uv":[24,8],"uv_size":[8,8]},"west":{"uv":[16,8],"uv_size":[8,8]},"up":{"uv":[8,0],"uv_size":[8,8]},"down":{"uv":[16,8],"uv_size":[8,-8]}}}]},{"name":"leftArm","parent":"body","pivot":[5,22,0],"cubes":[{"origin":[4,12,-2],"size":[4,12,4],"uv":{"north":{"uv":[36,4],"uv_size":[4,12]},"east":{"uv":[32,4],"uv_size":[4,12]},"south":{"uv":[44,4],"uv_size":[4,12]},"west":{"uv":[40,4],"uv_size":[4,12]},"up":{"uv":[36,0],"uv_size":[4,4]},"down":{"uv":[40,4],"uv_size":[4,-4]}}}]},{"name":"rightArm","parent":"body","pivot":[-5,22,0],"cubes":[{"origin":[-8,12,-2],"size":[4,12,4],"uv":{"north":{"uv":[40,40],"uv_size":[4,12]},"east":{"uv":[36,40],"uv_size":[4,12]},"south":{"uv":[48,40],"uv_size":[4,12]},"west":{"uv":[44,40],"uv_size":[4,12]},"up":{"uv":[40,36],"uv_size":[4,4]},"down":{"uv":[44,40],"uv_size":[4,-4]}}}]},{"name":"leftLeg","parent":"body","pivot":[1.9,12,0]},{"name":"bone","parent":"leftLeg","pivot":[0,12,0],"cubes":[{"origin":[-4.1,6,-2],"size":[8,6,4],"uv":{"north":{"uv":[12.5,23],"uv_size":[4,8]},"east":{"uv":[13,20],"uv_size":[4,12]},"south":{"uv":[12.5,19.5],"uv_size":[4.5,9]},"west":{"uv":[13,20],"uv_size":[4,12]},"up":{"uv":[28,24],"uv_size":[4,4]},"down":{"uv":[32,28],"uv_size":[4,-4]}}}]},{"name":"bone2","parent":"bone","pivot":[0,6,0],"cubes":[{"origin":[-3.1,0,-2],"size":[6,6,3],"uv":{"north":{"uv":[12.5,23],"uv_size":[4,8]},"east":{"uv":[13,20],"uv_size":[4,12]},"south":{"uv":[12.5,19.5],"uv_size":[4.5,9]},"west":{"uv":[13,20],"uv_size":[4,12]},"up":{"uv":[28,24],"uv_size":[4,4]},"down":{"uv":[32,28],"uv_size":[4,-4]}}}]},{"name":"bone3","parent":"bone2","pivot":[0,0,0],"cubes":[{"origin":[-5.1,-9,-1],"size":[10,9,1],"uv":{"north":{"uv":[12.5,23],"uv_size":[4,8]},"east":{"uv":[13,20],"uv_size":[4,12]},"south":{"uv":[12.5,19.5],"uv_size":[4.5,9]},"west":{"uv":[13,20],"uv_size":[4,12]},"up":{"uv":[28,24],"uv_size":[4,4]},"down":{"uv":[32,28],"uv_size":[4,-4]}}}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/mushroom_monster.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/mushroom_monster.geometry.json new file mode 100644 index 0000000..7f6bb66 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/mushroom_monster.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.mushroom_monster","texture_width":64,"texture_height":64,"visible_bounds_width":2,"visible_bounds_height":2.5,"visible_bounds_offset":[0,0.75,0]},"bones":[{"name":"global","pivot":[0,0,0]},{"name":"body","parent":"global","pivot":[2,0,-3],"cubes":[{"origin":[-3,0,-3],"size":[5,5,5],"uv":[0,19]}]},{"name":"head","parent":"global","pivot":[2,0,-3],"cubes":[{"origin":[-5,5,-5],"size":[9,2,9],"uv":[0,0]},{"origin":[-4,7,-4],"size":[7,1,7],"uv":[0,11]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/nautilus.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/nautilus.geometry.json new file mode 100644 index 0000000..d334292 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/nautilus.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.nautilus","texture_width":128,"texture_height":128,"visible_bounds_width":2,"visible_bounds_height":1,"visible_bounds_offset":[0,0,0]},"bones":[{"name":"bone","pivot":[0,0,0],"cubes":[{"origin":[-3,0,0],"size":[5,1,1],"uv":[40,37]},{"origin":[-3,0,-1],"size":[5,1,1],"uv":[22,32]},{"origin":[-3,0,-2],"size":[5,1,1],"uv":[22,30]},{"origin":[-3,1,-3],"size":[5,1,1],"uv":[22,28]},{"origin":[-3,1,-4],"size":[5,1,1],"uv":[22,26]},{"origin":[-3,2,-5],"size":[5,1,1],"uv":[0,23]},{"origin":[-3,0,1],"size":[5,1,1],"uv":[22,19]},{"origin":[-3,1,-2],"size":[5,1,5],"uv":[23,47]},{"origin":[-3,1,3],"size":[5,1,1],"uv":[22,17]},{"origin":[-3,2,-4],"size":[5,1,9],"uv":[0,41]},{"origin":[-3,3,-5],"size":[5,1,11],"uv":[40,40]},{"origin":[-3,4,-5],"size":[5,1,11],"uv":[19,35]},{"origin":[-4,4,-5],"size":[7,2,2],"uv":[43,7]},{"origin":[-3,5,-5],"size":[5,1,12],"uv":[22,22]},{"origin":[-3,6,-5],"size":[5,1,12],"uv":[0,13]},{"origin":[-4,3,-3],"size":[7,6,8],"uv":[0,27]},{"origin":[-4,9,-2],"size":[7,1,6],"uv":[43,0]},{"origin":[-4,2,-2],"size":[7,1,5],"uv":[44,12]},{"origin":[-3,7,-5],"size":[5,1,12],"uv":[0,0]},{"origin":[-3,8,-4],"size":[5,1,11],"uv":[22,0]},{"origin":[-3,9,-3],"size":[5,1,9],"uv":[25,12]},{"origin":[-3,10,-2],"size":[5,1,6],"uv":[44,22]},{"origin":[-3,11,2],"size":[5,1,1],"uv":[22,15]},{"origin":[-3,11,1],"size":[5,1,1],"uv":[22,13]},{"origin":[-3,11,0],"size":[5,1,1],"uv":[22,22]},{"origin":[-3,11,-1],"size":[5,1,1],"uv":[0,21]},{"origin":[-3,11,-2],"size":[5,1,1],"uv":[0,19]},{"origin":[-3,10,-3],"size":[5,1,1],"uv":[0,17]},{"origin":[-3,9,-4],"size":[5,1,1],"uv":[0,15]},{"origin":[-3,8,-5],"size":[5,1,1],"uv":[0,13]},{"origin":[-3,8,-6],"size":[5,1,1],"uv":[0,9]},{"origin":[-3,7,-7],"size":[5,1,1],"uv":[0,7]},{"origin":[-3,6,-7],"size":[5,1,1],"uv":[0,5]},{"origin":[-2,6,-8],"size":[3,1,1],"uv":[22,4]},{"origin":[-3,5,-6],"size":[5,2,1],"uv":[0,0]},{"origin":[-2,6,-9],"size":[3,1,1],"uv":[22,2]},{"origin":[-1,6,-10],"size":[1,1,1],"uv":[22,6]},{"origin":[-2,7,-8],"size":[3,1,1],"uv":[22,0]},{"origin":[-3,7,-6],"size":[5,1,1],"uv":[0,3]}]},{"name":"bone2","parent":"bone","pivot":[-2,5,-6],"cubes":[{"origin":[-3,5,-12],"size":[1,1,7],"uv":[0,59]}]},{"name":"bone3","parent":"bone","pivot":[-3,4,-5],"cubes":[{"origin":[-3,3,-12],"size":[1,1,7],"uv":[58,30]}]},{"name":"bone4","parent":"bone","pivot":[-3,1,-4],"cubes":[{"origin":[-3,1,-11],"size":[1,1,7],"uv":[27,54]}]},{"name":"bone5","parent":"bone","pivot":[-1,2,-5],"cubes":[{"origin":[-1,1,-11],"size":[1,1,7],"uv":[18,53]}]},{"name":"bone6","parent":"bone","pivot":[1,2,-4],"cubes":[{"origin":[1,1,-11],"size":[1,1,7],"uv":[52,52]}]},{"name":"bone7","parent":"bone","pivot":[1,-3,1]},{"name":"bone8","parent":"bone","pivot":[3,-3,1]},{"name":"bone9","parent":"bone","pivot":[-1,4,-6],"cubes":[{"origin":[-1,3,-11],"size":[1,1,7],"uv":[36,52]}]},{"name":"bone10","parent":"bone","pivot":[2,4,-4],"cubes":[{"origin":[1,3,-11],"size":[1,1,7],"uv":[9,52]}]},{"name":"bone11","parent":"bone","pivot":[1,5,-6],"cubes":[{"origin":[1,5,-11],"size":[1,1,7],"uv":[0,51]}]},{"name":"bone12","parent":"bone","pivot":[0,6,-6],"cubes":[{"origin":[-1,5,-11],"size":[1,1,7],"uv":[49,29]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/saucer.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/saucer.geometry.json new file mode 100644 index 0000000..1e7236b --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/saucer.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.saucer","texture_width":128,"texture_height":128,"visible_bounds_width":1,"visible_bounds_height":1,"visible_bounds_offset":[0,0,0]},"bones":[{"name":"bottom","pivot":[0,0,0],"cubes":[{"origin":[-10,0,-10],"size":[20,1,20],"uv":[0,0]},{"origin":[-7,1,-7],"size":[14,1,14],"uv":[0,21]}]},{"name":"body","pivot":[0,0,0],"cubes":[{"origin":[-6,2,-6],"size":[12,6,12],"uv":[0,36]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/sea_urchin.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/sea_urchin.geometry.json new file mode 100644 index 0000000..daee2c9 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/sea_urchin.geometry.json @@ -0,0 +1 @@ +{"format_version":"1.12.0","minecraft:geometry":[{"description":{"identifier":"geometry.sea_urchin","texture_width":16,"texture_height":16,"visible_bounds_width":2,"visible_bounds_height":1,"visible_bounds_offset":[0,0.5,0]},"bones":[{"name":"bone","pivot":[0,0,0],"cubes":[{"origin":[-3,-2,-2],"size":[5,5,5],"uv":[0,0]},{"origin":[-7,0,1],"size":[4,1,1],"uv":[0,0]},{"origin":[-1,1,3],"size":[1,1,4],"uv":[0,0]},{"origin":[-2,0,-7],"size":[1,1,5],"uv":[0,0]},{"origin":[2,-1,-1],"size":[4,1,1],"uv":[0,0]},{"origin":[0,3,-1],"size":[1,4,1],"uv":[0,0]},{"origin":[-2,3,1],"size":[1,7,1],"uv":[0,0]},{"origin":[2,0,1],"size":[2,1,1],"uv":[0,0]},{"origin":[1,2,-6],"size":[1,1,4],"uv":[0,0]},{"origin":[-1,-7,0],"size":[1,5,1],"uv":[0,0]},{"origin":[-3,-5,2],"size":[1,3,1],"uv":[0,0]},{"origin":[-2,-7,-2],"size":[1,5,1],"uv":[0,0]},{"origin":[-7,1,-2],"size":[4,1,1],"uv":[0,0]},{"origin":[2,2,-2],"size":[3,1,1],"uv":[4,1]},{"origin":[-3,0,3],"size":[1,1,3],"uv":[0,0]},{"origin":[1,-1,3],"size":[1,1,3],"uv":[0,0]}]}]}]} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/shadow_of_deep.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/shadow_of_deep.geometry.json new file mode 100644 index 0000000..c0b9904 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/shadow_of_deep.geometry.json @@ -0,0 +1,84 @@ +{ + "format_version": "1.10.0", + "geometry.host_of_deep": { + "texturewidth": 64, + "textureheight": 64, + "visible_bounds_width": 2, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -3], "size": [8, 12, 6], "uv": [16, 20]}, + {"origin": [-4, 6, -3], "size": [8, 18, 6], "uv": [0, 38], "inflate": 0.5} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [0, 0]}, + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [32, 0], "inflate": 0.5} + ] + }, + { + "name": "arms", + "parent": "body", + "pivot": [0, 22, 0], + "cubes": [ + {"origin": [-8, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [4, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [-4, 16, -2], "size": [8, 4, 4], "uv": [40, 38]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [2, 12, 0], + "mirror": true, + "cubes": [ + {"origin": [0, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ], + "locators": { + "right_hand": [-6, 12, 0] + } + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-5.5, 16, 0.5] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "mirror": true, + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ], + "locators": { + "left_hand": [6, 12, 0] + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/shadow_soul_1.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/shadow_soul_1.geometry.json new file mode 100644 index 0000000..367eba6 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/shadow_soul_1.geometry.json @@ -0,0 +1,250 @@ +{ + "format_version": "1.10.0", + "geometry.escaped_soul": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0], + "bones": [ + { + "name": "root", + "pivot": [0, 19, 0], + "locators": { + "particles_point": [0, 19, 0] + } + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 15, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 21, 0], + "cubes": [ + {"origin": [-6, 21, -2], "size": [12, 12, 4], "uv": [36, 0]}, + {"origin": [-5, 15, -2], "size": [10, 6, 4], "uv": [52, 34], "inflate": -0.01}, + {"origin": [-5, 11, 2], "size": [10, 4, 0], "uv": [56, 56]}, + {"origin": [5, 11, -2], "size": [0, 4, 4], "uv": [0, 10]}, + {"origin": [-5, 11, -2], "size": [0, 4, 4], "uv": [0, 0]}, + {"origin": [-5, 11, -2], "size": [10, 4, 0], "uv": [56, 52]}, + {"origin": [-4, 24, -4], "size": [8, 8, 6], "uv": [48, 16], "inflate": -1}, + {"origin": [-6, 17, -2], "size": [12, 4, 0], "uv": [56, 30]}, + {"origin": [-6, 17, 2], "size": [12, 4, 0], "uv": [24, 16]}, + {"origin": [-6, 17, -2], "size": [0, 4, 4], "uv": [28, 0]}, + {"origin": [6, 17, -2], "size": [0, 4, 4], "uv": [0, 14]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 33, 0] + }, + { + "name": "maxilla", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 35, -4], "size": [10, 6, 8], "uv": [0, 0]}, + {"origin": [-5, 33, -4], "size": [10, 2, 0], "uv": [60, 62], "inflate": -0.01}, + {"origin": [-5, 33, 4], "size": [10, 2, 0], "uv": [56, 60], "inflate": -0.01}, + {"origin": [5, 33, -4], "size": [0, 2, 8], "uv": [20, 50], "inflate": -0.01}, + {"origin": [-5, 33, -4], "size": [0, 2, 8], "uv": [20, 48], "inflate": -0.01} + ] + }, + { + "name": "royal_crown", + "parent": "maxilla", + "pivot": [0, 7, 0], + "cubes": [ + {"origin": [-4, 41, 2], "size": [8, 2, 2], "uv": [56, 48]}, + {"origin": [2, 43, -4], "size": [2, 2, 2], "uv": [46, 18]}, + {"origin": [-1, 43, -4], "size": [2, 4, 2], "uv": [0, 38]}, + {"origin": [-4, 43, -4], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [2, 41, -2], "size": [2, 2, 4], "uv": [20, 64]}, + {"origin": [-4, 41, -2], "size": [2, 2, 4], "uv": [28, 38]}, + {"origin": [-4, 41, -4], "size": [8, 2, 2], "uv": [56, 44]} + ] + }, + { + "name": "maxilla0", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 33, -4], "size": [10, 2, 8], "uv": [0, 38], "inflate": 0.01}, + {"origin": [5, 31, -4], "size": [0, 2, 8], "uv": [20, 46], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [0, 2, 8], "uv": [24, 12], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [10, 2, 0], "uv": [40, 62], "inflate": -0.01}, + {"origin": [-5, 31, 4], "size": [10, 2, 0], "uv": [20, 62], "inflate": -0.01} + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 33, 0] + }, + { + "name": "cape", + "parent": "body", + "pivot": [0, 31, 3] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [7, 29, 0], + "cubes": [ + {"origin": [6, 15, -3], "size": [4, 18, 6], "uv": [0, 48]} + ] + }, + { + "name": "left_shoulder", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -0.99} + ] + }, + { + "name": "left_shoulder4", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder3", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [-45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder2", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "leftSleeve", + "parent": "leftArm", + "pivot": [7, 29, 0] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [8, 22, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-7, 29, 0], + "cubes": [ + {"origin": [-10, 15, -3], "size": [4, 18, 6], "uv": [36, 38]} + ] + }, + { + "name": "rightSleeve", + "parent": "rightArm", + "pivot": [-7, 29, 0] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-8, 22, 1], + "locators": { + "lead_hold": [-8, 22, 1] + } + }, + { + "name": "right_shoulder", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99} + ] + }, + { + "name": "right_shoulder4", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder3", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [-45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder2", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "jacket", + "parent": "body", + "pivot": [0, 31, 0] + }, + { + "name": "leg", + "parent": "root", + "pivot": [0, 19, 0] + }, + { + "name": "leg0", + "parent": "leg", + "pivot": [0, 17, 0] + }, + { + "name": "leg1", + "parent": "leg0", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-4, 9, -2], "size": [8, 4, 4], "uv": [0, 30], "inflate": -0.01} + ] + }, + { + "name": "leg2", + "parent": "leg1", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-3, 6, -2], "size": [6, 2, 4], "uv": [14, 48], "inflate": -0.01} + ] + }, + { + "name": "leg3", + "parent": "leg2", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-2, 3, -1], "size": [4, 2, 2], "uv": [28, 0], "inflate": -0.01}, + {"origin": [-1, 0, -1], "size": [2, 2, 2], "uv": [64, 0], "inflate": -0.01} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/shadow_soul_2.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/shadow_soul_2.geometry.json new file mode 100644 index 0000000..367eba6 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/shadow_soul_2.geometry.json @@ -0,0 +1,250 @@ +{ + "format_version": "1.10.0", + "geometry.escaped_soul": { + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0], + "bones": [ + { + "name": "root", + "pivot": [0, 19, 0], + "locators": { + "particles_point": [0, 19, 0] + } + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 15, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 21, 0], + "cubes": [ + {"origin": [-6, 21, -2], "size": [12, 12, 4], "uv": [36, 0]}, + {"origin": [-5, 15, -2], "size": [10, 6, 4], "uv": [52, 34], "inflate": -0.01}, + {"origin": [-5, 11, 2], "size": [10, 4, 0], "uv": [56, 56]}, + {"origin": [5, 11, -2], "size": [0, 4, 4], "uv": [0, 10]}, + {"origin": [-5, 11, -2], "size": [0, 4, 4], "uv": [0, 0]}, + {"origin": [-5, 11, -2], "size": [10, 4, 0], "uv": [56, 52]}, + {"origin": [-4, 24, -4], "size": [8, 8, 6], "uv": [48, 16], "inflate": -1}, + {"origin": [-6, 17, -2], "size": [12, 4, 0], "uv": [56, 30]}, + {"origin": [-6, 17, 2], "size": [12, 4, 0], "uv": [24, 16]}, + {"origin": [-6, 17, -2], "size": [0, 4, 4], "uv": [28, 0]}, + {"origin": [6, 17, -2], "size": [0, 4, 4], "uv": [0, 14]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 33, 0] + }, + { + "name": "maxilla", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 35, -4], "size": [10, 6, 8], "uv": [0, 0]}, + {"origin": [-5, 33, -4], "size": [10, 2, 0], "uv": [60, 62], "inflate": -0.01}, + {"origin": [-5, 33, 4], "size": [10, 2, 0], "uv": [56, 60], "inflate": -0.01}, + {"origin": [5, 33, -4], "size": [0, 2, 8], "uv": [20, 50], "inflate": -0.01}, + {"origin": [-5, 33, -4], "size": [0, 2, 8], "uv": [20, 48], "inflate": -0.01} + ] + }, + { + "name": "royal_crown", + "parent": "maxilla", + "pivot": [0, 7, 0], + "cubes": [ + {"origin": [-4, 41, 2], "size": [8, 2, 2], "uv": [56, 48]}, + {"origin": [2, 43, -4], "size": [2, 2, 2], "uv": [46, 18]}, + {"origin": [-1, 43, -4], "size": [2, 4, 2], "uv": [0, 38]}, + {"origin": [-4, 43, -4], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [2, 41, -2], "size": [2, 2, 4], "uv": [20, 64]}, + {"origin": [-4, 41, -2], "size": [2, 2, 4], "uv": [28, 38]}, + {"origin": [-4, 41, -4], "size": [8, 2, 2], "uv": [56, 44]} + ] + }, + { + "name": "maxilla0", + "parent": "head", + "pivot": [0, 33, 0], + "cubes": [ + {"origin": [-5, 33, -4], "size": [10, 2, 8], "uv": [0, 38], "inflate": 0.01}, + {"origin": [5, 31, -4], "size": [0, 2, 8], "uv": [20, 46], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [0, 2, 8], "uv": [24, 12], "inflate": -0.01}, + {"origin": [-5, 31, -4], "size": [10, 2, 0], "uv": [40, 62], "inflate": -0.01}, + {"origin": [-5, 31, 4], "size": [10, 2, 0], "uv": [20, 62], "inflate": -0.01} + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 33, 0] + }, + { + "name": "cape", + "parent": "body", + "pivot": [0, 31, 3] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [7, 29, 0], + "cubes": [ + {"origin": [6, 15, -3], "size": [4, 18, 6], "uv": [0, 48]} + ] + }, + { + "name": "left_shoulder", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -0.99} + ] + }, + { + "name": "left_shoulder4", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder3", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [-45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "left_shoulder2", + "parent": "leftArm", + "pivot": [5, 31, 0], + "rotation": [45, 0, 45], + "cubes": [ + {"origin": [3.12132, 30.53553, -4], "size": [8, 8, 8], "uv": [24, 22], "inflate": -2} + ] + }, + { + "name": "leftSleeve", + "parent": "leftArm", + "pivot": [7, 29, 0] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [8, 22, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-7, 29, 0], + "cubes": [ + {"origin": [-10, 15, -3], "size": [4, 18, 6], "uv": [36, 38]} + ] + }, + { + "name": "rightSleeve", + "parent": "rightArm", + "pivot": [-7, 29, 0] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-8, 22, 1], + "locators": { + "lead_hold": [-8, 22, 1] + } + }, + { + "name": "right_shoulder", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -0.99} + ] + }, + { + "name": "right_shoulder4", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder3", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [-45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "right_shoulder2", + "parent": "rightArm", + "pivot": [-5, 31, 0], + "rotation": [45, 0, -45], + "cubes": [ + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2}, + {"origin": [-11, 31, -4], "size": [8, 8, 8], "uv": [0, 14], "inflate": -2} + ] + }, + { + "name": "jacket", + "parent": "body", + "pivot": [0, 31, 0] + }, + { + "name": "leg", + "parent": "root", + "pivot": [0, 19, 0] + }, + { + "name": "leg0", + "parent": "leg", + "pivot": [0, 17, 0] + }, + { + "name": "leg1", + "parent": "leg0", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-4, 9, -2], "size": [8, 4, 4], "uv": [0, 30], "inflate": -0.01} + ] + }, + { + "name": "leg2", + "parent": "leg1", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-3, 6, -2], "size": [6, 2, 4], "uv": [14, 48], "inflate": -0.01} + ] + }, + { + "name": "leg3", + "parent": "leg2", + "pivot": [0, 17, 0], + "cubes": [ + {"origin": [-2, 3, -1], "size": [4, 2, 2], "uv": [28, 0], "inflate": -0.01}, + {"origin": [-1, 0, -1], "size": [2, 2, 2], "uv": [64, 0], "inflate": -0.01} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/soul_soldier.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/soul_soldier.geometry.json new file mode 100644 index 0000000..7690f93 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/soul_soldier.geometry.json @@ -0,0 +1,157 @@ +{ + "format_version": "1.10.0", + "geometry.soul_soldier": { + "texturewidth": 64, + "textureheight": 64, + "visible_bounds_width": 3, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "bones": [ + { + "name": "root", + "pivot": [0, 16, 0], + "locators": { + "particles_point": [0, 16, 0] + } + }, + { + "name": "waist", + "parent": "root", + "pivot": [0, 12, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 14, 0], + "cubes": [ + {"origin": [-4, 14, -2], "size": [8, 12, 4], "uv": [0, 28]}, + {"origin": [-4, 19, -5], "size": [8, 8, 6], "uv": [0, 14], "inflate": -2}, + {"origin": [-4, 10, -2], "size": [8, 4, 0], "uv": [44, 18]}, + {"origin": [-4, 10, 2], "size": [8, 4, 0], "uv": [44, 0]}, + {"origin": [-4, 10, -2], "size": [0, 4, 4], "uv": [22, 10]}, + {"origin": [4, 10, -2], "size": [0, 4, 4], "uv": [0, 0]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 26, 0] + }, + { + "name": "maxilla", + "parent": "head", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-4, 28, -4], "size": [8, 6, 8], "uv": [0, 0]}, + {"origin": [-4, 26, 4], "size": [8, 2, 0], "uv": [0, 44], "inflate": -0.011}, + {"origin": [-4, 26, -4], "size": [8, 2, 0], "uv": [0, 44], "inflate": -0.01}, + {"origin": [4, 26, -4], "size": [0, 2, 8], "uv": [0, 36], "inflate": -0.01}, + {"origin": [-4, 26, -4], "size": [0, 2, 8], "uv": [0, 36], "inflate": -0.01} + ] + }, + { + "name": "maxilla0", + "parent": "head", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-4, 26, -4], "size": [8, 2, 8], "uv": [20, 20], "inflate": 0.01}, + {"origin": [4, 24, -4], "size": [0, 2, 8], "uv": [22, 10], "inflate": -0.01}, + {"origin": [-4, 24, -4], "size": [0, 2, 8], "uv": [22, 10], "inflate": -0.01}, + {"origin": [-4, 24, -4], "size": [8, 2, 0], "uv": [44, 22], "inflate": -0.01}, + {"origin": [-4, 24, 4], "size": [8, 2, 0], "uv": [44, 22], "inflate": -0.01} + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 26, 0] + }, + { + "name": "cape", + "parent": "body", + "pivot": [0, 24, 3] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 14, 4], "uv": [32, 0]} + ] + }, + { + "name": "leftSleeve", + "parent": "leftArm", + "pivot": [5, 22, 0] + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [6, 15, 1] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 14, 4], "uv": [24, 30]} + ] + }, + { + "name": "rightSleeve", + "parent": "rightArm", + "pivot": [-5, 22, 0] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-6, 15, 1], + "locators": { + "lead_hold": [-6, 15, 1] + } + }, + { + "name": "jacket", + "parent": "body", + "pivot": [0, 24, 0] + }, + { + "name": "leg", + "parent": "root", + "pivot": [0, 16, 0] + }, + { + "name": "leg0", + "parent": "leg", + "pivot": [0, 14, 0], + "cubes": [ + {"origin": [-4, 10, -2], "size": [8, 2, 4], "uv": [40, 30], "inflate": -0.01} + ] + }, + { + "name": "leg1", + "parent": "leg0", + "pivot": [0, 14, 0], + "cubes": [ + {"origin": [-3, 7, -2], "size": [6, 2, 4], "uv": [40, 36], "inflate": -0.01} + ] + }, + { + "name": "leg2", + "parent": "leg1", + "pivot": [0, 14, 0], + "cubes": [ + {"origin": [-2, 3, -2], "size": [4, 2, 4], "uv": [40, 42], "inflate": -0.01} + ] + }, + { + "name": "leg3", + "parent": "leg2", + "pivot": [0, 14, 0], + "cubes": [ + {"origin": [-1, 0, -1], "size": [2, 2, 2], "uv": [0, 0], "inflate": -0.01} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/bedrock/models/entity/werewolf.geometry.json b/src/main/resources/assets/decisland/bedrock/models/entity/werewolf.geometry.json new file mode 100644 index 0000000..16e99d2 --- /dev/null +++ b/src/main/resources/assets/decisland/bedrock/models/entity/werewolf.geometry.json @@ -0,0 +1,84 @@ +{ + "format_version": "1.10.0", + "geometry.werewolf": { + "texturewidth": 64, + "textureheight": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "bones": [ + { + "name": "waist", + "pivot": [0, 12, 0] + }, + { + "name": "body", + "parent": "waist", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]}, + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]}, + {"origin": [-2, 25, -8], "size": [4, 3, 4], "uv": [24, 0]}, + {"origin": [-1, 28, -8], "size": [1, 1, 1], "uv": [0, 0]}, + {"origin": [0, 28, -8], "size": [1, 1, 1], "uv": [0, 0]}, + {"origin": [-5, 31, 1], "size": [2, 3, 1], "uv": [12, 0]}, + {"origin": [3, 31, 1], "size": [2, 3, 1], "uv": [12, 0]} + ] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-6, 15, 1] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "mirror": true, + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ] + }, + { + "name": "rightLeg", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ] + }, + { + "name": "leftLeg", + "pivot": [1.9, 12, 0], + "mirror": true, + "cubes": [ + {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ] + }, + { + "name": "bone", + "parent": "body", + "pivot": [0, 0, 0], + "rotation": [10, 0, 0], + "cubes": [ + {"origin": [-1, 12, 3], "size": [2, 2, 7], "uv": [8, 0]} + ] + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/blockstates/golden_bookshelf.json b/src/main/resources/assets/decisland/blockstates/golden_bookshelf.json new file mode 100644 index 0000000..ad108b8 --- /dev/null +++ b/src/main/resources/assets/decisland/blockstates/golden_bookshelf.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/golden_bookshelf" + } + } +} diff --git a/src/main/resources/assets/decisland/blockstates/golden_bookshelf_frame.json b/src/main/resources/assets/decisland/blockstates/golden_bookshelf_frame.json new file mode 100644 index 0000000..0a4a6b9 --- /dev/null +++ b/src/main/resources/assets/decisland/blockstates/golden_bookshelf_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/golden_bookshelf_frame" + } + } +} diff --git a/src/main/resources/assets/decisland/blockstates/magic_letter_box.json b/src/main/resources/assets/decisland/blockstates/magic_letter_box.json new file mode 100644 index 0000000..b80eea1 --- /dev/null +++ b/src/main/resources/assets/decisland/blockstates/magic_letter_box.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/magic_letter_box" + } + } +} diff --git a/src/main/resources/assets/decisland/blockstates/red_lantern.json b/src/main/resources/assets/decisland/blockstates/red_lantern.json new file mode 100644 index 0000000..0713106 --- /dev/null +++ b/src/main/resources/assets/decisland/blockstates/red_lantern.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "decisland:block/red_lantern" + } + } +} diff --git a/src/main/resources/assets/decisland/models/block/golden_bookshelf.json b/src/main/resources/assets/decisland/models/block/golden_bookshelf.json new file mode 100644 index 0000000..62d6495 --- /dev/null +++ b/src/main/resources/assets/decisland/models/block/golden_bookshelf.json @@ -0,0 +1,24 @@ +{ + "parent": "minecraft:block/block", + "textures": { + "particle": "decisland:block/golden_bookshelf_front", + "front": "decisland:block/golden_bookshelf_front", + "back": "decisland:block/golden_bookshelf_back", + "side": "decisland:block/golden_bookshelf_side", + "top": "decisland:block/golden_bookshelf_up_down" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "down": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "down"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "up"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#front", "cullface": "north"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#back", "cullface": "south"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"} + } + } + ] +} diff --git a/src/main/resources/assets/decisland/models/block/golden_bookshelf_frame.json b/src/main/resources/assets/decisland/models/block/golden_bookshelf_frame.json new file mode 100644 index 0000000..fb618b4 --- /dev/null +++ b/src/main/resources/assets/decisland/models/block/golden_bookshelf_frame.json @@ -0,0 +1,24 @@ +{ + "parent": "minecraft:block/block", + "textures": { + "particle": "decisland:block/golden_bookshelf_frame_front", + "front": "decisland:block/golden_bookshelf_frame_front", + "back": "decisland:block/golden_bookshelf_back", + "side": "decisland:block/golden_bookshelf_frame_side", + "top": "decisland:block/golden_bookshelf_up_down" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "down": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "down"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "up"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#front", "cullface": "north"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#back", "cullface": "south"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"} + } + } + ] +} diff --git a/src/main/resources/assets/decisland/models/block/magic_letter_box.json b/src/main/resources/assets/decisland/models/block/magic_letter_box.json new file mode 100644 index 0000000..93aaef7 --- /dev/null +++ b/src/main/resources/assets/decisland/models/block/magic_letter_box.json @@ -0,0 +1,23 @@ +{ + "parent": "minecraft:block/block", + "textures": { + "particle": "decisland:block/magic_letter_box_front", + "front": "decisland:block/magic_letter_box_front", + "side": "decisland:block/magic_letter_box_side", + "top": "decisland:block/magic_letter_box_top" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "down": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "down"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#top", "cullface": "up"}, + "north": {"uv": [0, 0, 16, 16], "texture": "#front", "cullface": "north"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "south"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "east"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "west"} + } + } + ] +} diff --git a/src/main/resources/assets/decisland/models/block/red_lantern.json b/src/main/resources/assets/decisland/models/block/red_lantern.json new file mode 100644 index 0000000..236037d --- /dev/null +++ b/src/main/resources/assets/decisland/models/block/red_lantern.json @@ -0,0 +1,75 @@ +{ + "parent": "minecraft:block/block", + "textures": { + "particle": "decisland:block/red_lantern", + "texture": "decisland:block/red_lantern" + }, + "elements": [ + { + "name": "bottom_plate", + "from": [5, 0, 5], + "to": [11, 1, 11], + "faces": { + "north": {"uv": [5, 15, 11, 16], "texture": "#texture"}, + "east": {"uv": [5, 15, 11, 16], "texture": "#texture"}, + "south": {"uv": [5, 15, 11, 16], "texture": "#texture"}, + "west": {"uv": [5, 15, 11, 16], "texture": "#texture"}, + "up": {"uv": [5, 15, 11, 16], "texture": "#texture"}, + "down": {"uv": [5, 15, 11, 16], "texture": "#texture"} + } + }, + { + "name": "body", + "from": [4, 1, 4], + "to": [12, 9, 12], + "faces": { + "north": {"uv": [4, 7, 12, 15], "texture": "#texture"}, + "east": {"uv": [4, 7, 12, 15], "texture": "#texture"}, + "south": {"uv": [4, 7, 12, 15], "texture": "#texture"}, + "west": {"uv": [4, 7, 12, 15], "texture": "#texture"}, + "up": {"uv": [4, 7, 12, 15], "texture": "#texture"}, + "down": {"uv": [4, 7, 12, 15], "texture": "#texture"} + } + }, + { + "name": "top_plate", + "from": [5, 9, 5], + "to": [11, 10, 11], + "faces": { + "north": {"uv": [5, 6, 11, 7], "texture": "#texture"}, + "east": {"uv": [5, 6, 11, 7], "texture": "#texture"}, + "south": {"uv": [5, 6, 11, 7], "texture": "#texture"}, + "west": {"uv": [5, 6, 11, 7], "texture": "#texture"}, + "up": {"uv": [5, 6, 11, 7], "texture": "#texture"}, + "down": {"uv": [5, 6, 11, 7], "texture": "#texture"} + } + }, + { + "name": "chain_a", + "from": [7.5, 10, 7.5], + "to": [8.5, 16, 8.5], + "faces": { + "north": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "east": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "south": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "west": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "up": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "down": {"uv": [7, 0, 9, 6], "texture": "#texture"} + } + }, + { + "name": "chain_b", + "from": [7.5, 10, 7.5], + "to": [8.5, 16, 8.5], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 10, 8]}, + "faces": { + "north": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "east": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "south": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "west": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "up": {"uv": [7, 0, 9, 6], "texture": "#texture"}, + "down": {"uv": [7, 0, 9, 6], "texture": "#texture"} + } + } + ] +} diff --git a/src/main/resources/assets/decisland/models/item/abyssal_controller_spawn_egg.json b/src/main/resources/assets/decisland/models/item/abyssal_controller_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/abyssal_controller_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/abyssal_shadow_spawn_egg.json b/src/main/resources/assets/decisland/models/item/abyssal_shadow_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/abyssal_shadow_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/angry_chicken_spawn_egg.json b/src/main/resources/assets/decisland/models/item/angry_chicken_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/angry_chicken_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/archer_spawn_egg.json b/src/main/resources/assets/decisland/models/item/archer_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/archer_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_blaze_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_blaze_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_blaze_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_bomb_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_bomb_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_bomb_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_horse_head_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_horse_head_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_horse_head_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_horse_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_horse_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_horse_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_knight_head_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_knight_head_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_knight_head_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_knight_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_knight_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_knight_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_pufferfish_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_pufferfish_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_pufferfish_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_sword_phantom_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_sword_phantom_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_sword_phantom_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ash_sword_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ash_sword_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ash_sword_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/baby_ender_dragon_spawn_egg.json b/src/main/resources/assets/decisland/models/item/baby_ender_dragon_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/baby_ender_dragon_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/bat_charger_spawn_egg.json b/src/main/resources/assets/decisland/models/item/bat_charger_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/bat_charger_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/blackstone_thorn_spawn_egg.json b/src/main/resources/assets/decisland/models/item/blackstone_thorn_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/blackstone_thorn_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/blood_zombie_spawn_egg.json b/src/main/resources/assets/decisland/models/item/blood_zombie_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/blood_zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/bomber_spawn_egg.json b/src/main/resources/assets/decisland/models/item/bomber_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/bomber_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/brown_bear_spawn_egg.json b/src/main/resources/assets/decisland/models/item/brown_bear_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/brown_bear_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/carnager_spawn_egg.json b/src/main/resources/assets/decisland/models/item/carnager_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/carnager_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/chest_monster_spawn_egg.json b/src/main/resources/assets/decisland/models/item/chest_monster_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/chest_monster_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/chester_spawn_egg.json b/src/main/resources/assets/decisland/models/item/chester_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/chester_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/clam_spawn_egg.json b/src/main/resources/assets/decisland/models/item/clam_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/clam_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/crab_spawn_egg.json b/src/main/resources/assets/decisland/models/item/crab_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/crab_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/crimson_slime_spawn_egg.json b/src/main/resources/assets/decisland/models/item/crimson_slime_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/crimson_slime_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/dark_snow_man_spawn_egg.json b/src/main/resources/assets/decisland/models/item/dark_snow_man_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/dark_snow_man_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/dark_werewolf_spawn_egg.json b/src/main/resources/assets/decisland/models/item/dark_werewolf_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/dark_werewolf_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/doctor_spawn_egg.json b/src/main/resources/assets/decisland/models/item/doctor_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/doctor_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/elf_of_ash_spawn_egg.json b/src/main/resources/assets/decisland/models/item/elf_of_ash_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/elf_of_ash_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/elf_of_chaos_spawn_egg.json b/src/main/resources/assets/decisland/models/item/elf_of_chaos_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/elf_of_chaos_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/elf_of_deep_spawn_egg.json b/src/main/resources/assets/decisland/models/item/elf_of_deep_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/elf_of_deep_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/elf_of_dust_spawn_egg.json b/src/main/resources/assets/decisland/models/item/elf_of_dust_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/elf_of_dust_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/enchant_armor_by_boss_spawn_egg.json b/src/main/resources/assets/decisland/models/item/enchant_armor_by_boss_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/enchant_armor_by_boss_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/enchant_armor_spawn_egg.json b/src/main/resources/assets/decisland/models/item/enchant_armor_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/enchant_armor_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/enchant_diamond_armor_spawn_egg.json b/src/main/resources/assets/decisland/models/item/enchant_diamond_armor_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/enchant_diamond_armor_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/enchant_illager_1_spawn_egg.json b/src/main/resources/assets/decisland/models/item/enchant_illager_1_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/enchant_illager_1_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/enchant_illager_2_spawn_egg.json b/src/main/resources/assets/decisland/models/item/enchant_illager_2_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/enchant_illager_2_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/enchant_illager_spawn_egg.json b/src/main/resources/assets/decisland/models/item/enchant_illager_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/enchant_illager_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/end_stone_golem_spawn_egg.json b/src/main/resources/assets/decisland/models/item/end_stone_golem_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/end_stone_golem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ender_snail_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ender_snail_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ender_snail_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ender_snake_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ender_snake_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ender_snake_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ender_witch_puppet_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ender_witch_puppet_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ender_witch_puppet_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ender_witch_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ender_witch_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ender_witch_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/entity_soul_1_spawn_egg.json b/src/main/resources/assets/decisland/models/item/entity_soul_1_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/entity_soul_1_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/entity_soul_spawn_egg.json b/src/main/resources/assets/decisland/models/item/entity_soul_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/entity_soul_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/escaped_soul_entity_spawn_egg.json b/src/main/resources/assets/decisland/models/item/escaped_soul_entity_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/escaped_soul_entity_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/everlasting_winter_ghast_1_spawn_egg.json b/src/main/resources/assets/decisland/models/item/everlasting_winter_ghast_1_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/everlasting_winter_ghast_1_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/everlasting_winter_ghast_spawn_egg.json b/src/main/resources/assets/decisland/models/item/everlasting_winter_ghast_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/everlasting_winter_ghast_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/everlasting_winter_shadow_spawn_egg.json b/src/main/resources/assets/decisland/models/item/everlasting_winter_shadow_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/everlasting_winter_shadow_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/evil_snow_man_spawn_egg.json b/src/main/resources/assets/decisland/models/item/evil_snow_man_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/evil_snow_man_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/fire_storm_spawn_egg.json b/src/main/resources/assets/decisland/models/item/fire_storm_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/fire_storm_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/friendly_little_soul_spawn_egg.json b/src/main/resources/assets/decisland/models/item/friendly_little_soul_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/friendly_little_soul_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/friendly_spider_spawn_egg.json b/src/main/resources/assets/decisland/models/item/friendly_spider_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/friendly_spider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/frozen_ghast_spawn_egg.json b/src/main/resources/assets/decisland/models/item/frozen_ghast_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/frozen_ghast_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/frozen_heart_sleeping_spawn_egg.json b/src/main/resources/assets/decisland/models/item/frozen_heart_sleeping_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/frozen_heart_sleeping_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/frozen_heart_spawn_egg.json b/src/main/resources/assets/decisland/models/item/frozen_heart_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/frozen_heart_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/frozen_man_spawn_egg.json b/src/main/resources/assets/decisland/models/item/frozen_man_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/frozen_man_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/frozen_shadow_spawn_egg.json b/src/main/resources/assets/decisland/models/item/frozen_shadow_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/frozen_shadow_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/frozen_spider_spawn_egg.json b/src/main/resources/assets/decisland/models/item/frozen_spider_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/frozen_spider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/gargoyle_spawn_egg.json b/src/main/resources/assets/decisland/models/item/gargoyle_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/gargoyle_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ghost_diamond_axe_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ghost_diamond_axe_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ghost_diamond_axe_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ghost_diamond_staff_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ghost_diamond_staff_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ghost_diamond_staff_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ghost_diamond_sword_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ghost_diamond_sword_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ghost_diamond_sword_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ghost_iron_axe_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ghost_iron_axe_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ghost_iron_axe_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ghost_iron_sword_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ghost_iron_sword_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ghost_iron_sword_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ghost_wooden_staff_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ghost_wooden_staff_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ghost_wooden_staff_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ghost_wooden_sword_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ghost_wooden_sword_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ghost_wooden_sword_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/gingerbread_man_by_totem_spawn_egg.json b/src/main/resources/assets/decisland/models/item/gingerbread_man_by_totem_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/gingerbread_man_by_totem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/goblin_sniper_spawn_egg.json b/src/main/resources/assets/decisland/models/item/goblin_sniper_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/goblin_sniper_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/goblin_spawn_egg.json b/src/main/resources/assets/decisland/models/item/goblin_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/goblin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/goblin_wizard_spawn_egg.json b/src/main/resources/assets/decisland/models/item/goblin_wizard_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/goblin_wizard_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/host_of_deep_spawn_egg.json b/src/main/resources/assets/decisland/models/item/host_of_deep_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/host_of_deep_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_bat_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_bat_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_bat_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_blaze_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_blaze_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_blaze_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_creeper_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_creeper_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_creeper_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_monster_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_monster_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_monster_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_spirit_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_spirit_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_spirit_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_thorn_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_thorn_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_thorn_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_wizard_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_wizard_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_wizard_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/ice_zombie_spawn_egg.json b/src/main/resources/assets/decisland/models/item/ice_zombie_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/ice_zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/illusion_zombie_spawn_egg.json b/src/main/resources/assets/decisland/models/item/illusion_zombie_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/illusion_zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/illusioner_puppet_spawn_egg.json b/src/main/resources/assets/decisland/models/item/illusioner_puppet_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/illusioner_puppet_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/illusioner_spawn_egg.json b/src/main/resources/assets/decisland/models/item/illusioner_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/illusioner_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/jungle_spider_spawn_egg.json b/src/main/resources/assets/decisland/models/item/jungle_spider_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/jungle_spider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/king_of_pillager_spawn_egg.json b/src/main/resources/assets/decisland/models/item/king_of_pillager_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/king_of_pillager_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/lava_lizard_spawn_egg.json b/src/main/resources/assets/decisland/models/item/lava_lizard_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/lava_lizard_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/life_insect_spawn_egg.json b/src/main/resources/assets/decisland/models/item/life_insect_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/life_insect_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/little_bat_spawn_egg.json b/src/main/resources/assets/decisland/models/item/little_bat_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/little_bat_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/little_soul_spawn_egg.json b/src/main/resources/assets/decisland/models/item/little_soul_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/little_soul_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/lurk_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/lurk_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/lurk_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/lurk_zombie_spawn_egg.json b/src/main/resources/assets/decisland/models/item/lurk_zombie_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/lurk_zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/mummy_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/mummy_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/mummy_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/mummy_spawn_egg.json b/src/main/resources/assets/decisland/models/item/mummy_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/mummy_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/murloc_spawn_egg.json b/src/main/resources/assets/decisland/models/item/murloc_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/murloc_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/murloc_wizard_spawn_egg.json b/src/main/resources/assets/decisland/models/item/murloc_wizard_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/murloc_wizard_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/mushroom_monster_spawn_egg.json b/src/main/resources/assets/decisland/models/item/mushroom_monster_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/mushroom_monster_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/mushroom_zombie_spawn_egg.json b/src/main/resources/assets/decisland/models/item/mushroom_zombie_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/mushroom_zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/mystical_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/mystical_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/mystical_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/nautilus_spawn_egg.json b/src/main/resources/assets/decisland/models/item/nautilus_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/nautilus_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/nether_creeper_spawn_egg.json b/src/main/resources/assets/decisland/models/item/nether_creeper_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/nether_creeper_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/nether_golem_spawn_egg.json b/src/main/resources/assets/decisland/models/item/nether_golem_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/nether_golem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/nether_phantom_spawn_egg.json b/src/main/resources/assets/decisland/models/item/nether_phantom_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/nether_phantom_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/nether_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/nether_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/nether_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/nether_skeleton_wizard_spawn_egg.json b/src/main/resources/assets/decisland/models/item/nether_skeleton_wizard_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/nether_skeleton_wizard_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/obsidian_golem_spawn_egg.json b/src/main/resources/assets/decisland/models/item/obsidian_golem_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/obsidian_golem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/pillager_by_boss_spawn_egg.json b/src/main/resources/assets/decisland/models/item/pillager_by_boss_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/pillager_by_boss_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/pirate_spawn_egg.json b/src/main/resources/assets/decisland/models/item/pirate_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/pirate_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/player_ghost_spawn_egg.json b/src/main/resources/assets/decisland/models/item/player_ghost_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/player_ghost_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/polar_wolf_spawn_egg.json b/src/main/resources/assets/decisland/models/item/polar_wolf_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/polar_wolf_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/predators_spawn_egg.json b/src/main/resources/assets/decisland/models/item/predators_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/predators_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/pumpkin_slime_spawn_egg.json b/src/main/resources/assets/decisland/models/item/pumpkin_slime_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/pumpkin_slime_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/radiate_creeper_spawn_egg.json b/src/main/resources/assets/decisland/models/item/radiate_creeper_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/radiate_creeper_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/radiate_enderman_spawn_egg.json b/src/main/resources/assets/decisland/models/item/radiate_enderman_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/radiate_enderman_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/radiate_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/radiate_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/radiate_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/radiate_spider_spawn_egg.json b/src/main/resources/assets/decisland/models/item/radiate_spider_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/radiate_spider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/real_soul_spawn_egg.json b/src/main/resources/assets/decisland/models/item/real_soul_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/real_soul_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/rumorer_spawn_egg.json b/src/main/resources/assets/decisland/models/item/rumorer_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/rumorer_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/sardine_spawn_egg.json b/src/main/resources/assets/decisland/models/item/sardine_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/sardine_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/saucer_spawn_egg.json b/src/main/resources/assets/decisland/models/item/saucer_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/saucer_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/sea_urchin_spawn_egg.json b/src/main/resources/assets/decisland/models/item/sea_urchin_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/sea_urchin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_archer_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_archer_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_archer_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_creeper_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_creeper_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_creeper_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_of_deep_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_of_deep_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_of_deep_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_of_sea_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_of_sea_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_of_sea_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_skeleton_puppet_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_skeleton_puppet_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_skeleton_puppet_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_soul_1_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_soul_1_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_soul_1_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_soul_2_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_soul_2_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_soul_2_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_zombie_puppet_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_zombie_puppet_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_zombie_puppet_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/shadow_zombie_spawn_egg.json b/src/main/resources/assets/decisland/models/item/shadow_zombie_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/shadow_zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/simple_glider_spawn_egg.json b/src/main/resources/assets/decisland/models/item/simple_glider_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/simple_glider_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/skeleton_assassin_spawn_egg.json b/src/main/resources/assets/decisland/models/item/skeleton_assassin_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/skeleton_assassin_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/skeleton_knight_commander_spawn_egg.json b/src/main/resources/assets/decisland/models/item/skeleton_knight_commander_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/skeleton_knight_commander_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/skeleton_knight_spawn_egg.json b/src/main/resources/assets/decisland/models/item/skeleton_knight_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/skeleton_knight_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/skeleton_warrior_spawn_egg.json b/src/main/resources/assets/decisland/models/item/skeleton_warrior_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/skeleton_warrior_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/skeleton_wizard_spawn_egg.json b/src/main/resources/assets/decisland/models/item/skeleton_wizard_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/skeleton_wizard_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/soldier_spawn_egg.json b/src/main/resources/assets/decisland/models/item/soldier_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/soldier_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/son_of_chaos_spawn_egg.json b/src/main/resources/assets/decisland/models/item/son_of_chaos_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/son_of_chaos_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/son_of_nature_spawn_egg.json b/src/main/resources/assets/decisland/models/item/son_of_nature_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/son_of_nature_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/soul_blaze_spawn_egg.json b/src/main/resources/assets/decisland/models/item/soul_blaze_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/soul_blaze_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/soul_insect_spawn_egg.json b/src/main/resources/assets/decisland/models/item/soul_insect_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/soul_insect_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/soul_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/soul_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/soul_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/soul_soldier_spawn_egg.json b/src/main/resources/assets/decisland/models/item/soul_soldier_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/soul_soldier_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/soul_spawn_egg.json b/src/main/resources/assets/decisland/models/item/soul_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/soul_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/soul_zombie_spawn_egg.json b/src/main/resources/assets/decisland/models/item/soul_zombie_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/soul_zombie_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/star_spawn_egg.json b/src/main/resources/assets/decisland/models/item/star_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/star_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/stone_golem_spawn_egg.json b/src/main/resources/assets/decisland/models/item/stone_golem_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/stone_golem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/swamp_drowned_spawn_egg.json b/src/main/resources/assets/decisland/models/item/swamp_drowned_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/swamp_drowned_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/swamp_golem_spawn_egg.json b/src/main/resources/assets/decisland/models/item/swamp_golem_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/swamp_golem_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/tnt_creeper_spawn_egg.json b/src/main/resources/assets/decisland/models/item/tnt_creeper_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/tnt_creeper_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/tnt_snow_man_spawn_egg.json b/src/main/resources/assets/decisland/models/item/tnt_snow_man_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/tnt_snow_man_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/vampire_bat_by_boss_spawn_egg.json b/src/main/resources/assets/decisland/models/item/vampire_bat_by_boss_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/vampire_bat_by_boss_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/vampire_bat_spawn_egg.json b/src/main/resources/assets/decisland/models/item/vampire_bat_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/vampire_bat_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/vengeful_ghost_spawn_egg.json b/src/main/resources/assets/decisland/models/item/vengeful_ghost_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/vengeful_ghost_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/vindicator_by_boss_spawn_egg.json b/src/main/resources/assets/decisland/models/item/vindicator_by_boss_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/vindicator_by_boss_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/warped_skeleton_spawn_egg.json b/src/main/resources/assets/decisland/models/item/warped_skeleton_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/warped_skeleton_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/watcher_spawn_egg.json b/src/main/resources/assets/decisland/models/item/watcher_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/watcher_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/werewolf_spawn_egg.json b/src/main/resources/assets/decisland/models/item/werewolf_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/werewolf_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/zombie_fish_spawn_egg.json b/src/main/resources/assets/decisland/models/item/zombie_fish_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/zombie_fish_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/models/item/zombie_summoner_spawn_egg.json b/src/main/resources/assets/decisland/models/item/zombie_summoner_spawn_egg.json new file mode 100644 index 0000000..ddd1559 --- /dev/null +++ b/src/main/resources/assets/decisland/models/item/zombie_summoner_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/src/main/resources/assets/decisland/particles/bedrock_manifest.txt b/src/main/resources/assets/decisland/particles/bedrock_manifest.txt index 8e1fefd..1480ab2 100644 --- a/src/main/resources/assets/decisland/particles/bedrock_manifest.txt +++ b/src/main/resources/assets/decisland/particles/bedrock_manifest.txt @@ -83,3 +83,5 @@ ender_spurt.particle.json ender_bomb.particle.json bubble_spurt_middle.particle.json wither_cloud_wake.particle.json + +leaves_essence.particle.json diff --git a/src/main/resources/assets/decisland/particles/leaves_essence.particle.json b/src/main/resources/assets/decisland/particles/leaves_essence.particle.json new file mode 100644 index 0000000..04ebc09 --- /dev/null +++ b/src/main/resources/assets/decisland/particles/leaves_essence.particle.json @@ -0,0 +1,46 @@ +{ + "format_version": "1.10.0", + "particle_effect": { + "description": { + "identifier": "dec:leaves_essence_particle", + "basic_render_parameters": { + "material": "particles_alpha", + "texture": "textures/particle/leaves_essence" + } + }, + "components": { + "minecraft:emitter_rate_instant": { + "num_particles": 1 + }, + "minecraft:emitter_lifetime_expression": { + "activation_expression": 1 + }, + "minecraft:emitter_shape_sphere": { + "radius": 0.01, + "direction": "outwards" + }, + "minecraft:particle_lifetime_expression": { + "max_lifetime": 3 + }, + "minecraft:particle_initial_speed": 0, + "minecraft:particle_motion_dynamic": {}, + "minecraft:particle_appearance_billboard": { + "size": ["0.14 - variable.particle_age*0.04", "0.14 - variable.particle_age*0.04"], + "facing_camera_mode": "lookat_xyz", + "uv": { + "texture_width": 8, + "texture_height": 16, + "flipbook": { + "base_UV": [0, 0], + "size_UV": [8, 8], + "step_UV": [0, 8], + "frames_per_second": 3, + "max_frame": 2, + "loop": true + } + } + }, + "minecraft:particle_appearance_lighting": {} + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/decisland/textures/block/abyssal_summoner.png b/src/main/resources/assets/decisland/textures/block/abyssal_summoner.png new file mode 100644 index 0000000..d40dcb3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/abyssal_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/abyssal_summoner_activated.png b/src/main/resources/assets/decisland/textures/block/abyssal_summoner_activated.png new file mode 100644 index 0000000..6c7d080 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/abyssal_summoner_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/abyssal_summoner_locked.png b/src/main/resources/assets/decisland/textures/block/abyssal_summoner_locked.png new file mode 100644 index 0000000..0dd4d06 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/abyssal_summoner_locked.png differ diff --git a/src/main/resources/assets/decisland/textures/block/amethyst_block_unused.png b/src/main/resources/assets/decisland/textures/block/amethyst_block_unused.png new file mode 100644 index 0000000..5126703 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/amethyst_block_unused.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ash_cage.png b/src/main/resources/assets/decisland/textures/block/ash_cage.png new file mode 100644 index 0000000..4063491 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ash_cage.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ash_summoner.png b/src/main/resources/assets/decisland/textures/block/ash_summoner.png new file mode 100644 index 0000000..3cce5ff Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ash_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ash_summoner_activated.png b/src/main/resources/assets/decisland/textures/block/ash_summoner_activated.png new file mode 100644 index 0000000..6ecf4b5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ash_summoner_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ash_summoner_locked.png b/src/main/resources/assets/decisland/textures/block/ash_summoner_locked.png new file mode 100644 index 0000000..9145f41 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ash_summoner_locked.png differ diff --git a/src/main/resources/assets/decisland/textures/block/baby_blue_eyes_flower_crop.png b/src/main/resources/assets/decisland/textures/block/baby_blue_eyes_flower_crop.png new file mode 100644 index 0000000..ea1a169 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/baby_blue_eyes_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/balloon_flower_crop.png b/src/main/resources/assets/decisland/textures/block/balloon_flower_crop.png new file mode 100644 index 0000000..89ba274 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/balloon_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bat_summoner.png b/src/main/resources/assets/decisland/textures/block/bat_summoner.png new file mode 100644 index 0000000..9c44cb4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bat_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bat_summoner_activated.png b/src/main/resources/assets/decisland/textures/block/bat_summoner_activated.png new file mode 100644 index 0000000..4d9bf4b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bat_summoner_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_0.png b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_0.png new file mode 100644 index 0000000..e223865 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_1.png b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_1.png new file mode 100644 index 0000000..829468e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_2.png b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_2.png new file mode 100644 index 0000000..ccf907d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_3.png b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_3.png new file mode 100644 index 0000000..0632c06 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_4.png b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_4.png new file mode 100644 index 0000000..a91f8dd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_4.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_5.png b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_5.png new file mode 100644 index 0000000..a7996c8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_5.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_6.png b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_6.png new file mode 100644 index 0000000..2311b2a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bizarre_chilli_crop_stage_6.png differ diff --git a/src/main/resources/assets/decisland/textures/block/bracken_crop.png b/src/main/resources/assets/decisland/textures/block/bracken_crop.png new file mode 100644 index 0000000..9b39280 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/bracken_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/breeze_flower_crop.png b/src/main/resources/assets/decisland/textures/block/breeze_flower_crop.png new file mode 100644 index 0000000..094cfdf Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/breeze_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/broken_dirt.png b/src/main/resources/assets/decisland/textures/block/broken_dirt.png new file mode 100644 index 0000000..f1bb0f8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/broken_dirt.png differ diff --git a/src/main/resources/assets/decisland/textures/block/butter_flower_crop.png b/src/main/resources/assets/decisland/textures/block/butter_flower_crop.png new file mode 100644 index 0000000..4c52abd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/butter_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/butterfly_pea_crop.png b/src/main/resources/assets/decisland/textures/block/butterfly_pea_crop.png new file mode 100644 index 0000000..80e9f8c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/butterfly_pea_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/cave_crate.png b/src/main/resources/assets/decisland/textures/block/cave_crate.png new file mode 100644 index 0000000..89c965a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/cave_crate.png differ diff --git a/src/main/resources/assets/decisland/textures/block/cave_crate_locked.png b/src/main/resources/assets/decisland/textures/block/cave_crate_locked.png new file mode 100644 index 0000000..b3bd530 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/cave_crate_locked.png differ diff --git a/src/main/resources/assets/decisland/textures/block/christmas_gift_block.png b/src/main/resources/assets/decisland/textures/block/christmas_gift_block.png new file mode 100644 index 0000000..da61b78 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/christmas_gift_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/cloud_flower_crop.png b/src/main/resources/assets/decisland/textures/block/cloud_flower_crop.png new file mode 100644 index 0000000..78c2527 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/cloud_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/compressed_ice.png b/src/main/resources/assets/decisland/textures/block/compressed_ice.png index c5132a1..6442423 100644 Binary files a/src/main/resources/assets/decisland/textures/block/compressed_ice.png and b/src/main/resources/assets/decisland/textures/block/compressed_ice.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_0_0.png b/src/main/resources/assets/decisland/textures/block/corn_crop_0_0.png new file mode 100644 index 0000000..da8af61 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_0_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_0_1.png b/src/main/resources/assets/decisland/textures/block/corn_crop_0_1.png new file mode 100644 index 0000000..ab54229 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_0_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_0_2.png b/src/main/resources/assets/decisland/textures/block/corn_crop_0_2.png new file mode 100644 index 0000000..b010ec6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_0_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_0_3.png b/src/main/resources/assets/decisland/textures/block/corn_crop_0_3.png new file mode 100644 index 0000000..09d25de Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_0_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_0_4.png b/src/main/resources/assets/decisland/textures/block/corn_crop_0_4.png new file mode 100644 index 0000000..79a2dee Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_0_4.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_1_0.png b/src/main/resources/assets/decisland/textures/block/corn_crop_1_0.png new file mode 100644 index 0000000..be61038 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_1_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_1_1.png b/src/main/resources/assets/decisland/textures/block/corn_crop_1_1.png new file mode 100644 index 0000000..a2b0f76 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_1_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_1_2.png b/src/main/resources/assets/decisland/textures/block/corn_crop_1_2.png new file mode 100644 index 0000000..afbbbda Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_1_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/corn_crop_1_3.png b/src/main/resources/assets/decisland/textures/block/corn_crop_1_3.png new file mode 100644 index 0000000..325bf47 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/corn_crop_1_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/crate.png b/src/main/resources/assets/decisland/textures/block/crate.png new file mode 100644 index 0000000..7ec06f6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/crate.png differ diff --git a/src/main/resources/assets/decisland/textures/block/crate_locked.png b/src/main/resources/assets/decisland/textures/block/crate_locked.png new file mode 100644 index 0000000..11f3a8f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/crate_locked.png differ diff --git a/src/main/resources/assets/decisland/textures/block/crinum_crop.png b/src/main/resources/assets/decisland/textures/block/crinum_crop.png new file mode 100644 index 0000000..b274a89 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/crinum_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/dandelion_crop.png b/src/main/resources/assets/decisland/textures/block/dandelion_crop.png new file mode 100644 index 0000000..a53fb41 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/dandelion_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/deep_dandelion_crop.png b/src/main/resources/assets/decisland/textures/block/deep_dandelion_crop.png new file mode 100644 index 0000000..a809156 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/deep_dandelion_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/deep_summoner.png b/src/main/resources/assets/decisland/textures/block/deep_summoner.png new file mode 100644 index 0000000..dd644f4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/deep_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/deep_summoner_activated.png b/src/main/resources/assets/decisland/textures/block/deep_summoner_activated.png new file mode 100644 index 0000000..b887df7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/deep_summoner_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/depart_grass_crop.png b/src/main/resources/assets/decisland/textures/block/depart_grass_crop.png new file mode 100644 index 0000000..9348162 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/depart_grass_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/desert_fan_flower_crop.png b/src/main/resources/assets/decisland/textures/block/desert_fan_flower_crop.png new file mode 100644 index 0000000..ec0a113 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/desert_fan_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/dirt_ghost_block.png b/src/main/resources/assets/decisland/textures/block/dirt_ghost_block.png new file mode 100644 index 0000000..6a6b8ea Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/dirt_ghost_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/empty.png b/src/main/resources/assets/decisland/textures/block/empty.png new file mode 100644 index 0000000..be6bd78 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/empty.png differ diff --git a/src/main/resources/assets/decisland/textures/block/enchanted_summoner_activated_side.png b/src/main/resources/assets/decisland/textures/block/enchanted_summoner_activated_side.png new file mode 100644 index 0000000..97b2b36 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/enchanted_summoner_activated_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/enchanted_summoner_side.png b/src/main/resources/assets/decisland/textures/block/enchanted_summoner_side.png new file mode 100644 index 0000000..6528572 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/enchanted_summoner_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/enchanted_summoner_up.png b/src/main/resources/assets/decisland/textures/block/enchanted_summoner_up.png new file mode 100644 index 0000000..b0fd0d9 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/enchanted_summoner_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/end_altar_down.png b/src/main/resources/assets/decisland/textures/block/end_altar_down.png new file mode 100644 index 0000000..1e40ac4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/end_altar_down.png differ diff --git a/src/main/resources/assets/decisland/textures/block/end_altar_side.png b/src/main/resources/assets/decisland/textures/block/end_altar_side.png new file mode 100644 index 0000000..9b0d742 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/end_altar_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/end_altar_up.png b/src/main/resources/assets/decisland/textures/block/end_altar_up.png new file mode 100644 index 0000000..c7b4d06 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/end_altar_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner.png b/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner.png new file mode 100644 index 0000000..3e9d5b0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner_activated.png b/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner_activated.png new file mode 100644 index 0000000..e5abce7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner_locked.png b/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner_locked.png new file mode 100644 index 0000000..b4c1990 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/everlasting_winter_summoner_locked.png differ diff --git a/src/main/resources/assets/decisland/textures/block/experience_flower_stage_0.png b/src/main/resources/assets/decisland/textures/block/experience_flower_stage_0.png new file mode 100644 index 0000000..1422fce Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/experience_flower_stage_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/experience_flower_stage_1.png b/src/main/resources/assets/decisland/textures/block/experience_flower_stage_1.png new file mode 100644 index 0000000..9d52c9a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/experience_flower_stage_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/experience_flower_stage_2.png b/src/main/resources/assets/decisland/textures/block/experience_flower_stage_2.png new file mode 100644 index 0000000..d37aa40 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/experience_flower_stage_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/eye_of_nature_log.png b/src/main/resources/assets/decisland/textures/block/eye_of_nature_log.png new file mode 100644 index 0000000..ac837c5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/eye_of_nature_log.png differ diff --git a/src/main/resources/assets/decisland/textures/block/fan_flower_crop.png b/src/main/resources/assets/decisland/textures/block/fan_flower_crop.png new file mode 100644 index 0000000..08267ee Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/fan_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flesh_block.png b/src/main/resources/assets/decisland/textures/block/flesh_block.png new file mode 100644 index 0000000..3b8df91 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flesh_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flowing_block_down.png b/src/main/resources/assets/decisland/textures/block/flowing_block_down.png new file mode 100644 index 0000000..a671adf Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flowing_block_down.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flowing_block_side_0.png b/src/main/resources/assets/decisland/textures/block/flowing_block_side_0.png new file mode 100644 index 0000000..8c7abe3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flowing_block_side_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flowing_block_side_1.png b/src/main/resources/assets/decisland/textures/block/flowing_block_side_1.png new file mode 100644 index 0000000..164d28f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flowing_block_side_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flowing_block_side_2.png b/src/main/resources/assets/decisland/textures/block/flowing_block_side_2.png new file mode 100644 index 0000000..86fb638 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flowing_block_side_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flowing_block_side_3.png b/src/main/resources/assets/decisland/textures/block/flowing_block_side_3.png new file mode 100644 index 0000000..c891243 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flowing_block_side_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flowing_block_side_4.png b/src/main/resources/assets/decisland/textures/block/flowing_block_side_4.png new file mode 100644 index 0000000..149818a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flowing_block_side_4.png differ diff --git a/src/main/resources/assets/decisland/textures/block/flowing_block_up.png b/src/main/resources/assets/decisland/textures/block/flowing_block_up.png new file mode 100644 index 0000000..e2c5c1e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/flowing_block_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/forest_summoner.png b/src/main/resources/assets/decisland/textures/block/forest_summoner.png new file mode 100644 index 0000000..2741e72 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/forest_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/forest_summoner_activated.png b/src/main/resources/assets/decisland/textures/block/forest_summoner_activated.png new file mode 100644 index 0000000..938b5e7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/forest_summoner_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/fritillary_crop_0.png b/src/main/resources/assets/decisland/textures/block/fritillary_crop_0.png new file mode 100644 index 0000000..3b06136 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/fritillary_crop_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/fritillary_crop_1.png b/src/main/resources/assets/decisland/textures/block/fritillary_crop_1.png new file mode 100644 index 0000000..9ffff8b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/fritillary_crop_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/fritillary_crop_2.png b/src/main/resources/assets/decisland/textures/block/fritillary_crop_2.png new file mode 100644 index 0000000..451c820 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/fritillary_crop_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/fritillary_crop_3.png b/src/main/resources/assets/decisland/textures/block/fritillary_crop_3.png new file mode 100644 index 0000000..8597d6d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/fritillary_crop_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/fritillary_crop_4.png b/src/main/resources/assets/decisland/textures/block/fritillary_crop_4.png new file mode 100644 index 0000000..0b398b8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/fritillary_crop_4.png differ diff --git a/src/main/resources/assets/decisland/textures/block/frozen_cage.png b/src/main/resources/assets/decisland/textures/block/frozen_cage.png new file mode 100644 index 0000000..8c98a55 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/frozen_cage.png differ diff --git a/src/main/resources/assets/decisland/textures/block/frozen_crate.png b/src/main/resources/assets/decisland/textures/block/frozen_crate.png new file mode 100644 index 0000000..e35d74a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/frozen_crate.png differ diff --git a/src/main/resources/assets/decisland/textures/block/frozen_crate_locked.png b/src/main/resources/assets/decisland/textures/block/frozen_crate_locked.png new file mode 100644 index 0000000..065d728 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/frozen_crate_locked.png differ diff --git a/src/main/resources/assets/decisland/textures/block/frozen_crate_up.png b/src/main/resources/assets/decisland/textures/block/frozen_crate_up.png new file mode 100644 index 0000000..f2cf654 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/frozen_crate_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/frozen_mirror_flower_crop.png b/src/main/resources/assets/decisland/textures/block/frozen_mirror_flower_crop.png new file mode 100644 index 0000000..0c309ac Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/frozen_mirror_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/fuse.png b/src/main/resources/assets/decisland/textures/block/fuse.png new file mode 100644 index 0000000..488dd4b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/fuse.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ghost_ice.png b/src/main/resources/assets/decisland/textures/block/ghost_ice.png new file mode 100644 index 0000000..21ab471 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ghost_ice.png differ diff --git a/src/main/resources/assets/decisland/textures/block/gold_flower_crop.png b/src/main/resources/assets/decisland/textures/block/gold_flower_crop.png new file mode 100644 index 0000000..5682120 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/gold_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_bookshelf_back.png b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_back.png new file mode 100644 index 0000000..a481917 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_back.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_bookshelf_frame_front.png b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_frame_front.png new file mode 100644 index 0000000..377e19e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_frame_front.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_bookshelf_frame_side.png b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_frame_side.png new file mode 100644 index 0000000..ade76ec Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_frame_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_bookshelf_front.png b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_front.png new file mode 100644 index 0000000..c51d3d8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_front.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_bookshelf_side.png b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_side.png new file mode 100644 index 0000000..72caf25 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_bookshelf_up_down.png b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_up_down.png new file mode 100644 index 0000000..c0106c9 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_bookshelf_up_down.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_chain.png b/src/main/resources/assets/decisland/textures/block/golden_chain.png new file mode 100644 index 0000000..9ccbc01 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_chain.png differ diff --git a/src/main/resources/assets/decisland/textures/block/golden_fence_block.png b/src/main/resources/assets/decisland/textures/block/golden_fence_block.png new file mode 100644 index 0000000..170b1dd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/golden_fence_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/grape_crop_0.png b/src/main/resources/assets/decisland/textures/block/grape_crop_0.png new file mode 100644 index 0000000..7ff4b9f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/grape_crop_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/grape_crop_1.png b/src/main/resources/assets/decisland/textures/block/grape_crop_1.png new file mode 100644 index 0000000..30ea9a4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/grape_crop_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/hammer_flower_crop.png b/src/main/resources/assets/decisland/textures/block/hammer_flower_crop.png new file mode 100644 index 0000000..ceb4320 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/hammer_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_0.png b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_0.png new file mode 100644 index 0000000..50e5ab0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_1.png b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_1.png new file mode 100644 index 0000000..8c824ba Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_2.png b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_2.png new file mode 100644 index 0000000..b0c1c44 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_3.png b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_3.png new file mode 100644 index 0000000..f93e953 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/houttuynia_crop_stage_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ice_bookshelf_side.png b/src/main/resources/assets/decisland/textures/block/ice_bookshelf_side.png new file mode 100644 index 0000000..824d53c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ice_bookshelf_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ice_rope_block_0.png b/src/main/resources/assets/decisland/textures/block/ice_rope_block_0.png new file mode 100644 index 0000000..c2fc147 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ice_rope_block_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ice_rope_block_1.png b/src/main/resources/assets/decisland/textures/block/ice_rope_block_1.png new file mode 100644 index 0000000..c46e569 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ice_rope_block_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/ice_rope_block_2.png b/src/main/resources/assets/decisland/textures/block/ice_rope_block_2.png new file mode 100644 index 0000000..d17ff91 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/ice_rope_block_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/item_picker_down.png b/src/main/resources/assets/decisland/textures/block/item_picker_down.png new file mode 100644 index 0000000..9aa574c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/item_picker_down.png differ diff --git a/src/main/resources/assets/decisland/textures/block/item_picker_side.png b/src/main/resources/assets/decisland/textures/block/item_picker_side.png new file mode 100644 index 0000000..bf8ab5f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/item_picker_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/item_picker_up.png b/src/main/resources/assets/decisland/textures/block/item_picker_up.png new file mode 100644 index 0000000..5fdc787 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/item_picker_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lace_block_black_side.png b/src/main/resources/assets/decisland/textures/block/lace_block_black_side.png new file mode 100644 index 0000000..d35ea34 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lace_block_black_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lace_block_black_up.png b/src/main/resources/assets/decisland/textures/block/lace_block_black_up.png new file mode 100644 index 0000000..1daf2cc Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lace_block_black_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lace_block_light_red_side.png b/src/main/resources/assets/decisland/textures/block/lace_block_light_red_side.png new file mode 100644 index 0000000..1229c6b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lace_block_light_red_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lace_block_light_red_up.png b/src/main/resources/assets/decisland/textures/block/lace_block_light_red_up.png new file mode 100644 index 0000000..dd3cd1e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lace_block_light_red_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lamp_flower_crop.png b/src/main/resources/assets/decisland/textures/block/lamp_flower_crop.png new file mode 100644 index 0000000..d3463a5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lamp_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lampshade.png b/src/main/resources/assets/decisland/textures/block/lampshade.png new file mode 100644 index 0000000..164b35e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lampshade.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lava_flower_crop_0.png b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_0.png new file mode 100644 index 0000000..d7ed350 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lava_flower_crop_1.png b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_1.png new file mode 100644 index 0000000..2398bff Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lava_flower_crop_2.png b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_2.png new file mode 100644 index 0000000..b6c89dd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lava_flower_crop_3.png b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_3.png new file mode 100644 index 0000000..517049c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lava_flower_crop_4.png b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_4.png new file mode 100644 index 0000000..3562e00 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lava_flower_crop_4.png differ diff --git a/src/main/resources/assets/decisland/textures/block/leaves_flower_crop.png b/src/main/resources/assets/decisland/textures/block/leaves_flower_crop.png new file mode 100644 index 0000000..35597dd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/leaves_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/leek_stage_0.png b/src/main/resources/assets/decisland/textures/block/leek_stage_0.png new file mode 100644 index 0000000..6cb5894 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/leek_stage_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/leek_stage_1.png b/src/main/resources/assets/decisland/textures/block/leek_stage_1.png new file mode 100644 index 0000000..325a740 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/leek_stage_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/leek_stage_2.png b/src/main/resources/assets/decisland/textures/block/leek_stage_2.png new file mode 100644 index 0000000..dbbf1ae Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/leek_stage_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lightning_summoner.png b/src/main/resources/assets/decisland/textures/block/lightning_summoner.png new file mode 100644 index 0000000..96a231f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lightning_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_block.png b/src/main/resources/assets/decisland/textures/block/lurk_block.png new file mode 100644 index 0000000..a8c9fa8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_bud_crop.png b/src/main/resources/assets/decisland/textures/block/lurk_bud_crop.png new file mode 100644 index 0000000..0e7edf3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_bud_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_end_stone_side.png b/src/main/resources/assets/decisland/textures/block/lurk_end_stone_side.png new file mode 100644 index 0000000..a8873e3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_end_stone_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_end_stone_up.png b/src/main/resources/assets/decisland/textures/block/lurk_end_stone_up.png new file mode 100644 index 0000000..48aef4c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_end_stone_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_fruit_crop.png b/src/main/resources/assets/decisland/textures/block/lurk_fruit_crop.png new file mode 100644 index 0000000..c402515 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_fruit_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_log_up.png b/src/main/resources/assets/decisland/textures/block/lurk_log_up.png new file mode 100644 index 0000000..db8baf1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_log_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_mushroom_lit.png b/src/main/resources/assets/decisland/textures/block/lurk_mushroom_lit.png new file mode 100644 index 0000000..eb51a84 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_mushroom_lit.png differ diff --git a/src/main/resources/assets/decisland/textures/block/lurk_orchid_crop.png b/src/main/resources/assets/decisland/textures/block/lurk_orchid_crop.png new file mode 100644 index 0000000..1c9c203 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/lurk_orchid_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/magic_letter_box_front.png b/src/main/resources/assets/decisland/textures/block/magic_letter_box_front.png new file mode 100644 index 0000000..92df03f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/magic_letter_box_front.png differ diff --git a/src/main/resources/assets/decisland/textures/block/magic_letter_box_front_with_magic_scroll_blue.png b/src/main/resources/assets/decisland/textures/block/magic_letter_box_front_with_magic_scroll_blue.png new file mode 100644 index 0000000..11b0f71 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/magic_letter_box_front_with_magic_scroll_blue.png differ diff --git a/src/main/resources/assets/decisland/textures/block/magic_letter_box_side.png b/src/main/resources/assets/decisland/textures/block/magic_letter_box_side.png new file mode 100644 index 0000000..91dd79e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/magic_letter_box_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/magic_letter_box_top.png b/src/main/resources/assets/decisland/textures/block/magic_letter_box_top.png new file mode 100644 index 0000000..567d5eb Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/magic_letter_box_top.png differ diff --git a/src/main/resources/assets/decisland/textures/block/maple_flower_crop.png b/src/main/resources/assets/decisland/textures/block/maple_flower_crop.png new file mode 100644 index 0000000..e03d639 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/maple_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mine.png b/src/main/resources/assets/decisland/textures/block/mine.png new file mode 100644 index 0000000..39211f1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mine.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mine_top.png b/src/main/resources/assets/decisland/textures/block/mine_top.png new file mode 100644 index 0000000..50fb4e8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mine_top.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mining_machine_down.png b/src/main/resources/assets/decisland/textures/block/mining_machine_down.png new file mode 100644 index 0000000..6db237b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mining_machine_down.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mining_machine_side.png b/src/main/resources/assets/decisland/textures/block/mining_machine_side.png new file mode 100644 index 0000000..57452b7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mining_machine_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mining_machine_up.png b/src/main/resources/assets/decisland/textures/block/mining_machine_up.png new file mode 100644 index 0000000..9d93853 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mining_machine_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mock_strawberry_crop.png b/src/main/resources/assets/decisland/textures/block/mock_strawberry_crop.png new file mode 100644 index 0000000..cac1d22 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mock_strawberry_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/monitor.png b/src/main/resources/assets/decisland/textures/block/monitor.png new file mode 100644 index 0000000..f3f135d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/monitor.png differ diff --git a/src/main/resources/assets/decisland/textures/block/monitor_activated.png b/src/main/resources/assets/decisland/textures/block/monitor_activated.png new file mode 100644 index 0000000..b0e00ec Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/monitor_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mooli_crop_0.png b/src/main/resources/assets/decisland/textures/block/mooli_crop_0.png new file mode 100644 index 0000000..0529579 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mooli_crop_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mooli_crop_1.png b/src/main/resources/assets/decisland/textures/block/mooli_crop_1.png new file mode 100644 index 0000000..6dfb003 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mooli_crop_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mooli_crop_2.png b/src/main/resources/assets/decisland/textures/block/mooli_crop_2.png new file mode 100644 index 0000000..4bf8bb3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mooli_crop_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mooli_crop_3.png b/src/main/resources/assets/decisland/textures/block/mooli_crop_3.png new file mode 100644 index 0000000..36e847c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mooli_crop_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/mouth_flower_crop.png b/src/main/resources/assets/decisland/textures/block/mouth_flower_crop.png new file mode 100644 index 0000000..451242d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/mouth_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/nether_dandelion_crop.png b/src/main/resources/assets/decisland/textures/block/nether_dandelion_crop.png new file mode 100644 index 0000000..62b76aa Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/nether_dandelion_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/nether_stick_flower_crop.png b/src/main/resources/assets/decisland/textures/block/nether_stick_flower_crop.png new file mode 100644 index 0000000..f54ee5c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/nether_stick_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/nuke_side.png b/src/main/resources/assets/decisland/textures/block/nuke_side.png new file mode 100644 index 0000000..d9e329f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/nuke_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/patterned_vase_red_block.png b/src/main/resources/assets/decisland/textures/block/patterned_vase_red_block.png new file mode 100644 index 0000000..5d34479 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/patterned_vase_red_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/pink_dandelion_crop.png b/src/main/resources/assets/decisland/textures/block/pink_dandelion_crop.png new file mode 100644 index 0000000..014624c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/pink_dandelion_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/pink_fan_flower_crop.png b/src/main/resources/assets/decisland/textures/block/pink_fan_flower_crop.png new file mode 100644 index 0000000..95ddfc0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/pink_fan_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_activated_up.png b/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_activated_up.png new file mode 100644 index 0000000..e957dd1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_activated_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_side.png b/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_side.png new file mode 100644 index 0000000..9c6f437 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_up.png b/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_up.png new file mode 100644 index 0000000..5a39841 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/plain_tower_summoner_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/purpur_summoner_side.png b/src/main/resources/assets/decisland/textures/block/purpur_summoner_side.png new file mode 100644 index 0000000..68081dd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/purpur_summoner_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/purpur_summoner_up.png b/src/main/resources/assets/decisland/textures/block/purpur_summoner_up.png new file mode 100644 index 0000000..e834823 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/purpur_summoner_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/radiate_dirt.png b/src/main/resources/assets/decisland/textures/block/radiate_dirt.png new file mode 100644 index 0000000..15f8b21 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/radiate_dirt.png differ diff --git a/src/main/resources/assets/decisland/textures/block/radiate_stone.png b/src/main/resources/assets/decisland/textures/block/radiate_stone.png new file mode 100644 index 0000000..10cc05e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/radiate_stone.png differ diff --git a/src/main/resources/assets/decisland/textures/block/radiate_stonebrick.png b/src/main/resources/assets/decisland/textures/block/radiate_stonebrick.png new file mode 100644 index 0000000..d459196 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/radiate_stonebrick.png differ diff --git a/src/main/resources/assets/decisland/textures/block/raining_summoner.png b/src/main/resources/assets/decisland/textures/block/raining_summoner.png new file mode 100644 index 0000000..6050ca7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/raining_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/red_lantern.png b/src/main/resources/assets/decisland/textures/block/red_lantern.png new file mode 100644 index 0000000..784459f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/red_lantern.png differ diff --git a/src/main/resources/assets/decisland/textures/block/red_patterned_stonebrick_side.png b/src/main/resources/assets/decisland/textures/block/red_patterned_stonebrick_side.png new file mode 100644 index 0000000..734c488 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/red_patterned_stonebrick_side.png differ diff --git a/src/main/resources/assets/decisland/textures/block/red_patterned_stonebrick_up.png b/src/main/resources/assets/decisland/textures/block/red_patterned_stonebrick_up.png new file mode 100644 index 0000000..4b3f30a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/red_patterned_stonebrick_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/red_spider_lily_crop.png b/src/main/resources/assets/decisland/textures/block/red_spider_lily_crop.png new file mode 100644 index 0000000..76dbaf1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/red_spider_lily_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/rice_stage_0.png b/src/main/resources/assets/decisland/textures/block/rice_stage_0.png new file mode 100644 index 0000000..ab11756 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/rice_stage_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/rice_stage_1.png b/src/main/resources/assets/decisland/textures/block/rice_stage_1.png new file mode 100644 index 0000000..a007986 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/rice_stage_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/rice_stage_2.png b/src/main/resources/assets/decisland/textures/block/rice_stage_2.png new file mode 100644 index 0000000..1d86464 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/rice_stage_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/rice_stage_3.png b/src/main/resources/assets/decisland/textures/block/rice_stage_3.png new file mode 100644 index 0000000..6fc7c71 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/rice_stage_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/rice_stage_4.png b/src/main/resources/assets/decisland/textures/block/rice_stage_4.png new file mode 100644 index 0000000..0789214 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/rice_stage_4.png differ diff --git a/src/main/resources/assets/decisland/textures/block/rice_stage_5.png b/src/main/resources/assets/decisland/textures/block/rice_stage_5.png new file mode 100644 index 0000000..d47c838 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/rice_stage_5.png differ diff --git a/src/main/resources/assets/decisland/textures/block/rosemary_crop.png b/src/main/resources/assets/decisland/textures/block/rosemary_crop.png new file mode 100644 index 0000000..078b454 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/rosemary_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/russet_grass_crop.png b/src/main/resources/assets/decisland/textures/block/russet_grass_crop.png new file mode 100644 index 0000000..3e2141f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/russet_grass_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/scale_block.png b/src/main/resources/assets/decisland/textures/block/scale_block.png new file mode 100644 index 0000000..00f962b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/scale_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/small_stone.png b/src/main/resources/assets/decisland/textures/block/small_stone.png new file mode 100644 index 0000000..ec607fd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/small_stone.png differ diff --git a/src/main/resources/assets/decisland/textures/block/snow_brick_block.png b/src/main/resources/assets/decisland/textures/block/snow_brick_block.png new file mode 100644 index 0000000..d79be47 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/snow_brick_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/snow_flower_crop.png b/src/main/resources/assets/decisland/textures/block/snow_flower_crop.png new file mode 100644 index 0000000..a348486 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/snow_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/snow_lotus_crop.png b/src/main/resources/assets/decisland/textures/block/snow_lotus_crop.png new file mode 100644 index 0000000..de298e6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/snow_lotus_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/soul_summoner.png b/src/main/resources/assets/decisland/textures/block/soul_summoner.png new file mode 100644 index 0000000..14a3061 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/soul_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/soul_summoner_activated.png b/src/main/resources/assets/decisland/textures/block/soul_summoner_activated.png new file mode 100644 index 0000000..c7f0f31 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/soul_summoner_activated.png differ diff --git a/src/main/resources/assets/decisland/textures/block/soybean_stage_0.png b/src/main/resources/assets/decisland/textures/block/soybean_stage_0.png new file mode 100644 index 0000000..abd8a0c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/soybean_stage_0.png differ diff --git a/src/main/resources/assets/decisland/textures/block/soybean_stage_1.png b/src/main/resources/assets/decisland/textures/block/soybean_stage_1.png new file mode 100644 index 0000000..6a1cd90 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/soybean_stage_1.png differ diff --git a/src/main/resources/assets/decisland/textures/block/soybean_stage_2.png b/src/main/resources/assets/decisland/textures/block/soybean_stage_2.png new file mode 100644 index 0000000..65585d7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/soybean_stage_2.png differ diff --git a/src/main/resources/assets/decisland/textures/block/soybean_stage_3.png b/src/main/resources/assets/decisland/textures/block/soybean_stage_3.png new file mode 100644 index 0000000..a8e542b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/soybean_stage_3.png differ diff --git a/src/main/resources/assets/decisland/textures/block/soybean_stage_4.png b/src/main/resources/assets/decisland/textures/block/soybean_stage_4.png new file mode 100644 index 0000000..5ba43e6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/soybean_stage_4.png differ diff --git a/src/main/resources/assets/decisland/textures/block/spark_flower_crop.png b/src/main/resources/assets/decisland/textures/block/spark_flower_crop.png new file mode 100644 index 0000000..f99ba75 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/spark_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/spell_flower_crop.png b/src/main/resources/assets/decisland/textures/block/spell_flower_crop.png new file mode 100644 index 0000000..798241c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/spell_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/star_flower_crop.png b/src/main/resources/assets/decisland/textures/block/star_flower_crop.png new file mode 100644 index 0000000..ee4a8ea Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/star_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/stick_flower_crop.png b/src/main/resources/assets/decisland/textures/block/stick_flower_crop.png new file mode 100644 index 0000000..a9beb0a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/stick_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/summoner.png b/src/main/resources/assets/decisland/textures/block/summoner.png new file mode 100644 index 0000000..0535531 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/sunny_summoner.png b/src/main/resources/assets/decisland/textures/block/sunny_summoner.png new file mode 100644 index 0000000..cd2e922 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/sunny_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/block/sweet_berries_block.png b/src/main/resources/assets/decisland/textures/block/sweet_berries_block.png new file mode 100644 index 0000000..526f3bb Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/sweet_berries_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/thin_rope_block.png b/src/main/resources/assets/decisland/textures/block/thin_rope_block.png new file mode 100644 index 0000000..6a4286f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/thin_rope_block.png differ diff --git a/src/main/resources/assets/decisland/textures/block/thyme_crop.png b/src/main/resources/assets/decisland/textures/block/thyme_crop.png new file mode 100644 index 0000000..1bc46b0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/thyme_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/tnt_down.png b/src/main/resources/assets/decisland/textures/block/tnt_down.png new file mode 100644 index 0000000..1ad4632 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/tnt_down.png differ diff --git a/src/main/resources/assets/decisland/textures/block/tnt_up.png b/src/main/resources/assets/decisland/textures/block/tnt_up.png new file mode 100644 index 0000000..57d179a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/tnt_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/trellis.png b/src/main/resources/assets/decisland/textures/block/trellis.png new file mode 100644 index 0000000..0697e97 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/trellis.png differ diff --git a/src/main/resources/assets/decisland/textures/block/trellis_cover.png b/src/main/resources/assets/decisland/textures/block/trellis_cover.png new file mode 100644 index 0000000..eef0323 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/trellis_cover.png differ diff --git a/src/main/resources/assets/decisland/textures/block/trellis_crop_wither.png b/src/main/resources/assets/decisland/textures/block/trellis_crop_wither.png new file mode 100644 index 0000000..56a5b33 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/trellis_crop_wither.png differ diff --git a/src/main/resources/assets/decisland/textures/block/weather_console_down.png b/src/main/resources/assets/decisland/textures/block/weather_console_down.png new file mode 100644 index 0000000..3c07d71 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/weather_console_down.png differ diff --git a/src/main/resources/assets/decisland/textures/block/weather_console_up.png b/src/main/resources/assets/decisland/textures/block/weather_console_up.png new file mode 100644 index 0000000..df8ef22 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/weather_console_up.png differ diff --git a/src/main/resources/assets/decisland/textures/block/wither_cone_crop.png b/src/main/resources/assets/decisland/textures/block/wither_cone_crop.png new file mode 100644 index 0000000..7f70015 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/wither_cone_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/block/yellow_butterfly_flower_crop.png b/src/main/resources/assets/decisland/textures/block/yellow_butterfly_flower_crop.png new file mode 100644 index 0000000..5fa38ed Binary files /dev/null and b/src/main/resources/assets/decisland/textures/block/yellow_butterfly_flower_crop.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/abyssal_controller.png b/src/main/resources/assets/decisland/textures/entity/abyssal_controller.png new file mode 100644 index 0000000..674ce9e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/abyssal_controller.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/abyssal_shadow.png b/src/main/resources/assets/decisland/textures/entity/abyssal_shadow.png new file mode 100644 index 0000000..384c766 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/abyssal_shadow.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/angry_chicken.png b/src/main/resources/assets/decisland/textures/entity/angry_chicken.png new file mode 100644 index 0000000..1137b85 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/angry_chicken.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/archer.png b/src/main/resources/assets/decisland/textures/entity/archer.png new file mode 100644 index 0000000..729342a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/archer.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_blaze.png b/src/main/resources/assets/decisland/textures/entity/ash_blaze.png new file mode 100644 index 0000000..f4eb9ee Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_blaze.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_bomb.png b/src/main/resources/assets/decisland/textures/entity/ash_bomb.png new file mode 100644 index 0000000..9ce8293 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_bomb.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_horse.png b/src/main/resources/assets/decisland/textures/entity/ash_horse.png new file mode 100644 index 0000000..ea0c6f4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_horse.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_horse_head.png b/src/main/resources/assets/decisland/textures/entity/ash_horse_head.png new file mode 100644 index 0000000..ea0c6f4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_horse_head.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_knight.png b/src/main/resources/assets/decisland/textures/entity/ash_knight.png new file mode 100644 index 0000000..7b67f5b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_knight.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_knight_head.png b/src/main/resources/assets/decisland/textures/entity/ash_knight_head.png new file mode 100644 index 0000000..7b67f5b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_knight_head.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_pufferfish.png b/src/main/resources/assets/decisland/textures/entity/ash_pufferfish.png new file mode 100644 index 0000000..1a3e5ce Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_pufferfish.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_sword.png b/src/main/resources/assets/decisland/textures/entity/ash_sword.png new file mode 100644 index 0000000..e51bf05 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_sword.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ash_sword_phantom.png b/src/main/resources/assets/decisland/textures/entity/ash_sword_phantom.png new file mode 100644 index 0000000..cf9bca6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ash_sword_phantom.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/baby_ender_dragon.png b/src/main/resources/assets/decisland/textures/entity/baby_ender_dragon.png new file mode 100644 index 0000000..769a3c8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/baby_ender_dragon.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/bat_charger.png b/src/main/resources/assets/decisland/textures/entity/bat_charger.png new file mode 100644 index 0000000..c37e0a0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/bat_charger.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/blackstone_thorn.png b/src/main/resources/assets/decisland/textures/entity/blackstone_thorn.png new file mode 100644 index 0000000..3213cc3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/blackstone_thorn.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/blood_zombie.png b/src/main/resources/assets/decisland/textures/entity/blood_zombie.png new file mode 100644 index 0000000..0383e20 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/blood_zombie.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/bomber.png b/src/main/resources/assets/decisland/textures/entity/bomber.png new file mode 100644 index 0000000..f58c38e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/bomber.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/brown_bear.png b/src/main/resources/assets/decisland/textures/entity/brown_bear.png new file mode 100644 index 0000000..65a8e4b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/brown_bear.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/carnager.png b/src/main/resources/assets/decisland/textures/entity/carnager.png new file mode 100644 index 0000000..b5b1e15 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/carnager.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/chest_monster.png b/src/main/resources/assets/decisland/textures/entity/chest_monster.png new file mode 100644 index 0000000..b061f0c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/chest_monster.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/chester.png b/src/main/resources/assets/decisland/textures/entity/chester.png new file mode 100644 index 0000000..b061f0c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/chester.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/clam.png b/src/main/resources/assets/decisland/textures/entity/clam.png new file mode 100644 index 0000000..0f1efe0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/clam.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/crab.png b/src/main/resources/assets/decisland/textures/entity/crab.png new file mode 100644 index 0000000..b39fbc9 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/crab.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/crimson_slime.png b/src/main/resources/assets/decisland/textures/entity/crimson_slime.png new file mode 100644 index 0000000..6580215 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/crimson_slime.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/dark_snow_man.png b/src/main/resources/assets/decisland/textures/entity/dark_snow_man.png new file mode 100644 index 0000000..707ffc0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/dark_snow_man.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/dark_werewolf.png b/src/main/resources/assets/decisland/textures/entity/dark_werewolf.png new file mode 100644 index 0000000..1828e12 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/dark_werewolf.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/doctor.png b/src/main/resources/assets/decisland/textures/entity/doctor.png new file mode 100644 index 0000000..1b6a60f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/doctor.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/elf_of_ash.png b/src/main/resources/assets/decisland/textures/entity/elf_of_ash.png new file mode 100644 index 0000000..fd2c60e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/elf_of_ash.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/elf_of_chaos.png b/src/main/resources/assets/decisland/textures/entity/elf_of_chaos.png new file mode 100644 index 0000000..8ca71f4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/elf_of_chaos.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/elf_of_deep.png b/src/main/resources/assets/decisland/textures/entity/elf_of_deep.png new file mode 100644 index 0000000..6dc2ada Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/elf_of_deep.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/elf_of_dust.png b/src/main/resources/assets/decisland/textures/entity/elf_of_dust.png new file mode 100644 index 0000000..c876cc1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/elf_of_dust.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/elf_of_leaves.png b/src/main/resources/assets/decisland/textures/entity/elf_of_leaves.png new file mode 100644 index 0000000..68a704d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/elf_of_leaves.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/enchant_armor.png b/src/main/resources/assets/decisland/textures/entity/enchant_armor.png new file mode 100644 index 0000000..6648049 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/enchant_armor.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/enchant_armor_by_boss.png b/src/main/resources/assets/decisland/textures/entity/enchant_armor_by_boss.png new file mode 100644 index 0000000..6648049 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/enchant_armor_by_boss.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/enchant_diamond_armor.png b/src/main/resources/assets/decisland/textures/entity/enchant_diamond_armor.png new file mode 100644 index 0000000..6648049 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/enchant_diamond_armor.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/enchant_illager.png b/src/main/resources/assets/decisland/textures/entity/enchant_illager.png new file mode 100644 index 0000000..62f5bd7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/enchant_illager.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/enchant_illager_1.png b/src/main/resources/assets/decisland/textures/entity/enchant_illager_1.png new file mode 100644 index 0000000..62f5bd7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/enchant_illager_1.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/enchant_illager_2.png b/src/main/resources/assets/decisland/textures/entity/enchant_illager_2.png new file mode 100644 index 0000000..62f5bd7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/enchant_illager_2.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/end_stone_golem.png b/src/main/resources/assets/decisland/textures/entity/end_stone_golem.png new file mode 100644 index 0000000..c89ec49 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/end_stone_golem.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ender_snail.png b/src/main/resources/assets/decisland/textures/entity/ender_snail.png new file mode 100644 index 0000000..33313cd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ender_snail.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ender_snake.png b/src/main/resources/assets/decisland/textures/entity/ender_snake.png new file mode 100644 index 0000000..b188abe Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ender_snake.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ender_witch.png b/src/main/resources/assets/decisland/textures/entity/ender_witch.png new file mode 100644 index 0000000..1da17a5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ender_witch.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ender_witch_puppet.png b/src/main/resources/assets/decisland/textures/entity/ender_witch_puppet.png new file mode 100644 index 0000000..a746add Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ender_witch_puppet.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/entity_soul.png b/src/main/resources/assets/decisland/textures/entity/entity_soul.png new file mode 100644 index 0000000..ce2f037 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/entity_soul.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/entity_soul_1.png b/src/main/resources/assets/decisland/textures/entity/entity_soul_1.png new file mode 100644 index 0000000..ce2f037 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/entity_soul_1.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/escaped_soul_entity.png b/src/main/resources/assets/decisland/textures/entity/escaped_soul_entity.png new file mode 100644 index 0000000..c11a488 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/escaped_soul_entity.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/everlasting_winter_ghast.png b/src/main/resources/assets/decisland/textures/entity/everlasting_winter_ghast.png new file mode 100644 index 0000000..eabdd5f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/everlasting_winter_ghast.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/everlasting_winter_ghast_1.png b/src/main/resources/assets/decisland/textures/entity/everlasting_winter_ghast_1.png new file mode 100644 index 0000000..f222f66 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/everlasting_winter_ghast_1.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/everlasting_winter_shadow.png b/src/main/resources/assets/decisland/textures/entity/everlasting_winter_shadow.png new file mode 100644 index 0000000..0f952b9 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/everlasting_winter_shadow.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/evil_snow_man.png b/src/main/resources/assets/decisland/textures/entity/evil_snow_man.png new file mode 100644 index 0000000..dd2b6ec Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/evil_snow_man.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/fire_storm.png b/src/main/resources/assets/decisland/textures/entity/fire_storm.png new file mode 100644 index 0000000..d95d59c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/fire_storm.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/friendly_little_soul.png b/src/main/resources/assets/decisland/textures/entity/friendly_little_soul.png new file mode 100644 index 0000000..4e687ce Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/friendly_little_soul.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/friendly_spider.png b/src/main/resources/assets/decisland/textures/entity/friendly_spider.png new file mode 100644 index 0000000..5f620fc Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/friendly_spider.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/frozen_ghast.png b/src/main/resources/assets/decisland/textures/entity/frozen_ghast.png new file mode 100644 index 0000000..f4ccdb6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/frozen_ghast.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/frozen_heart.png b/src/main/resources/assets/decisland/textures/entity/frozen_heart.png new file mode 100644 index 0000000..a733a87 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/frozen_heart.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/frozen_heart_sleeping.png b/src/main/resources/assets/decisland/textures/entity/frozen_heart_sleeping.png new file mode 100644 index 0000000..a5eeb4a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/frozen_heart_sleeping.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/frozen_man.png b/src/main/resources/assets/decisland/textures/entity/frozen_man.png new file mode 100644 index 0000000..9664cb3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/frozen_man.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/frozen_shadow.png b/src/main/resources/assets/decisland/textures/entity/frozen_shadow.png new file mode 100644 index 0000000..e51c735 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/frozen_shadow.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/frozen_spider.png b/src/main/resources/assets/decisland/textures/entity/frozen_spider.png new file mode 100644 index 0000000..8a98a0b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/frozen_spider.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/gargoyle.png b/src/main/resources/assets/decisland/textures/entity/gargoyle.png new file mode 100644 index 0000000..8f6f7ab Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/gargoyle.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ghost_diamond_axe.png b/src/main/resources/assets/decisland/textures/entity/ghost_diamond_axe.png new file mode 100644 index 0000000..7accb8c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ghost_diamond_axe.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ghost_diamond_staff.png b/src/main/resources/assets/decisland/textures/entity/ghost_diamond_staff.png new file mode 100644 index 0000000..3be5771 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ghost_diamond_staff.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ghost_diamond_sword.png b/src/main/resources/assets/decisland/textures/entity/ghost_diamond_sword.png new file mode 100644 index 0000000..502f258 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ghost_diamond_sword.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ghost_iron_axe.png b/src/main/resources/assets/decisland/textures/entity/ghost_iron_axe.png new file mode 100644 index 0000000..5770348 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ghost_iron_axe.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ghost_iron_sword.png b/src/main/resources/assets/decisland/textures/entity/ghost_iron_sword.png new file mode 100644 index 0000000..7db4ac8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ghost_iron_sword.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ghost_wooden_staff.png b/src/main/resources/assets/decisland/textures/entity/ghost_wooden_staff.png new file mode 100644 index 0000000..b52bf95 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ghost_wooden_staff.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ghost_wooden_sword.png b/src/main/resources/assets/decisland/textures/entity/ghost_wooden_sword.png new file mode 100644 index 0000000..61ceec5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ghost_wooden_sword.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/goblin.png b/src/main/resources/assets/decisland/textures/entity/goblin.png new file mode 100644 index 0000000..53b9b73 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/goblin.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/goblin_sniper.png b/src/main/resources/assets/decisland/textures/entity/goblin_sniper.png new file mode 100644 index 0000000..25823dd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/goblin_sniper.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/goblin_wizard.png b/src/main/resources/assets/decisland/textures/entity/goblin_wizard.png new file mode 100644 index 0000000..114a78b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/goblin_wizard.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/host_of_deep.png b/src/main/resources/assets/decisland/textures/entity/host_of_deep.png new file mode 100644 index 0000000..9389cdf Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/host_of_deep.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_bat.png b/src/main/resources/assets/decisland/textures/entity/ice_bat.png new file mode 100644 index 0000000..6280f3e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_bat.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_blaze.png b/src/main/resources/assets/decisland/textures/entity/ice_blaze.png new file mode 100644 index 0000000..65569d0 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_blaze.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_creeper.png b/src/main/resources/assets/decisland/textures/entity/ice_creeper.png new file mode 100644 index 0000000..32e21ce Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_creeper.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_monster.png b/src/main/resources/assets/decisland/textures/entity/ice_monster.png new file mode 100644 index 0000000..aea7862 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_monster.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_spirit.png b/src/main/resources/assets/decisland/textures/entity/ice_spirit.png new file mode 100644 index 0000000..7b24a7c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_spirit.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_thorn.png b/src/main/resources/assets/decisland/textures/entity/ice_thorn.png new file mode 100644 index 0000000..8965cab Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_thorn.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_wizard.png b/src/main/resources/assets/decisland/textures/entity/ice_wizard.png new file mode 100644 index 0000000..7adf4da Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_wizard.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/ice_zombie.png b/src/main/resources/assets/decisland/textures/entity/ice_zombie.png new file mode 100644 index 0000000..052e2b8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/ice_zombie.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/illusion_zombie.png b/src/main/resources/assets/decisland/textures/entity/illusion_zombie.png new file mode 100644 index 0000000..5cfaa5d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/illusion_zombie.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/illusioner.png b/src/main/resources/assets/decisland/textures/entity/illusioner.png new file mode 100644 index 0000000..308d4e7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/illusioner.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/illusioner_puppet.png b/src/main/resources/assets/decisland/textures/entity/illusioner_puppet.png new file mode 100644 index 0000000..308d4e7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/illusioner_puppet.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/jungle_spider.png b/src/main/resources/assets/decisland/textures/entity/jungle_spider.png new file mode 100644 index 0000000..80a856d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/jungle_spider.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/king_of_pillager.png b/src/main/resources/assets/decisland/textures/entity/king_of_pillager.png new file mode 100644 index 0000000..edf3ea9 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/king_of_pillager.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/lava_lizard.png b/src/main/resources/assets/decisland/textures/entity/lava_lizard.png new file mode 100644 index 0000000..8c9c2de Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/lava_lizard.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/leaves_golem.png b/src/main/resources/assets/decisland/textures/entity/leaves_golem.png new file mode 100644 index 0000000..98b60d5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/leaves_golem.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/life_insect.png b/src/main/resources/assets/decisland/textures/entity/life_insect.png new file mode 100644 index 0000000..9a019ff Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/life_insect.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/little_bat.png b/src/main/resources/assets/decisland/textures/entity/little_bat.png new file mode 100644 index 0000000..44d698b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/little_bat.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/little_soul.png b/src/main/resources/assets/decisland/textures/entity/little_soul.png new file mode 100644 index 0000000..4e687ce Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/little_soul.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/lurk_skeleton.png b/src/main/resources/assets/decisland/textures/entity/lurk_skeleton.png new file mode 100644 index 0000000..d2fdd59 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/lurk_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/lurk_zombie.png b/src/main/resources/assets/decisland/textures/entity/lurk_zombie.png new file mode 100644 index 0000000..c2e1fc1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/lurk_zombie.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/mummy.png b/src/main/resources/assets/decisland/textures/entity/mummy.png new file mode 100644 index 0000000..d058173 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/mummy.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/mummy_skeleton.png b/src/main/resources/assets/decisland/textures/entity/mummy_skeleton.png new file mode 100644 index 0000000..80e2de6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/mummy_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/murloc.png b/src/main/resources/assets/decisland/textures/entity/murloc.png new file mode 100644 index 0000000..c0cdf7f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/murloc.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/murloc_wizard.png b/src/main/resources/assets/decisland/textures/entity/murloc_wizard.png new file mode 100644 index 0000000..f3e72b1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/murloc_wizard.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/mushroom_monster.png b/src/main/resources/assets/decisland/textures/entity/mushroom_monster.png new file mode 100644 index 0000000..263036e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/mushroom_monster.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/mushroom_zombie.png b/src/main/resources/assets/decisland/textures/entity/mushroom_zombie.png new file mode 100644 index 0000000..b0f639e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/mushroom_zombie.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/mystical_skeleton.png b/src/main/resources/assets/decisland/textures/entity/mystical_skeleton.png new file mode 100644 index 0000000..d1bcd79 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/mystical_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/nautilus.png b/src/main/resources/assets/decisland/textures/entity/nautilus.png new file mode 100644 index 0000000..1ef589e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/nautilus.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/nether_creeper.png b/src/main/resources/assets/decisland/textures/entity/nether_creeper.png new file mode 100644 index 0000000..227f9be Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/nether_creeper.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/nether_golem.png b/src/main/resources/assets/decisland/textures/entity/nether_golem.png new file mode 100644 index 0000000..038a681 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/nether_golem.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/nether_phantom.png b/src/main/resources/assets/decisland/textures/entity/nether_phantom.png new file mode 100644 index 0000000..2cc64a3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/nether_phantom.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/nether_skeleton.png b/src/main/resources/assets/decisland/textures/entity/nether_skeleton.png new file mode 100644 index 0000000..f994d47 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/nether_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/nether_skeleton_wizard.png b/src/main/resources/assets/decisland/textures/entity/nether_skeleton_wizard.png new file mode 100644 index 0000000..4df94af Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/nether_skeleton_wizard.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/obsidian_golem.png b/src/main/resources/assets/decisland/textures/entity/obsidian_golem.png new file mode 100644 index 0000000..85bb7d2 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/obsidian_golem.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/pillager_by_boss.png b/src/main/resources/assets/decisland/textures/entity/pillager_by_boss.png new file mode 100644 index 0000000..3ba356f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/pillager_by_boss.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/pirate.png b/src/main/resources/assets/decisland/textures/entity/pirate.png new file mode 100644 index 0000000..9433ee5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/pirate.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/player_ghost.png b/src/main/resources/assets/decisland/textures/entity/player_ghost.png new file mode 100644 index 0000000..0759ae2 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/player_ghost.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/polar_wolf.png b/src/main/resources/assets/decisland/textures/entity/polar_wolf.png new file mode 100644 index 0000000..9cf81ed Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/polar_wolf.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/predators.png b/src/main/resources/assets/decisland/textures/entity/predators.png new file mode 100644 index 0000000..ea1ded8 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/predators.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/radiate_creeper.png b/src/main/resources/assets/decisland/textures/entity/radiate_creeper.png new file mode 100644 index 0000000..721ee66 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/radiate_creeper.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/radiate_enderman.png b/src/main/resources/assets/decisland/textures/entity/radiate_enderman.png new file mode 100644 index 0000000..b86c30c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/radiate_enderman.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/radiate_skeleton.png b/src/main/resources/assets/decisland/textures/entity/radiate_skeleton.png new file mode 100644 index 0000000..9769d5b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/radiate_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/radiate_spider.png b/src/main/resources/assets/decisland/textures/entity/radiate_spider.png new file mode 100644 index 0000000..bae2811 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/radiate_spider.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/real_soul.png b/src/main/resources/assets/decisland/textures/entity/real_soul.png new file mode 100644 index 0000000..dfb6fc4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/real_soul.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/rumorer.png b/src/main/resources/assets/decisland/textures/entity/rumorer.png new file mode 100644 index 0000000..d398ab5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/rumorer.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/sardine.png b/src/main/resources/assets/decisland/textures/entity/sardine.png new file mode 100644 index 0000000..b4f29bd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/sardine.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/saucer.png b/src/main/resources/assets/decisland/textures/entity/saucer.png new file mode 100644 index 0000000..10a3677 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/saucer.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/sea_urchin.png b/src/main/resources/assets/decisland/textures/entity/sea_urchin.png new file mode 100644 index 0000000..adcd08d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/sea_urchin.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_archer.png b/src/main/resources/assets/decisland/textures/entity/shadow_archer.png new file mode 100644 index 0000000..39d632c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_archer.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_creeper.png b/src/main/resources/assets/decisland/textures/entity/shadow_creeper.png new file mode 100644 index 0000000..7b80024 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_creeper.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_of_deep.png b/src/main/resources/assets/decisland/textures/entity/shadow_of_deep.png new file mode 100644 index 0000000..9389cdf Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_of_deep.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_of_sea.png b/src/main/resources/assets/decisland/textures/entity/shadow_of_sea.png new file mode 100644 index 0000000..7967e71 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_of_sea.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_skeleton.png b/src/main/resources/assets/decisland/textures/entity/shadow_skeleton.png new file mode 100644 index 0000000..e982c31 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_skeleton_puppet.png b/src/main/resources/assets/decisland/textures/entity/shadow_skeleton_puppet.png new file mode 100644 index 0000000..5f8e2a5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_skeleton_puppet.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_soul_1.png b/src/main/resources/assets/decisland/textures/entity/shadow_soul_1.png new file mode 100644 index 0000000..03a427d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_soul_1.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_soul_2.png b/src/main/resources/assets/decisland/textures/entity/shadow_soul_2.png new file mode 100644 index 0000000..79a593a Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_soul_2.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_zombie.png b/src/main/resources/assets/decisland/textures/entity/shadow_zombie.png new file mode 100644 index 0000000..f41dd41 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_zombie.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/shadow_zombie_puppet.png b/src/main/resources/assets/decisland/textures/entity/shadow_zombie_puppet.png new file mode 100644 index 0000000..d6c7b61 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/shadow_zombie_puppet.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/simple_glider.png b/src/main/resources/assets/decisland/textures/entity/simple_glider.png new file mode 100644 index 0000000..4602894 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/simple_glider.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/skeleton_assassin.png b/src/main/resources/assets/decisland/textures/entity/skeleton_assassin.png new file mode 100644 index 0000000..a31ff96 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/skeleton_assassin.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/skeleton_knight.png b/src/main/resources/assets/decisland/textures/entity/skeleton_knight.png new file mode 100644 index 0000000..b73acbc Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/skeleton_knight.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/skeleton_knight_commander.png b/src/main/resources/assets/decisland/textures/entity/skeleton_knight_commander.png new file mode 100644 index 0000000..5da366e Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/skeleton_knight_commander.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/skeleton_warrior.png b/src/main/resources/assets/decisland/textures/entity/skeleton_warrior.png new file mode 100644 index 0000000..698f256 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/skeleton_warrior.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/skeleton_wizard.png b/src/main/resources/assets/decisland/textures/entity/skeleton_wizard.png new file mode 100644 index 0000000..f063dd5 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/skeleton_wizard.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/son_of_chaos.png b/src/main/resources/assets/decisland/textures/entity/son_of_chaos.png new file mode 100644 index 0000000..8ca71f4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/son_of_chaos.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/son_of_nature.png b/src/main/resources/assets/decisland/textures/entity/son_of_nature.png new file mode 100644 index 0000000..a3f9173 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/son_of_nature.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/soul.png b/src/main/resources/assets/decisland/textures/entity/soul.png new file mode 100644 index 0000000..15950a6 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/soul.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/soul_blaze.png b/src/main/resources/assets/decisland/textures/entity/soul_blaze.png new file mode 100644 index 0000000..54214cd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/soul_blaze.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/soul_insect.png b/src/main/resources/assets/decisland/textures/entity/soul_insect.png new file mode 100644 index 0000000..b07b3b4 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/soul_insect.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/soul_skeleton.png b/src/main/resources/assets/decisland/textures/entity/soul_skeleton.png new file mode 100644 index 0000000..ec49981 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/soul_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/soul_soldier.png b/src/main/resources/assets/decisland/textures/entity/soul_soldier.png new file mode 100644 index 0000000..4a1d8dd Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/soul_soldier.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/soul_zombie.png b/src/main/resources/assets/decisland/textures/entity/soul_zombie.png new file mode 100644 index 0000000..4939fee Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/soul_zombie.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/star.png b/src/main/resources/assets/decisland/textures/entity/star.png new file mode 100644 index 0000000..04c5513 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/star.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/stone_golem.png b/src/main/resources/assets/decisland/textures/entity/stone_golem.png new file mode 100644 index 0000000..99dbff3 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/stone_golem.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/swamp_drowned.png b/src/main/resources/assets/decisland/textures/entity/swamp_drowned.png new file mode 100644 index 0000000..0a0cb4b Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/swamp_drowned.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/swamp_golem.png b/src/main/resources/assets/decisland/textures/entity/swamp_golem.png new file mode 100644 index 0000000..cf859b9 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/swamp_golem.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/tnt_creeper.png b/src/main/resources/assets/decisland/textures/entity/tnt_creeper.png new file mode 100644 index 0000000..731b367 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/tnt_creeper.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/tnt_snow_man.png b/src/main/resources/assets/decisland/textures/entity/tnt_snow_man.png new file mode 100644 index 0000000..275195d Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/tnt_snow_man.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/vampire_bat.png b/src/main/resources/assets/decisland/textures/entity/vampire_bat.png new file mode 100644 index 0000000..13c280f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/vampire_bat.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/vampire_bat_by_boss.png b/src/main/resources/assets/decisland/textures/entity/vampire_bat_by_boss.png new file mode 100644 index 0000000..13c280f Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/vampire_bat_by_boss.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/vengeful_ghost.png b/src/main/resources/assets/decisland/textures/entity/vengeful_ghost.png new file mode 100644 index 0000000..ae343b2 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/vengeful_ghost.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/vindicator_by_boss.png b/src/main/resources/assets/decisland/textures/entity/vindicator_by_boss.png new file mode 100644 index 0000000..3bd0644 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/vindicator_by_boss.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/warped_skeleton.png b/src/main/resources/assets/decisland/textures/entity/warped_skeleton.png new file mode 100644 index 0000000..cd0a06c Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/warped_skeleton.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/watcher.png b/src/main/resources/assets/decisland/textures/entity/watcher.png new file mode 100644 index 0000000..31d64b1 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/watcher.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/werewolf.png b/src/main/resources/assets/decisland/textures/entity/werewolf.png new file mode 100644 index 0000000..192b077 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/werewolf.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/zombie_fish.png b/src/main/resources/assets/decisland/textures/entity/zombie_fish.png new file mode 100644 index 0000000..0bc3024 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/zombie_fish.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/zombie_summoner.png b/src/main/resources/assets/decisland/textures/entity/zombie_summoner.png new file mode 100644 index 0000000..9532e72 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/zombie_summoner.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/zombie_warrior.png b/src/main/resources/assets/decisland/textures/entity/zombie_warrior.png new file mode 100644 index 0000000..9ab3c09 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/zombie_warrior.png differ diff --git a/src/main/resources/assets/decisland/textures/entity/zombie_warrior_legacy64x32.png b/src/main/resources/assets/decisland/textures/entity/zombie_warrior_legacy64x32.png new file mode 100644 index 0000000..8a177c7 Binary files /dev/null and b/src/main/resources/assets/decisland/textures/entity/zombie_warrior_legacy64x32.png differ diff --git a/src/main/resources/assets/decisland/textures/particle/leaves_essence.png b/src/main/resources/assets/decisland/textures/particle/leaves_essence.png new file mode 100644 index 0000000..f86edae Binary files /dev/null and b/src/main/resources/assets/decisland/textures/particle/leaves_essence.png differ diff --git a/src/main/resources/data/decisland/loot_table/entities/abyssal_controller.json b/src/main/resources/data/decisland/loot_table/entities/abyssal_controller.json new file mode 100644 index 0000000..22e5f28 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/abyssal_controller.json @@ -0,0 +1,308 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine_shard", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 5 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:sponge", + "weight": 3, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "decisland:scale_block", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:prismarine_crystals", + "weight": 6, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:wave_magic_book", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:sword_of_guard", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:storm_battleaxe", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:storm_staff", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:storm_flintlock", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:decrepit_atlantis", + "weight": 2, + "functions": [] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:group", + "children": [ + { + "type": "minecraft:item", + "name": "minecraft:cod", + "weight": 400 + }, + { + "type": "minecraft:item", + "name": "minecraft:salmon", + "weight": 250 + }, + { + "type": "minecraft:item", + "name": "minecraft:tropical_fish", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:pufferfish", + "weight": 130 + }, + { + "type": "minecraft:item", + "name": "decisland:ender_fish", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:coal_fish", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:iron_fish", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "decisland:gold_fish", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:emerald_fish", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_fish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:sword_fish", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "decisland:spiral_shell", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "decisland:snailfish", + "weight": 30 + }, + { + "type": "minecraft:item", + "name": "decisland:tropical_fish", + "weight": 400 + }, + { + "type": "minecraft:item", + "name": "decisland:yellow_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:pink_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:blue_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:moon_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:lamprey", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:nautilus_alive", + "weight": 1 + } + ] + }, + { + "type": "minecraft:group", + "children": [ + { + "type": "minecraft:item", + "name": "minecraft:nautilus_shell", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:lily_pad", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:name_tag", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "minecraft:prismarine", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:prismarine_crystals", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:prismarine_shard", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:sponge", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_damage", + "damage": { + "min": 0, + "max": 0.25 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:fishing_rod", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_damage", + "damage": { + "min": 0, + "max": 0.25 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "weight": 6, + "functions": [] + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ash_blaze.json b/src/main/resources/data/decisland/loot_table/entities/ash_blaze.json new file mode 100644 index 0000000..ef37f28 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ash_blaze.json @@ -0,0 +1,102 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 5 + } + }, + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 5 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ash", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:lava_nugget", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ash_horse_head.json b/src/main/resources/data/decisland/loot_table/entities/ash_horse_head.json new file mode 100644 index 0000000..1010b34 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ash_horse_head.json @@ -0,0 +1,65 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:dust_ring", + "weight": 1 + } + ] + }, + { + "rolls": { + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ash", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 7, + "max": 15 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ash_knight.json b/src/main/resources/data/decisland/loot_table/entities/ash_knight.json new file mode 100644 index 0000000..2d276a2 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ash_knight.json @@ -0,0 +1,92 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "min": 1, + "max": 2 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:dust_destroyer", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:dust_ring", + "weight": 1 + } + ] + }, + { + "rolls": { + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:red_spider_lily", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:lava_flower_seeds", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ash", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 7, + "max": 15 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:blaze_rod", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ash_knight_head.json b/src/main/resources/data/decisland/loot_table/entities/ash_knight_head.json new file mode 100644 index 0000000..b0990a9 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ash_knight_head.json @@ -0,0 +1,55 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ash", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 7, + "max": 15 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:blaze_rod", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ash_pufferfish.json b/src/main/resources/data/decisland/loot_table/entities/ash_pufferfish.json new file mode 100644 index 0000000..9660c02 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ash_pufferfish.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ash_pufferfish", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ash_sword.json b/src/main/resources/data/decisland/loot_table/entities/ash_sword.json new file mode 100644 index 0000000..7b6f272 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ash_sword.json @@ -0,0 +1,51 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:dust_destroyer", + "weight": 1 + } + ] + }, + { + "rolls": { + "min": 1, + "max": 2 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ash", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 7, + "max": 15 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:blaze_rod", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 8 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/blood_zombie.json b/src/main/resources/data/decisland/loot_table/entities/blood_zombie.json new file mode 100644 index 0000000..6e31705 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/blood_zombie.json @@ -0,0 +1,134 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:zombie_brain", + "weight": 5, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:torch", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:soybean", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:blood_worm", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:intestine", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:health_nugget", + "weight": 1 + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:potato", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:apple_juice", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:pine_cone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/bomber.json b/src/main/resources/data/decisland/loot_table/entities/bomber.json new file mode 100644 index 0000000..310cef0 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/bomber.json @@ -0,0 +1,73 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:magma_block", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 99, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_nugget", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/brown_bear.json b/src/main/resources/data/decisland/loot_table/entities/brown_bear.json new file mode 100644 index 0000000..cb607ee --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/brown_bear.json @@ -0,0 +1,81 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cod", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:sweet_berries", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:salmon", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/carnager.json b/src/main/resources/data/decisland/loot_table/entities/carnager.json new file mode 100644 index 0000000..479da51 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/carnager.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 4 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/chest_monster.json b/src/main/resources/data/decisland/loot_table/entities/chest_monster.json new file mode 100644 index 0000000..18f2ebb --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/chest_monster.json @@ -0,0 +1,203 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:chest", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 8 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:stream_stone", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:flintlock", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:short_flintlock", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:steel_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:following_particle", + "weight": 1 + }, + { + "type": "minecraft:group", + "children": [ + { + "type": "minecraft:item", + "name": "decisland:hanyi_clothes", + "weight": 1 + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:entities/armor_set_glamor" + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:entities/armor_set_lester" + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:entities/armor_set_uniform" + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:entities/armor_set_uniform" + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:entities/armor_set_formal_style" + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:entities/armor_set_luz" + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:entities/armor_set_jiuzhi" + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/clam.json b/src/main/resources/data/decisland/loot_table/entities/clam.json new file mode 100644 index 0000000..35bf276 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/clam.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:shell", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/dark_snow_man.json b/src/main/resources/data/decisland/loot_table/entities/dark_snow_man.json new file mode 100644 index 0000000..902fad0 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/dark_snow_man.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 3 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/elf_of_deep.json b/src/main/resources/data/decisland/loot_table/entities/elf_of_deep.json new file mode 100644 index 0000000..2ab3e30 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/elf_of_deep.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:mind_controller", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/enchant_illager.json b/src/main/resources/data/decisland/loot_table/entities/enchant_illager.json new file mode 100644 index 0000000..9699236 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/enchant_illager.json @@ -0,0 +1,120 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_sword", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_axe", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_pickaxe", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_hoe", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_shovel", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:crossbow", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "decisland:lapis_sword", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "decisland:lapis_dagger", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "decisland:lapis_magic_book", + "weight": 2 + } + ] + }, + { + "rolls": { + "min": 1, + "max": 2 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_helmet", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_chestplate", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_leggings", + "weight": 1, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_boots", + "weight": 1, + "functions": [] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:enchanted_book", + "weight": 2, + "functions": [] + }, + { + "type": "minecraft:item", + "name": "decisland:magic_chest_debris", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/end_stone_golem.json b/src/main/resources/data/decisland/loot_table/entities/end_stone_golem.json new file mode 100644 index 0000000..5461c1d --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/end_stone_golem.json @@ -0,0 +1,149 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:end_stone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 5 + } + } + ] + } + ] + }, + { + "rolls": { + "min": 3, + "max": 5 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:coal_nugget", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal_ore", + "weight": 11, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ore", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_ore", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:poppy", + "weight": 2 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ender_snail.json b/src/main/resources/data/decisland/loot_table/entities/ender_snail.json new file mode 100644 index 0000000..98710fd --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ender_snail.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ender_core", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:ender_powder", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ender_substance", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ender_snake.json b/src/main/resources/data/decisland/loot_table/entities/ender_snake.json new file mode 100644 index 0000000..9c757b0 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ender_snake.json @@ -0,0 +1,74 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ender_bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + }, + { + "rolls": { + "min": 1, + "max": 2 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ender_core", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ender_powder", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 5 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ender_substance", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/everlasting_winter_ghast.json b/src/main/resources/data/decisland/loot_table/entities/everlasting_winter_ghast.json new file mode 100644 index 0000000..76cb3eb --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/everlasting_winter_ghast.json @@ -0,0 +1,129 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:snowball_magic_book", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:frozen_ball", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 43, + "max": 124 + } + } + ] + } + ] + }, + { + "rolls": { + "min": 3, + "max": 4 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snow", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 21, + "max": 46 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ice_rod", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 5 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ice_heart", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:everlasting_winter_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 6, + "max": 12 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:frozen_power", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/evil_snow_man.json b/src/main/resources/data/decisland/loot_table/entities/evil_snow_man.json new file mode 100644 index 0000000..902fad0 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/evil_snow_man.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 3 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/frozen_heart.json b/src/main/resources/data/decisland/loot_table/entities/frozen_heart.json new file mode 100644 index 0000000..6e4d891 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/frozen_heart.json @@ -0,0 +1,108 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:frozen_power_debris" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ice_heart" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 36 + } + } + ] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ice_cream", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ice_rod", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ice_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ice_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:snowball_magic_book", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/frozen_spider.json b/src/main/resources/data/decisland/loot_table/entities/frozen_spider.json new file mode 100644 index 0000000..2cf87da --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/frozen_spider.json @@ -0,0 +1,96 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 49, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 3 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ice_cream", + "weight": 1 + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spider_eye", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/gargoyle.json b/src/main/resources/data/decisland/loot_table/entities/gargoyle.json new file mode 100644 index 0000000..2ba4394 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/gargoyle.json @@ -0,0 +1,54 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:coal_nugget", + "weight": 9, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:mysterious_key_debris", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/goblin.json b/src/main/resources/data/decisland/loot_table/entities/goblin.json new file mode 100644 index 0000000..73bd449 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/goblin.json @@ -0,0 +1,140 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:gold_ring", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:coal_nugget", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal_ore", + "weight": 11, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ore", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/goblin_sniper.json b/src/main/resources/data/decisland/loot_table/entities/goblin_sniper.json new file mode 100644 index 0000000..c45e116 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/goblin_sniper.json @@ -0,0 +1,140 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:hunter_bullet_bag", + "weight": 1 + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:coal_nugget", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal_ore", + "weight": 11, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ore", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/goblin_wizard.json b/src/main/resources/data/decisland/loot_table/entities/goblin_wizard.json new file mode 100644 index 0000000..dc2c77b --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/goblin_wizard.json @@ -0,0 +1,140 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:leather", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:alchemic_stone", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:coal_nugget", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal_ore", + "weight": 11, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ore", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/host_of_deep.json b/src/main/resources/data/decisland/loot_table/entities/host_of_deep.json new file mode 100644 index 0000000..1c0a188 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/host_of_deep.json @@ -0,0 +1,86 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:sword_of_deep", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:deep_staff", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:void_whispering_dagger", + "weight": 1 + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherite_scrap", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crimson_fungus", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 9 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:crimson_stem", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 12, + "max": 32 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:nether_wart_block", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 13 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ice_blaze.json b/src/main/resources/data/decisland/loot_table/entities/ice_blaze.json new file mode 100644 index 0000000..f482a0f --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ice_blaze.json @@ -0,0 +1,77 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:magic_ice_cream", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_cream", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_heart", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_rod", + "weight": 30 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_nugget", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:snowball_magic_book", + "weight": 2 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ice_monster.json b/src/main/resources/data/decisland/loot_table/entities/ice_monster.json new file mode 100644 index 0000000..24004a6 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ice_monster.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 10 + } + } + ] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ice", + "weight": 30 + }, + { + "type": "minecraft:item", + "name": "decisland:magic_ice_cream", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_cream", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_heart", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_nugget", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_ingot", + "weight": 2 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ice_spirit.json b/src/main/resources/data/decisland/loot_table/entities/ice_spirit.json new file mode 100644 index 0000000..7ffc439 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ice_spirit.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:magic_ice_cream", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:ice", + "weight": 30 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_cream", + "weight": 3 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ice_wizard.json b/src/main/resources/data/decisland/loot_table/entities/ice_wizard.json new file mode 100644 index 0000000..f0196e9 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ice_wizard.json @@ -0,0 +1,64 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 7 + } + } + ] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:magic_ice_cream", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_cream", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_heart", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:ice", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_nugget", + "weight": 15 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:frozen_staff", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/ice_zombie.json b/src/main/resources/data/decisland/loot_table/entities/ice_zombie.json new file mode 100644 index 0000000..dffc02e --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/ice_zombie.json @@ -0,0 +1,105 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:zombie_brain", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 19, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:ice_heart", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:magic_ice_cream", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_cream", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:ice_nugget", + "weight": 10 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/jungle_spider.json b/src/main/resources/data/decisland/loot_table/entities/jungle_spider.json new file mode 100644 index 0000000..7e94542 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/jungle_spider.json @@ -0,0 +1,91 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:poison_gland", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spider_eye", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/king_of_pillager.json b/src/main/resources/data/decisland/loot_table/entities/king_of_pillager.json new file mode 100644 index 0000000..ed95509 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/king_of_pillager.json @@ -0,0 +1,187 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_shard", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 9 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:stream_stone", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 3, + "max": 7 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 7 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 4 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:alchemic_stone", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:illager_sword", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:scimitar", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:rapier", + "weight": 3 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/lava_lizard.json b/src/main/resources/data/decisland/loot_table/entities/lava_lizard.json new file mode 100644 index 0000000..957f1b1 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/lava_lizard.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 39, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_nugget", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/leaves_golem.json b/src/main/resources/data/decisland/loot_table/entities/leaves_golem.json new file mode 100644 index 0000000..011ac2d --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/leaves_golem.json @@ -0,0 +1,134 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:eye_of_nature", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:log", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 5, + "max": 20 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:emerald_nugget", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 4, + "max": 12 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:leaves", + "weight": 5, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 4, + "max": 12 + } + } + ] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:natural_ring", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:herb_bag", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:wood_helmet", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:wood_chestplate", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:wood_leggings", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:wood_boots", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:leaves_dagger", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "decisland:poison_dart", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 11, + "max": 23 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/life_insect.json b/src/main/resources/data/decisland/loot_table/entities/life_insect.json new file mode 100644 index 0000000..0632012 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/life_insect.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:health_nugget", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/lurk_zombie.json b/src/main/resources/data/decisland/loot_table/entities/lurk_zombie.json new file mode 100644 index 0000000..80f6077 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/lurk_zombie.json @@ -0,0 +1,134 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:zombie_brain", + "weight": 5, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:bizarre_chilli_seeds", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:potato", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:apple_juice", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:pine_cone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lurk_grass", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:lurk_mushroom", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:lurk_spring", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:lurk_end_stone", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:monitor", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/mummy.json b/src/main/resources/data/decisland/loot_table/entities/mummy.json new file mode 100644 index 0000000..48af2b9 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/mummy.json @@ -0,0 +1,98 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:zombie_brain", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "minecraft:potato", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/mummy_skeleton.json b/src/main/resources/data/decisland/loot_table/entities/mummy_skeleton.json new file mode 100644 index 0000000..1f3810c --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/mummy_skeleton.json @@ -0,0 +1,91 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/murloc.json b/src/main/resources/data/decisland/loot_table/entities/murloc.json new file mode 100644 index 0000000..5d643fe --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/murloc.json @@ -0,0 +1,115 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:group", + "children": [ + { + "type": "minecraft:item", + "name": "minecraft:cod", + "weight": 400 + }, + { + "type": "minecraft:item", + "name": "minecraft:salmon", + "weight": 250 + }, + { + "type": "minecraft:item", + "name": "minecraft:tropical_fish", + "weight": 20 + }, + { + "type": "minecraft:item", + "name": "minecraft:pufferfish", + "weight": 130 + }, + { + "type": "minecraft:item", + "name": "decisland:ender_fish", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:coal_fish", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:iron_fish", + "weight": 5 + }, + { + "type": "minecraft:item", + "name": "decisland:gold_fish", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:emerald_fish", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_fish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:sword_fish", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "decisland:spiral_shell", + "weight": 40 + }, + { + "type": "minecraft:item", + "name": "decisland:snailfish", + "weight": 30 + }, + { + "type": "minecraft:item", + "name": "decisland:tropical_fish", + "weight": 400 + }, + { + "type": "minecraft:item", + "name": "decisland:yellow_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:pink_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:blue_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:moon_jellyfish", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:lamprey", + "weight": 1 + }, + { + "type": "minecraft:item", + "name": "decisland:nautilus_alive", + "weight": 1 + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/mystical_skeleton.json b/src/main/resources/data/decisland/loot_table/entities/mystical_skeleton.json new file mode 100644 index 0000000..8c45e1b --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/mystical_skeleton.json @@ -0,0 +1,113 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:vine", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/nautilus.json b/src/main/resources/data/decisland/loot_table/entities/nautilus.json new file mode 100644 index 0000000..a178efc --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/nautilus.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:nautilus_alive", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/nether_creeper.json b/src/main/resources/data/decisland/loot_table/entities/nether_creeper.json new file mode 100644 index 0000000..ae88e13 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/nether_creeper.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gunpowder", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 4 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.25 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/nether_golem.json b/src/main/resources/data/decisland/loot_table/entities/nether_golem.json new file mode 100644 index 0000000..79a6d59 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/nether_golem.json @@ -0,0 +1,80 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 10, + "max": 20 + } + } + ] + } + ] + }, + { + "rolls": 2, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 1 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:quartz", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 10, + "max": 20 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:nether_quartz_ore", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 10, + "max": 20 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/nether_phantom.json b/src/main/resources/data/decisland/loot_table/entities/nether_phantom.json new file mode 100644 index 0000000..c4ad3bb --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/nether_phantom.json @@ -0,0 +1,78 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 2, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:phantom_membrane", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 40, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:health_nugget", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "decisland:lava_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/nether_skeleton.json b/src/main/resources/data/decisland/loot_table/entities/nether_skeleton.json new file mode 100644 index 0000000..5de433b --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/nether_skeleton.json @@ -0,0 +1,92 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 99, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 5 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/nether_skeleton_wizard.json b/src/main/resources/data/decisland/loot_table/entities/nether_skeleton_wizard.json new file mode 100644 index 0000000..c2a7b31 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/nether_skeleton_wizard.json @@ -0,0 +1,100 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherrack", + "weight": 99, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 5 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:lava_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/obsidian_golem.json b/src/main/resources/data/decisland/loot_table/entities/obsidian_golem.json new file mode 100644 index 0000000..2c58126 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/obsidian_golem.json @@ -0,0 +1,149 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:obsidian", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 5 + } + } + ] + } + ] + }, + { + "rolls": { + "min": 3, + "max": 5 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:coal_nugget", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal_ore", + "weight": 11, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ore", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_ore", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:poppy", + "weight": 2 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/pirate.json b/src/main/resources/data/decisland/loot_table/entities/pirate.json new file mode 100644 index 0000000..d76059b --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/pirate.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "weight": 17, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 3 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:pirate_bullet_bag", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/predators.json b/src/main/resources/data/decisland/loot_table/entities/predators.json new file mode 100644 index 0000000..9b3b24d --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/predators.json @@ -0,0 +1,92 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": { + "min": 2, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 4, + "max": 7 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 4, + "max": 7 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:mutton", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:beef", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 4 + } + } + ] + } + ] + }, + { + "rolls": { + "min": 1, + "max": 2 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:dead_wood_dagger", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "decisland:dead_wood_rapier", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "decisland:giant_bat_wings", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/radiate_creeper.json b/src/main/resources/data/decisland/loot_table/entities/radiate_creeper.json new file mode 100644 index 0000000..15d02c5 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/radiate_creeper.json @@ -0,0 +1,162 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gunpowder", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:uranium", + "weight": 100 + }, + { + "type": "minecraft:item", + "name": "decisland:high_concentration_uranium", + "weight": 20 + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:music_disc_13" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_cat" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_blocks" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_chirp" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_far" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_mall" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_mellohi" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_stal" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_strad" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_ward" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_11" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_wait" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:music_disc_13" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_cat" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_blocks" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_chirp" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_far" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_mall" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_mellohi" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_stal" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_strad" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_ward" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_11" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_wait" + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/radiate_enderman.json b/src/main/resources/data/decisland/loot_table/entities/radiate_enderman.json new file mode 100644 index 0000000..85872c8 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/radiate_enderman.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ender_pearl", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/radiate_skeleton.json b/src/main/resources/data/decisland/loot_table/entities/radiate_skeleton.json new file mode 100644 index 0000000..8cc1a06 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/radiate_skeleton.json @@ -0,0 +1,56 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:uranium", + "weight": 100 + }, + { + "type": "minecraft:item", + "name": "decisland:high_concentration_uranium", + "weight": 20 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/radiate_spider.json b/src/main/resources/data/decisland/loot_table/entities/radiate_spider.json new file mode 100644 index 0000000..4186a58 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/radiate_spider.json @@ -0,0 +1,78 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:string", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:spider_eye", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:uranium", + "weight": 100 + }, + { + "type": "minecraft:item", + "name": "decisland:high_concentration_uranium", + "weight": 20 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/rumorer.json b/src/main/resources/data/decisland/loot_table/entities/rumorer.json new file mode 100644 index 0000000..76a15d2 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/rumorer.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:small_stone", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:leather", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/sardine.json b/src/main/resources/data/decisland/loot_table/entities/sardine.json new file mode 100644 index 0000000..04d2444 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/sardine.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:sardine", + "weight": 1 + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.25 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/saucer.json b/src/main/resources/data/decisland/loot_table/entities/saucer.json new file mode 100644 index 0000000..47e00cc --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/saucer.json @@ -0,0 +1,68 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 5 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:glass", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/sea_urchin.json b/src/main/resources/data/decisland/loot_table/entities/sea_urchin.json new file mode 100644 index 0000000..e7951a7 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/sea_urchin.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:sea_urchin", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:pollution_algae", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/shadow_of_deep.json b/src/main/resources/data/decisland/loot_table/entities/shadow_of_deep.json new file mode 100644 index 0000000..2ab3e30 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/shadow_of_deep.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:mind_controller", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/shadow_skeleton.json b/src/main/resources/data/decisland/loot_table/entities/shadow_skeleton.json new file mode 100644 index 0000000..753548f --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/shadow_skeleton.json @@ -0,0 +1,81 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:arrow", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ender_bone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/shadow_zombie.json b/src/main/resources/data/decisland/loot_table/entities/shadow_zombie.json new file mode 100644 index 0000000..813aa53 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/shadow_zombie.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/simple_glider.json b/src/main/resources/data/decisland/loot_table/entities/simple_glider.json new file mode 100644 index 0000000..6f01e98 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/simple_glider.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:steel_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 3, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:flint_and_steel", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 5 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:minecart", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/skeleton_wizard.json b/src/main/resources/data/decisland/loot_table/entities/skeleton_wizard.json new file mode 100644 index 0000000..4fe8309 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/skeleton_wizard.json @@ -0,0 +1,54 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:copper_ingot", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 99, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/soul_blaze.json b/src/main/resources/data/decisland/loot_table/entities/soul_blaze.json new file mode 100644 index 0000000..d0b0216 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/soul_blaze.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:soul_blaze_rod", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/soul_insect.json b/src/main/resources/data/decisland/loot_table/entities/soul_insect.json new file mode 100644 index 0000000..735699d --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/soul_insect.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:soul", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/soul_soldier.json b/src/main/resources/data/decisland/loot_table/entities/soul_soldier.json new file mode 100644 index 0000000..735699d --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/soul_soldier.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:soul", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/star.json b/src/main/resources/data/decisland/loot_table/entities/star.json new file mode 100644 index 0000000..d7ad255 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/star.json @@ -0,0 +1,43 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:star_debris", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:ash", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/stone_golem.json b/src/main/resources/data/decisland/loot_table/entities/stone_golem.json new file mode 100644 index 0000000..104517c --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/stone_golem.json @@ -0,0 +1,149 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobblestone", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 10, + "max": 20 + } + } + ] + } + ] + }, + { + "rolls": { + "min": 1, + "max": 3 + }, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:coal_nugget", + "weight": 12, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_nugget", + "weight": 8, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_nugget", + "weight": 4, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:diamond_nugget", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:coal_ore", + "weight": 11, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ore", + "weight": 7, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 4 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ore", + "weight": 3, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond_ore", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:poppy", + "weight": 2 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/swamp_drowned.json b/src/main/resources/data/decisland/loot_table/entities/swamp_drowned.json new file mode 100644 index 0000000..8547402 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/swamp_drowned.json @@ -0,0 +1,81 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:zombie_brain", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.25 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:pollution_algae", + "weight": 7 + }, + { + "type": "minecraft:item", + "name": "minecraft:vine", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:lily_pad", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "decisland:rice", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 4 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/swamp_golem.json b/src/main/resources/data/decisland/loot_table/entities/swamp_golem.json new file mode 100644 index 0000000..c303402 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/swamp_golem.json @@ -0,0 +1,85 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rotten_flesh", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 2, + "max": 5 + } + } + ] + } + ] + }, + { + "rolls": 2, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:pollution_algae", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 2 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:vine", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 7 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:lily_pad", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 7 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:rice", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 7 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/tnt_creeper.json b/src/main/resources/data/decisland/loot_table/entities/tnt_creeper.json new file mode 100644 index 0000000..31db3d4 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/tnt_creeper.json @@ -0,0 +1,44 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:gunpowder", + "weight": 1, + "functions": [ + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 3 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.25 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:tnt", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/tnt_snow_man.json b/src/main/resources/data/decisland/loot_table/entities/tnt_snow_man.json new file mode 100644 index 0000000..49edb58 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/tnt_snow_man.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:snowball", + "weight": 19, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 3 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:tnt", + "weight": 1 + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/vampire_bat.json b/src/main/resources/data/decisland/loot_table/entities/vampire_bat.json new file mode 100644 index 0000000..35b10da --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/vampire_bat.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "decisland:bat_wing", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/loot_table/entities/warped_skeleton.json b/src/main/resources/data/decisland/loot_table/entities/warped_skeleton.json new file mode 100644 index 0000000..3f552d5 --- /dev/null +++ b/src/main/resources/data/decisland/loot_table/entities/warped_skeleton.json @@ -0,0 +1,115 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 36, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "decisland:wither_substance", + "weight": 2, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:twisting_vines", + "weight": 20, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 1 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:bone", + "weight": 36, + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 0, + "max": 2 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "min": 0, + "max": 1 + } + } + ] + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance", + "chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:skeleton_skull", + "weight": 1, + "functions": [] + } + ] + } + ] +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/ash_blaze_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/ash_blaze_spawns.json new file mode 100644 index 0000000..c86f768 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/ash_blaze_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_ash_blaze", + "spawners": { + "type": "decisland:ash_blaze", + "weight": 10, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/ash_pufferfish_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/ash_pufferfish_spawns.json new file mode 100644 index 0000000..70ddfac --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/ash_pufferfish_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_ash_pufferfish", + "spawners": { + "type": "decisland:ash_pufferfish", + "weight": 2, + "minCount": 2, + "maxCount": 4 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/bomber_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/bomber_spawns.json new file mode 100644 index 0000000..61fc4e7 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/bomber_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_bomber", + "spawners": { + "type": "decisland:bomber", + "weight": 1, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/brown_bear_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/brown_bear_spawns.json new file mode 100644 index 0000000..c388033 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/brown_bear_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_brown_bear", + "spawners": { + "type": "decisland:brown_bear", + "weight": 5, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/carnager_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/carnager_spawns.json new file mode 100644 index 0000000..729c259 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/carnager_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_carnager", + "spawners": { + "type": "decisland:carnager", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/chest_monster_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/chest_monster_spawns.json new file mode 100644 index 0000000..9476806 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/chest_monster_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_chest_monster", + "spawners": { + "type": "decisland:chest_monster", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/clam_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/clam_spawns.json new file mode 100644 index 0000000..dd038a2 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/clam_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_clam", + "spawners": { + "type": "decisland:clam", + "weight": 100, + "minCount": 1, + "maxCount": 3 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/crab_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/crab_spawns.json new file mode 100644 index 0000000..3b4d47b --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/crab_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_crab", + "spawners": { + "type": "decisland:crab", + "weight": 40, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/crimson_slime_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/crimson_slime_spawns.json new file mode 100644 index 0000000..939526a --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/crimson_slime_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_crimson_slime", + "spawners": { + "type": "decisland:crimson_slime", + "weight": 6, + "minCount": 1, + "maxCount": 4 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/dark_snow_man_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/dark_snow_man_spawns.json new file mode 100644 index 0000000..5909617 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/dark_snow_man_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_dark_snow_man", + "spawners": { + "type": "decisland:dark_snow_man", + "weight": 1, + "minCount": 1, + "maxCount": 3 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/ender_snail_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/ender_snail_spawns.json new file mode 100644 index 0000000..c297700 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/ender_snail_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_ender_snail", + "spawners": { + "type": "decisland:ender_snail", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/ender_snake_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/ender_snake_spawns.json new file mode 100644 index 0000000..e3fa793 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/ender_snake_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_ender_snake", + "spawners": { + "type": "decisland:ender_snake", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/frozen_spider_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/frozen_spider_spawns.json new file mode 100644 index 0000000..e94b862 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/frozen_spider_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_frozen_spider", + "spawners": { + "type": "decisland:frozen_spider", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/goblin_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/goblin_spawns.json new file mode 100644 index 0000000..a751d21 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/goblin_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_goblin", + "spawners": { + "type": "decisland:goblin", + "weight": 2, + "minCount": 4, + "maxCount": 4 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/ice_zombie_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/ice_zombie_spawns.json new file mode 100644 index 0000000..f68b4c5 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/ice_zombie_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_ice_zombie", + "spawners": { + "type": "decisland:ice_zombie", + "weight": 150, + "minCount": 2, + "maxCount": 4 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/illusioner_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/illusioner_spawns.json new file mode 100644 index 0000000..c038d0a --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/illusioner_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_illusioner", + "spawners": { + "type": "decisland:illusioner", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/jungle_spider_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/jungle_spider_spawns.json new file mode 100644 index 0000000..7c99a62 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/jungle_spider_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_jungle_spider", + "spawners": { + "type": "decisland:jungle_spider", + "weight": 200, + "minCount": 4, + "maxCount": 4 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/lava_lizard_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/lava_lizard_spawns.json new file mode 100644 index 0000000..e5a0643 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/lava_lizard_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_lava_lizard", + "spawners": { + "type": "decisland:lava_lizard", + "weight": 2, + "minCount": 1, + "maxCount": 3 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/life_insect_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/life_insect_spawns.json new file mode 100644 index 0000000..a81a430 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/life_insect_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_life_insect", + "spawners": { + "type": "decisland:life_insect", + "weight": 3, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/mummy_skeleton_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/mummy_skeleton_spawns.json new file mode 100644 index 0000000..fc6886e --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/mummy_skeleton_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_mummy_skeleton", + "spawners": { + "type": "decisland:mummy_skeleton", + "weight": 80, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/mummy_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/mummy_spawns.json new file mode 100644 index 0000000..36d4a19 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/mummy_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_mummy", + "spawners": { + "type": "decisland:mummy", + "weight": 180, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/murloc_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/murloc_spawns.json new file mode 100644 index 0000000..3c6b71c --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/murloc_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_murloc", + "spawners": { + "type": "decisland:murloc", + "weight": 1, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/mushroom_zombie_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/mushroom_zombie_spawns.json new file mode 100644 index 0000000..c7525cb --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/mushroom_zombie_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_mushroom_zombie", + "spawners": { + "type": "decisland:mushroom_zombie", + "weight": 3, + "minCount": 4, + "maxCount": 4 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/mystical_skeleton_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/mystical_skeleton_spawns.json new file mode 100644 index 0000000..daf92e0 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/mystical_skeleton_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_mystical_skeleton", + "spawners": { + "type": "decisland:mystical_skeleton", + "weight": 10, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/nautilus_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/nautilus_spawns.json new file mode 100644 index 0000000..f73a819 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/nautilus_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_nautilus", + "spawners": { + "type": "decisland:nautilus", + "weight": 2, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/nether_creeper_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_creeper_spawns.json new file mode 100644 index 0000000..0932c9a --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_creeper_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_nether_creeper", + "spawners": { + "type": "decisland:nether_creeper", + "weight": 20, + "minCount": 1, + "maxCount": 3 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/nether_golem_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_golem_spawns.json new file mode 100644 index 0000000..b558581 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_golem_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_nether_golem", + "spawners": { + "type": "decisland:nether_golem", + "weight": 2, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/nether_phantom_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_phantom_spawns.json new file mode 100644 index 0000000..8376b71 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_phantom_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_nether_phantom", + "spawners": { + "type": "decisland:nether_phantom", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/nether_skeleton_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_skeleton_spawns.json new file mode 100644 index 0000000..07ef80b --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/nether_skeleton_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_nether_skeleton", + "spawners": { + "type": "decisland:nether_skeleton", + "weight": 10, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/obsidian_golem_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/obsidian_golem_spawns.json new file mode 100644 index 0000000..9bd82c8 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/obsidian_golem_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_obsidian_golem", + "spawners": { + "type": "decisland:obsidian_golem", + "weight": 5, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/polar_wolf_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/polar_wolf_spawns.json new file mode 100644 index 0000000..097b291 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/polar_wolf_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_polar_wolf", + "spawners": { + "type": "decisland:polar_wolf", + "weight": 2, + "minCount": 1, + "maxCount": 3 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/pumpkin_slime_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/pumpkin_slime_spawns.json new file mode 100644 index 0000000..74ce270 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/pumpkin_slime_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_pumpkin_slime", + "spawners": { + "type": "decisland:pumpkin_slime", + "weight": 2, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/rumorer_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/rumorer_spawns.json new file mode 100644 index 0000000..d870d71 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/rumorer_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_rumorer", + "spawners": { + "type": "decisland:rumorer", + "weight": 2, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/sardine_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/sardine_spawns.json new file mode 100644 index 0000000..33e824d --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/sardine_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_sardine", + "spawners": { + "type": "decisland:sardine", + "weight": 2, + "minCount": 2, + "maxCount": 3 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/saucer_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/saucer_spawns.json new file mode 100644 index 0000000..eb23396 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/saucer_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_saucer", + "spawners": { + "type": "decisland:saucer", + "weight": 5, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/sea_urchin_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/sea_urchin_spawns.json new file mode 100644 index 0000000..ad7e588 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/sea_urchin_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_sea_urchin", + "spawners": { + "type": "decisland:sea_urchin", + "weight": 50, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/shadow_of_sea_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/shadow_of_sea_spawns.json new file mode 100644 index 0000000..63fbc52 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/shadow_of_sea_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_shadow_of_sea", + "spawners": { + "type": "decisland:shadow_of_sea", + "weight": 1, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/soul_blaze_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_blaze_spawns.json new file mode 100644 index 0000000..715e694 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_blaze_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_soul_blaze", + "spawners": { + "type": "decisland:soul_blaze", + "weight": 2, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/soul_insect_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_insect_spawns.json new file mode 100644 index 0000000..f01235c --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_insect_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_soul_insect", + "spawners": { + "type": "decisland:soul_insect", + "weight": 10, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/soul_skeleton_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_skeleton_spawns.json new file mode 100644 index 0000000..b82674d --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_skeleton_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_soul_skeleton", + "spawners": { + "type": "decisland:soul_skeleton", + "weight": 5, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/soul_zombie_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_zombie_spawns.json new file mode 100644 index 0000000..e7e70d5 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/soul_zombie_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_soul_zombie", + "spawners": { + "type": "decisland:soul_zombie", + "weight": 40, + "minCount": 1, + "maxCount": 3 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/star_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/star_spawns.json new file mode 100644 index 0000000..403caed --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/star_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_star", + "spawners": { + "type": "decisland:star", + "weight": 2, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/stone_golem_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/stone_golem_spawns.json new file mode 100644 index 0000000..feb09b2 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/stone_golem_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_stone_golem", + "spawners": { + "type": "decisland:stone_golem", + "weight": 15, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/swamp_drowned_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/swamp_drowned_spawns.json new file mode 100644 index 0000000..593e5c5 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/swamp_drowned_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_swamp_drowned", + "spawners": { + "type": "decisland:swamp_drowned", + "weight": 10, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/swamp_golem_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/swamp_golem_spawns.json new file mode 100644 index 0000000..0e9e91b --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/swamp_golem_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_swamp_golem", + "spawners": { + "type": "decisland:swamp_golem", + "weight": 2, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/vampire_bat_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/vampire_bat_spawns.json new file mode 100644 index 0000000..850bafc --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/vampire_bat_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_vampire_bat", + "spawners": { + "type": "decisland:vampire_bat", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/warped_skeleton_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/warped_skeleton_spawns.json new file mode 100644 index 0000000..4db0dd2 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/warped_skeleton_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_warped_skeleton", + "spawners": { + "type": "decisland:warped_skeleton", + "weight": 1, + "minCount": 1, + "maxCount": 1 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/werewolf_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/werewolf_spawns.json new file mode 100644 index 0000000..b16bd63 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/werewolf_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_werewolf", + "spawners": { + "type": "decisland:werewolf", + "weight": 10, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/zombie_fish_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/zombie_fish_spawns.json new file mode 100644 index 0000000..e02718b --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/zombie_fish_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_zombie_fish", + "spawners": { + "type": "decisland:zombie_fish", + "weight": 3, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/neoforge/biome_modifier/zombie_warrior_spawns.json b/src/main/resources/data/decisland/neoforge/biome_modifier/zombie_warrior_spawns.json new file mode 100644 index 0000000..4a1f497 --- /dev/null +++ b/src/main/resources/data/decisland/neoforge/biome_modifier/zombie_warrior_spawns.json @@ -0,0 +1,10 @@ +{ + "type": "neoforge:add_spawns", + "biomes": "#decisland:spawns_zombie_warrior", + "spawners": { + "type": "decisland:zombie_warrior", + "weight": 20, + "minCount": 1, + "maxCount": 2 + } +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ash_blaze.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ash_blaze.json new file mode 100644 index 0000000..2fd3945 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ash_blaze.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:basalt_deltas" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ash_pufferfish.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ash_pufferfish.json new file mode 100644 index 0000000..ea74d27 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ash_pufferfish.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_bomber.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_bomber.json new file mode 100644 index 0000000..c4551d6 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_bomber.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:nether_wastes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_brown_bear.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_brown_bear.json new file mode 100644 index 0000000..d468b9c --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_brown_bear.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:taiga", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_carnager.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_carnager.json new file mode 100644 index 0000000..d468b9c --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_carnager.json @@ -0,0 +1,8 @@ +{ + "values": [ + "minecraft:taiga", + "minecraft:snowy_taiga", + "minecraft:old_growth_pine_taiga", + "minecraft:old_growth_spruce_taiga" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_chest_monster.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_chest_monster.json new file mode 100644 index 0000000..d6c7597 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_chest_monster.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:deep_dark" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_clam.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_clam.json new file mode 100644 index 0000000..ea74d27 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_clam.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_crab.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_crab.json new file mode 100644 index 0000000..ea74d27 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_crab.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_crimson_slime.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_crimson_slime.json new file mode 100644 index 0000000..ea208d8 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_crimson_slime.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:crimson_forest" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_dark_snow_man.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_dark_snow_man.json new file mode 100644 index 0000000..4199b17 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_dark_snow_man.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:snowy_taiga", + "minecraft:frozen_peaks", + "minecraft:snowy_slopes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ender_snail.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ender_snail.json new file mode 100644 index 0000000..af4582a --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ender_snail.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:the_end", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:small_end_islands", + "minecraft:end_barrens" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ender_snake.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ender_snake.json new file mode 100644 index 0000000..af4582a --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ender_snake.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:the_end", + "minecraft:end_highlands", + "minecraft:end_midlands", + "minecraft:small_end_islands", + "minecraft:end_barrens" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_frozen_spider.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_frozen_spider.json new file mode 100644 index 0000000..4199b17 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_frozen_spider.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:snowy_taiga", + "minecraft:frozen_peaks", + "minecraft:snowy_slopes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_goblin.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_goblin.json new file mode 100644 index 0000000..9f299d7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_goblin.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:plains", + "minecraft:forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:taiga", + "minecraft:desert", + "minecraft:savanna", + "minecraft:swamp", + "minecraft:snowy_plains", + "minecraft:windswept_hills" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ice_zombie.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ice_zombie.json new file mode 100644 index 0000000..4199b17 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_ice_zombie.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:snowy_taiga", + "minecraft:frozen_peaks", + "minecraft:snowy_slopes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_illusioner.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_illusioner.json new file mode 100644 index 0000000..161c166 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_illusioner.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:jungle", + "minecraft:bamboo_jungle", + "minecraft:sparse_jungle" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_jungle_spider.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_jungle_spider.json new file mode 100644 index 0000000..161c166 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_jungle_spider.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:jungle", + "minecraft:bamboo_jungle", + "minecraft:sparse_jungle" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_lava_lizard.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_lava_lizard.json new file mode 100644 index 0000000..215070d --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_lava_lizard.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:nether_wastes", + "minecraft:crimson_forest", + "minecraft:warped_forest", + "minecraft:soul_sand_valley", + "minecraft:basalt_deltas" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_life_insect.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_life_insect.json new file mode 100644 index 0000000..c4551d6 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_life_insect.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:nether_wastes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mummy.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mummy.json new file mode 100644 index 0000000..e9f9763 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mummy.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:desert" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mummy_skeleton.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mummy_skeleton.json new file mode 100644 index 0000000..e9f9763 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mummy_skeleton.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:desert" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_murloc.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_murloc.json new file mode 100644 index 0000000..ea74d27 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_murloc.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mushroom_zombie.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mushroom_zombie.json new file mode 100644 index 0000000..e9a7560 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mushroom_zombie.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:mushroom_fields" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mystical_skeleton.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mystical_skeleton.json new file mode 100644 index 0000000..161c166 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_mystical_skeleton.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:jungle", + "minecraft:bamboo_jungle", + "minecraft:sparse_jungle" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nautilus.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nautilus.json new file mode 100644 index 0000000..ea74d27 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nautilus.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_creeper.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_creeper.json new file mode 100644 index 0000000..c4551d6 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_creeper.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:nether_wastes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_golem.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_golem.json new file mode 100644 index 0000000..c4551d6 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_golem.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:nether_wastes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_phantom.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_phantom.json new file mode 100644 index 0000000..c4551d6 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_phantom.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:nether_wastes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_skeleton.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_skeleton.json new file mode 100644 index 0000000..c4551d6 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_nether_skeleton.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:nether_wastes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_obsidian_golem.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_obsidian_golem.json new file mode 100644 index 0000000..9f299d7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_obsidian_golem.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:plains", + "minecraft:forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:taiga", + "minecraft:desert", + "minecraft:savanna", + "minecraft:swamp", + "minecraft:snowy_plains", + "minecraft:windswept_hills" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_polar_wolf.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_polar_wolf.json new file mode 100644 index 0000000..4199b17 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_polar_wolf.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:frozen_river", + "minecraft:snowy_plains", + "minecraft:ice_spikes", + "minecraft:snowy_taiga", + "minecraft:frozen_peaks", + "minecraft:snowy_slopes" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_pumpkin_slime.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_pumpkin_slime.json new file mode 100644 index 0000000..c43ea30 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_pumpkin_slime.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_rumorer.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_rumorer.json new file mode 100644 index 0000000..c43ea30 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_rumorer.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_sardine.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_sardine.json new file mode 100644 index 0000000..d370f1a --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_sardine.json @@ -0,0 +1,16 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean", + "minecraft:desert", + "minecraft:jungle", + "minecraft:savanna" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_saucer.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_saucer.json new file mode 100644 index 0000000..5d0508a --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_saucer.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:windswept_hills", + "minecraft:windswept_gravelly_hills", + "minecraft:windswept_forest", + "minecraft:jagged_peaks", + "minecraft:frozen_peaks", + "minecraft:stony_peaks", + "minecraft:snowy_slopes", + "minecraft:meadow", + "minecraft:grove" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_sea_urchin.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_sea_urchin.json new file mode 100644 index 0000000..ea74d27 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_sea_urchin.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_shadow_of_sea.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_shadow_of_sea.json new file mode 100644 index 0000000..ea74d27 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_shadow_of_sea.json @@ -0,0 +1,13 @@ +{ + "values": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_blaze.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_blaze.json new file mode 100644 index 0000000..6e221c7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_blaze.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:soul_sand_valley" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_insect.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_insect.json new file mode 100644 index 0000000..6e221c7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_insect.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:soul_sand_valley" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_skeleton.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_skeleton.json new file mode 100644 index 0000000..6e221c7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_skeleton.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:soul_sand_valley" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_zombie.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_zombie.json new file mode 100644 index 0000000..6e221c7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_soul_zombie.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:soul_sand_valley" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_star.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_star.json new file mode 100644 index 0000000..2fd3945 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_star.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:basalt_deltas" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_stone_golem.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_stone_golem.json new file mode 100644 index 0000000..9f299d7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_stone_golem.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:plains", + "minecraft:forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:taiga", + "minecraft:desert", + "minecraft:savanna", + "minecraft:swamp", + "minecraft:snowy_plains", + "minecraft:windswept_hills" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_swamp_drowned.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_swamp_drowned.json new file mode 100644 index 0000000..c43ea30 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_swamp_drowned.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_swamp_golem.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_swamp_golem.json new file mode 100644 index 0000000..c43ea30 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_swamp_golem.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:swamp", + "minecraft:mangrove_swamp" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_vampire_bat.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_vampire_bat.json new file mode 100644 index 0000000..9f299d7 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_vampire_bat.json @@ -0,0 +1,14 @@ +{ + "values": [ + "minecraft:plains", + "minecraft:forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:taiga", + "minecraft:desert", + "minecraft:savanna", + "minecraft:swamp", + "minecraft:snowy_plains", + "minecraft:windswept_hills" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_warped_skeleton.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_warped_skeleton.json new file mode 100644 index 0000000..715b16c --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_warped_skeleton.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:warped_forest" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_werewolf.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_werewolf.json new file mode 100644 index 0000000..cbce588 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_werewolf.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:badlands", + "minecraft:wooded_badlands", + "minecraft:eroded_badlands" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_zombie_fish.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_zombie_fish.json new file mode 100644 index 0000000..222b9d1 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_zombie_fish.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:river", + "minecraft:frozen_river", + "minecraft:jungle", + "minecraft:bamboo_jungle", + "minecraft:sparse_jungle" + ] +} diff --git a/src/main/resources/data/decisland/tags/worldgen/biome/spawns_zombie_warrior.json b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_zombie_warrior.json new file mode 100644 index 0000000..cc2f7a1 --- /dev/null +++ b/src/main/resources/data/decisland/tags/worldgen/biome/spawns_zombie_warrior.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:plains", + "minecraft:forest", + "minecraft:birch_forest", + "minecraft:dark_forest", + "minecraft:taiga", + "minecraft:snowy_plains" + ] +} diff --git a/src/main/resources/data/minecraft/tags/entity_type/can_breathe_under_water.json b/src/main/resources/data/minecraft/tags/entity_type/can_breathe_under_water.json new file mode 100644 index 0000000..47861ff --- /dev/null +++ b/src/main/resources/data/minecraft/tags/entity_type/can_breathe_under_water.json @@ -0,0 +1,16 @@ +{ + "values": [ + "decisland:ash_pufferfish", + "decisland:clam", + "decisland:crab", + "decisland:mushroom_monster", + "decisland:nautilus", + "decisland:sardine", + "decisland:sea_urchin", + "decisland:shadow_of_sea", + "decisland:soul_insect", + "decisland:swamp_drowned", + "decisland:swamp_golem", + "decisland:zombie_fish" + ] +} diff --git a/src/main/resources/data/minecraft/tags/entity_type/ignores_poison_and_regen.json b/src/main/resources/data/minecraft/tags/entity_type/ignores_poison_and_regen.json new file mode 100644 index 0000000..3830142 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/entity_type/ignores_poison_and_regen.json @@ -0,0 +1,59 @@ +{ + "values": [ + "decisland:ash_horse", + "decisland:ash_horse_head", + "decisland:ash_knight", + "decisland:ash_knight_head", + "decisland:ash_sword", + "decisland:ash_sword_phantom", + "decisland:baby_ender_dragon", + "decisland:blood_zombie", + "decisland:bomber", + "decisland:chest_monster", + "decisland:dark_werewolf", + "decisland:elf_of_ash", + "decisland:elf_of_chaos", + "decisland:enchant_armor", + "decisland:enchant_armor_by_boss", + "decisland:enchant_diamond_armor", + "decisland:entity_soul", + "decisland:entity_soul_1", + "decisland:gingerbread_man_by_totem", + "decisland:ice_zombie", + "decisland:illusion_zombie", + "decisland:lurk_skeleton", + "decisland:lurk_zombie", + "decisland:mummy", + "decisland:mummy_skeleton", + "decisland:mushroom_zombie", + "decisland:mystical_skeleton", + "decisland:nether_phantom", + "decisland:nether_skeleton", + "decisland:nether_skeleton_wizard", + "decisland:player_ghost", + "decisland:radiate_skeleton", + "decisland:real_soul", + "decisland:rumorer", + "decisland:shadow_archer", + "decisland:shadow_of_sea", + "decisland:shadow_skeleton", + "decisland:shadow_skeleton_puppet", + "decisland:shadow_zombie", + "decisland:shadow_zombie_puppet", + "decisland:skeleton_assassin", + "decisland:skeleton_knight", + "decisland:skeleton_knight_commander", + "decisland:skeleton_warrior", + "decisland:skeleton_wizard", + "decisland:soldier", + "decisland:soul", + "decisland:soul_skeleton", + "decisland:soul_zombie", + "decisland:swamp_drowned", + "decisland:vengeful_ghost", + "decisland:warped_skeleton", + "decisland:watcher", + "decisland:werewolf", + "decisland:zombie_summoner" + ] +} diff --git a/src/main/resources/data/minecraft/tags/entity_type/inverted_healing_and_harm.json b/src/main/resources/data/minecraft/tags/entity_type/inverted_healing_and_harm.json new file mode 100644 index 0000000..3830142 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/entity_type/inverted_healing_and_harm.json @@ -0,0 +1,59 @@ +{ + "values": [ + "decisland:ash_horse", + "decisland:ash_horse_head", + "decisland:ash_knight", + "decisland:ash_knight_head", + "decisland:ash_sword", + "decisland:ash_sword_phantom", + "decisland:baby_ender_dragon", + "decisland:blood_zombie", + "decisland:bomber", + "decisland:chest_monster", + "decisland:dark_werewolf", + "decisland:elf_of_ash", + "decisland:elf_of_chaos", + "decisland:enchant_armor", + "decisland:enchant_armor_by_boss", + "decisland:enchant_diamond_armor", + "decisland:entity_soul", + "decisland:entity_soul_1", + "decisland:gingerbread_man_by_totem", + "decisland:ice_zombie", + "decisland:illusion_zombie", + "decisland:lurk_skeleton", + "decisland:lurk_zombie", + "decisland:mummy", + "decisland:mummy_skeleton", + "decisland:mushroom_zombie", + "decisland:mystical_skeleton", + "decisland:nether_phantom", + "decisland:nether_skeleton", + "decisland:nether_skeleton_wizard", + "decisland:player_ghost", + "decisland:radiate_skeleton", + "decisland:real_soul", + "decisland:rumorer", + "decisland:shadow_archer", + "decisland:shadow_of_sea", + "decisland:shadow_skeleton", + "decisland:shadow_skeleton_puppet", + "decisland:shadow_zombie", + "decisland:shadow_zombie_puppet", + "decisland:skeleton_assassin", + "decisland:skeleton_knight", + "decisland:skeleton_knight_commander", + "decisland:skeleton_warrior", + "decisland:skeleton_wizard", + "decisland:soldier", + "decisland:soul", + "decisland:soul_skeleton", + "decisland:soul_zombie", + "decisland:swamp_drowned", + "decisland:vengeful_ghost", + "decisland:warped_skeleton", + "decisland:watcher", + "decisland:werewolf", + "decisland:zombie_summoner" + ] +} diff --git a/src/main/resources/data/minecraft/tags/entity_type/sensitive_to_smite.json b/src/main/resources/data/minecraft/tags/entity_type/sensitive_to_smite.json new file mode 100644 index 0000000..3830142 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/entity_type/sensitive_to_smite.json @@ -0,0 +1,59 @@ +{ + "values": [ + "decisland:ash_horse", + "decisland:ash_horse_head", + "decisland:ash_knight", + "decisland:ash_knight_head", + "decisland:ash_sword", + "decisland:ash_sword_phantom", + "decisland:baby_ender_dragon", + "decisland:blood_zombie", + "decisland:bomber", + "decisland:chest_monster", + "decisland:dark_werewolf", + "decisland:elf_of_ash", + "decisland:elf_of_chaos", + "decisland:enchant_armor", + "decisland:enchant_armor_by_boss", + "decisland:enchant_diamond_armor", + "decisland:entity_soul", + "decisland:entity_soul_1", + "decisland:gingerbread_man_by_totem", + "decisland:ice_zombie", + "decisland:illusion_zombie", + "decisland:lurk_skeleton", + "decisland:lurk_zombie", + "decisland:mummy", + "decisland:mummy_skeleton", + "decisland:mushroom_zombie", + "decisland:mystical_skeleton", + "decisland:nether_phantom", + "decisland:nether_skeleton", + "decisland:nether_skeleton_wizard", + "decisland:player_ghost", + "decisland:radiate_skeleton", + "decisland:real_soul", + "decisland:rumorer", + "decisland:shadow_archer", + "decisland:shadow_of_sea", + "decisland:shadow_skeleton", + "decisland:shadow_skeleton_puppet", + "decisland:shadow_zombie", + "decisland:shadow_zombie_puppet", + "decisland:skeleton_assassin", + "decisland:skeleton_knight", + "decisland:skeleton_knight_commander", + "decisland:skeleton_warrior", + "decisland:skeleton_wizard", + "decisland:soldier", + "decisland:soul", + "decisland:soul_skeleton", + "decisland:soul_zombie", + "decisland:swamp_drowned", + "decisland:vengeful_ghost", + "decisland:warped_skeleton", + "decisland:watcher", + "decisland:werewolf", + "decisland:zombie_summoner" + ] +} diff --git a/src/main/resources/data/minecraft/tags/entity_type/undead.json b/src/main/resources/data/minecraft/tags/entity_type/undead.json new file mode 100644 index 0000000..3830142 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/entity_type/undead.json @@ -0,0 +1,59 @@ +{ + "values": [ + "decisland:ash_horse", + "decisland:ash_horse_head", + "decisland:ash_knight", + "decisland:ash_knight_head", + "decisland:ash_sword", + "decisland:ash_sword_phantom", + "decisland:baby_ender_dragon", + "decisland:blood_zombie", + "decisland:bomber", + "decisland:chest_monster", + "decisland:dark_werewolf", + "decisland:elf_of_ash", + "decisland:elf_of_chaos", + "decisland:enchant_armor", + "decisland:enchant_armor_by_boss", + "decisland:enchant_diamond_armor", + "decisland:entity_soul", + "decisland:entity_soul_1", + "decisland:gingerbread_man_by_totem", + "decisland:ice_zombie", + "decisland:illusion_zombie", + "decisland:lurk_skeleton", + "decisland:lurk_zombie", + "decisland:mummy", + "decisland:mummy_skeleton", + "decisland:mushroom_zombie", + "decisland:mystical_skeleton", + "decisland:nether_phantom", + "decisland:nether_skeleton", + "decisland:nether_skeleton_wizard", + "decisland:player_ghost", + "decisland:radiate_skeleton", + "decisland:real_soul", + "decisland:rumorer", + "decisland:shadow_archer", + "decisland:shadow_of_sea", + "decisland:shadow_skeleton", + "decisland:shadow_skeleton_puppet", + "decisland:shadow_zombie", + "decisland:shadow_zombie_puppet", + "decisland:skeleton_assassin", + "decisland:skeleton_knight", + "decisland:skeleton_knight_commander", + "decisland:skeleton_warrior", + "decisland:skeleton_wizard", + "decisland:soldier", + "decisland:soul", + "decisland:soul_skeleton", + "decisland:soul_zombie", + "decisland:swamp_drowned", + "decisland:vengeful_ghost", + "decisland:warped_skeleton", + "decisland:watcher", + "decisland:werewolf", + "decisland:zombie_summoner" + ] +} diff --git a/src/main/resources/data/minecraft/tags/entity_type/wither_friends.json b/src/main/resources/data/minecraft/tags/entity_type/wither_friends.json new file mode 100644 index 0000000..3830142 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/entity_type/wither_friends.json @@ -0,0 +1,59 @@ +{ + "values": [ + "decisland:ash_horse", + "decisland:ash_horse_head", + "decisland:ash_knight", + "decisland:ash_knight_head", + "decisland:ash_sword", + "decisland:ash_sword_phantom", + "decisland:baby_ender_dragon", + "decisland:blood_zombie", + "decisland:bomber", + "decisland:chest_monster", + "decisland:dark_werewolf", + "decisland:elf_of_ash", + "decisland:elf_of_chaos", + "decisland:enchant_armor", + "decisland:enchant_armor_by_boss", + "decisland:enchant_diamond_armor", + "decisland:entity_soul", + "decisland:entity_soul_1", + "decisland:gingerbread_man_by_totem", + "decisland:ice_zombie", + "decisland:illusion_zombie", + "decisland:lurk_skeleton", + "decisland:lurk_zombie", + "decisland:mummy", + "decisland:mummy_skeleton", + "decisland:mushroom_zombie", + "decisland:mystical_skeleton", + "decisland:nether_phantom", + "decisland:nether_skeleton", + "decisland:nether_skeleton_wizard", + "decisland:player_ghost", + "decisland:radiate_skeleton", + "decisland:real_soul", + "decisland:rumorer", + "decisland:shadow_archer", + "decisland:shadow_of_sea", + "decisland:shadow_skeleton", + "decisland:shadow_skeleton_puppet", + "decisland:shadow_zombie", + "decisland:shadow_zombie_puppet", + "decisland:skeleton_assassin", + "decisland:skeleton_knight", + "decisland:skeleton_knight_commander", + "decisland:skeleton_warrior", + "decisland:skeleton_wizard", + "decisland:soldier", + "decisland:soul", + "decisland:soul_skeleton", + "decisland:soul_zombie", + "decisland:swamp_drowned", + "decisland:vengeful_ghost", + "decisland:warped_skeleton", + "decisland:watcher", + "decisland:werewolf", + "decisland:zombie_summoner" + ] +} diff --git a/tools/entity_port/client_spec.json b/tools/entity_port/client_spec.json new file mode 100644 index 0000000..a466eed --- /dev/null +++ b/tools/entity_port/client_spec.json @@ -0,0 +1,1762 @@ +[ + { + "name": "abyssal_controller", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "abyssal_shadow", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "angry_chicken", + "kind": "vanilla", + "sup": "Chicken", + "ren": "ChickenRenderer", + "renParam": "Chicken", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "archer", + "kind": "vanilla", + "sup": "Pillager", + "ren": "PillagerRenderer", + "renParam": "Pillager", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ash_blaze", + "kind": "vanilla", + "sup": "Blaze", + "ren": "BlazeRenderer", + "renParam": "Blaze", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ash_bomb", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ash_horse", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ash_horse_head", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ash_knight", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ash_knight_head", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ash_pufferfish", + "kind": "vanilla", + "sup": "Cod", + "ren": "CodRenderer", + "renParam": "Cod", + "renPkg": "animal", + "renGeneric": null, + "scale": 1.2, + "texOverride": true + }, + { + "name": "ash_sword", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ash_sword_phantom", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "baby_ender_dragon", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "bat_charger", + "kind": "vanilla", + "sup": "Bat", + "ren": "BatRenderer", + "renParam": "Bat", + "renPkg": "ambient", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "blackstone_thorn", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "blood_zombie", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "bomber", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "brown_bear", + "kind": "vanilla", + "sup": "PolarBear", + "ren": "PolarBearRenderer", + "renParam": "PolarBear", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "carnager", + "kind": "vanilla", + "sup": "Vindicator", + "ren": "VindicatorRenderer", + "renParam": "Vindicator", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "chest_monster", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "chester", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "clam", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "crab", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "crimson_slime", + "kind": "vanilla", + "sup": "Slime", + "ren": "SlimeRenderer", + "renParam": "Slime", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "dark_snow_man", + "kind": "vanilla", + "sup": "SnowGolem", + "ren": "SnowGolemRenderer", + "renParam": "SnowGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "dark_werewolf", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1.4, + "texOverride": false + }, + { + "name": "doctor", + "kind": "vanilla", + "sup": "Villager", + "ren": "VillagerRenderer", + "renParam": "Villager", + "renPkg": "npc", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "elf_of_ash", + "kind": "vanilla", + "sup": "Vex", + "ren": "VexRenderer", + "renParam": "Vex", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "elf_of_chaos", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "elf_of_deep", + "kind": "vanilla", + "sup": "Vex", + "ren": "VexRenderer", + "renParam": "Vex", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "elf_of_dust", + "kind": "vanilla", + "sup": "Vex", + "ren": "VexRenderer", + "renParam": "Vex", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "enchant_armor", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "enchant_armor_by_boss", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "enchant_diamond_armor", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "enchant_illager", + "kind": "vanilla", + "sup": "Evoker", + "ren": "EvokerRenderer", + "renParam": "SpellcasterIllager", + "renPkg": "monster", + "renGeneric": "SpellcasterIllager", + "scale": 1, + "texOverride": true + }, + { + "name": "enchant_illager_1", + "kind": "vanilla", + "sup": "Evoker", + "ren": "EvokerRenderer", + "renParam": "SpellcasterIllager", + "renPkg": "monster", + "renGeneric": "SpellcasterIllager", + "scale": 1, + "texOverride": true + }, + { + "name": "enchant_illager_2", + "kind": "vanilla", + "sup": "Vindicator", + "ren": "VindicatorRenderer", + "renParam": "Vindicator", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "end_stone_golem", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ender_snail", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ender_snake", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ender_witch", + "kind": "vanilla", + "sup": "Witch", + "ren": "WitchRenderer", + "renParam": "Witch", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ender_witch_puppet", + "kind": "vanilla", + "sup": "Witch", + "ren": "WitchRenderer", + "renParam": "Witch", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "entity_soul", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "entity_soul_1", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "escaped_soul_entity", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "everlasting_winter_ghast", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "everlasting_winter_ghast_1", + "kind": "vanilla", + "sup": "Ghast", + "ren": "GhastRenderer", + "renParam": "Ghast", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "everlasting_winter_shadow", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "evil_snow_man", + "kind": "vanilla", + "sup": "SnowGolem", + "ren": "SnowGolemRenderer", + "renParam": "SnowGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "fire_storm", + "kind": "vanilla", + "sup": "Blaze", + "ren": "BlazeRenderer", + "renParam": "Blaze", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "friendly_little_soul", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "friendly_spider", + "kind": "vanilla", + "sup": "Spider", + "ren": "SpiderRenderer", + "renParam": "Spider", + "renPkg": "monster", + "renGeneric": "Spider", + "scale": 1, + "texOverride": true + }, + { + "name": "frozen_ghast", + "kind": "vanilla", + "sup": "Ghast", + "ren": "GhastRenderer", + "renParam": "Ghast", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "frozen_heart", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "frozen_heart_sleeping", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "frozen_man", + "kind": "vanilla", + "sup": "SnowGolem", + "ren": "SnowGolemRenderer", + "renParam": "SnowGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "frozen_shadow", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "frozen_spider", + "kind": "vanilla", + "sup": "Spider", + "ren": "SpiderRenderer", + "renParam": "Spider", + "renPkg": "monster", + "renGeneric": "Spider", + "scale": 1, + "texOverride": true + }, + { + "name": "gargoyle", + "kind": "vanilla", + "sup": "Bat", + "ren": "BatRenderer", + "renParam": "Bat", + "renPkg": "ambient", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ghost_diamond_axe", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ghost_diamond_staff", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ghost_diamond_sword", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ghost_iron_axe", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ghost_iron_sword", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ghost_wooden_staff", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ghost_wooden_sword", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "gingerbread_man_by_totem", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "goblin", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "goblin_sniper", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "goblin_wizard", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "host_of_deep", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ice_bat", + "kind": "vanilla", + "sup": "Bat", + "ren": "BatRenderer", + "renParam": "Bat", + "renPkg": "ambient", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ice_blaze", + "kind": "vanilla", + "sup": "Blaze", + "ren": "BlazeRenderer", + "renParam": "Blaze", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ice_creeper", + "kind": "vanilla", + "sup": "Creeper", + "ren": "CreeperRenderer", + "renParam": "Creeper", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "ice_monster", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ice_spirit", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ice_thorn", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ice_wizard", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "ice_zombie", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "illusion_zombie", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "illusioner", + "kind": "vanilla", + "sup": "Illusioner", + "ren": "IllusionerRenderer", + "renParam": "Illusioner", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "illusioner_puppet", + "kind": "vanilla", + "sup": "Illusioner", + "ren": "IllusionerRenderer", + "renParam": "Illusioner", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "jungle_spider", + "kind": "vanilla", + "sup": "CaveSpider", + "ren": "CaveSpiderRenderer", + "renParam": "CaveSpider", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "king_of_pillager", + "kind": "vanilla", + "sup": "Pillager", + "ren": "PillagerRenderer", + "renParam": "Pillager", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "lava_lizard", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "life_insect", + "kind": "vanilla", + "sup": "Silverfish", + "ren": "SilverfishRenderer", + "renParam": "Silverfish", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "little_bat", + "kind": "vanilla", + "sup": "Bat", + "ren": "BatRenderer", + "renParam": "Bat", + "renPkg": "ambient", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "little_soul", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "lurk_skeleton", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "lurk_zombie", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "mummy", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "mummy_skeleton", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "murloc", + "kind": "vanilla", + "sup": "Guardian", + "ren": "GuardianRenderer", + "renParam": "Guardian", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "murloc_wizard", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "mushroom_monster", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "mushroom_zombie", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "mystical_skeleton", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "nautilus", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "nether_creeper", + "kind": "vanilla", + "sup": "Creeper", + "ren": "CreeperRenderer", + "renParam": "Creeper", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "nether_golem", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "nether_phantom", + "kind": "vanilla", + "sup": "Phantom", + "ren": "PhantomRenderer", + "renParam": "Phantom", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "nether_skeleton", + "kind": "vanilla", + "sup": "WitherSkeleton", + "ren": "WitherSkeletonRenderer", + "renParam": "WitherSkeleton", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "nether_skeleton_wizard", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "obsidian_golem", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "pillager_by_boss", + "kind": "vanilla", + "sup": "Pillager", + "ren": "PillagerRenderer", + "renParam": "Pillager", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "pirate", + "kind": "vanilla", + "sup": "Pillager", + "ren": "PillagerRenderer", + "renParam": "Pillager", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "player_ghost", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "polar_wolf", + "kind": "vanilla", + "sup": "Wolf", + "ren": "WolfRenderer", + "renParam": "Wolf", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "predators", + "kind": "vanilla", + "sup": "Bat", + "ren": "BatRenderer", + "renParam": "Bat", + "renPkg": "ambient", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "pumpkin_slime", + "kind": "vanilla", + "sup": "Slime", + "ren": "SlimeRenderer", + "renParam": "Slime", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "radiate_creeper", + "kind": "vanilla", + "sup": "Creeper", + "ren": "CreeperRenderer", + "renParam": "Creeper", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "radiate_enderman", + "kind": "vanilla", + "sup": "EnderMan", + "ren": "EndermanRenderer", + "renParam": "EnderMan", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "radiate_skeleton", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "radiate_spider", + "kind": "vanilla", + "sup": "CaveSpider", + "ren": "CaveSpiderRenderer", + "renParam": "CaveSpider", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "real_soul", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "rumorer", + "kind": "vanilla", + "sup": "Cow", + "ren": "CowRenderer", + "renParam": "Cow", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "sardine", + "kind": "vanilla", + "sup": "Cod", + "ren": "CodRenderer", + "renParam": "Cod", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "saucer", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "sea_urchin", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1.2, + "texOverride": false + }, + { + "name": "shadow_archer", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "shadow_creeper", + "kind": "vanilla", + "sup": "Creeper", + "ren": "CreeperRenderer", + "renParam": "Creeper", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "shadow_of_deep", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "shadow_of_sea", + "kind": "vanilla", + "sup": "Phantom", + "ren": "PhantomRenderer", + "renParam": "Phantom", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "shadow_skeleton", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "shadow_skeleton_puppet", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "shadow_soul_1", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "shadow_soul_2", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "shadow_zombie", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "shadow_zombie_puppet", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "simple_glider", + "kind": "vanilla", + "sup": "Chicken", + "ren": "ChickenRenderer", + "renParam": "Chicken", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "skeleton_assassin", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "skeleton_knight", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "skeleton_knight_commander", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "skeleton_warrior", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "skeleton_wizard", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "soldier", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "son_of_chaos", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "son_of_nature", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "soul", + "kind": "vanilla", + "sup": "Vex", + "ren": "VexRenderer", + "renParam": "Vex", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "soul_blaze", + "kind": "vanilla", + "sup": "Blaze", + "ren": "BlazeRenderer", + "renParam": "Blaze", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "soul_insect", + "kind": "vanilla", + "sup": "Silverfish", + "ren": "SilverfishRenderer", + "renParam": "Silverfish", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "soul_skeleton", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 1, + "texOverride": true + }, + { + "name": "soul_soldier", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1, + "texOverride": false + }, + { + "name": "soul_zombie", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "star", + "kind": "vanilla", + "sup": "Blaze", + "ren": "BlazeRenderer", + "renParam": "Blaze", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "stone_golem", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "swamp_drowned", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "swamp_golem", + "kind": "vanilla", + "sup": "IronGolem", + "ren": "IronGolemRenderer", + "renParam": "IronGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "tnt_creeper", + "kind": "vanilla", + "sup": "Creeper", + "ren": "CreeperRenderer", + "renParam": "Creeper", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "tnt_snow_man", + "kind": "vanilla", + "sup": "SnowGolem", + "ren": "SnowGolemRenderer", + "renParam": "SnowGolem", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "vampire_bat", + "kind": "vanilla", + "sup": "Bat", + "ren": "BatRenderer", + "renParam": "Bat", + "renPkg": "ambient", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "vampire_bat_by_boss", + "kind": "vanilla", + "sup": "Bat", + "ren": "BatRenderer", + "renParam": "Bat", + "renPkg": "ambient", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "vengeful_ghost", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "vindicator_by_boss", + "kind": "vanilla", + "sup": "Vindicator", + "ren": "VindicatorRenderer", + "renParam": "Vindicator", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "warped_skeleton", + "kind": "vanilla", + "sup": "Skeleton", + "ren": "SkeletonRenderer", + "renParam": "AbstractSkeleton", + "renPkg": "monster", + "renGeneric": "AbstractSkeleton", + "scale": 0.99, + "texOverride": true + }, + { + "name": "watcher", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "werewolf", + "kind": "custom", + "sup": null, + "ren": null, + "renParam": null, + "renPkg": null, + "renGeneric": null, + "scale": 1.2, + "texOverride": false + }, + { + "name": "zombie_fish", + "kind": "vanilla", + "sup": "Salmon", + "ren": "SalmonRenderer", + "renParam": "Salmon", + "renPkg": "animal", + "renGeneric": null, + "scale": 1, + "texOverride": true + }, + { + "name": "zombie_summoner", + "kind": "vanilla", + "sup": "Zombie", + "ren": "ZombieRenderer", + "renParam": "Zombie", + "renPkg": "monster", + "renGeneric": null, + "scale": 1, + "texOverride": true + } +] \ No newline at end of file diff --git a/tools/entity_port/gen_report.txt b/tools/entity_port/gen_report.txt new file mode 100644 index 0000000..a0407dd --- /dev/null +++ b/tools/entity_port/gen_report.txt @@ -0,0 +1,51 @@ +WARN (4): + gingerbread_man_by_totem: 无几何体/runtime → 回退原版 Zombie 人形 + 动画未找到: animation.villager.move (host_of_deep) + 动画未找到: animation.villager.move (shadow_of_deep) + soldier: 无几何体/runtime → 回退原版 Zombie 人形 + +INFO: + 贴图ID池: dec 1364 / vanilla 1754 + loot[abyssal_controller] 丢弃: set_data, item:dec:storm_giant_sword, item:dec:blue_of_the_sea, enchant_with_levels + 内置动画未内联(忽略): animation.humanoid.riding.arms.v1.0 (ash_knight) + loot[ash_knight] 丢弃: item:dec:dust_staff, item:dec:chaos_staff, item:minecraft:netherstar + loot[ash_knight_head] 丢弃: item:dec:dust_staff, item:dec:chaos_staff, item:minecraft:netherstar + loot[chest_monster] 丢弃: item:dec:christmas_gift, item:dec:red_bag + 内置动画未内联(忽略): controller.animation.crab.default (crab) + 内置动画未内联(忽略): animation.humanoid.look_at_target.swimming.v1.0 (dark_werewolf) + loot[enchant_illager] 丢弃: item:dec:wooden_enchant_book, enchant_with_levels + 内置动画未内联(忽略): controller.animation.snail.root (ender_snail) + 内置动画未内联(忽略): animation.humanoid.look_at_target.default (everlasting_winter_ghast) + 内置动画未内联(忽略): animation.humanoid.look_at_target.swimming (everlasting_winter_ghast) + loot[everlasting_winter_ghast] 丢弃: item:dec:ice_hook_rope, item:dec:grapeshot_frozen_ball + 内置动画未内联(忽略): animation.humanoid.look_at_target.default (everlasting_winter_shadow) + 内置动画未内联(忽略): animation.humanoid.look_at_target.swimming (everlasting_winter_shadow) + 内置动画未内联(忽略): animation.humanoid.look_at_target.default (frozen_shadow) + 内置动画未内联(忽略): animation.humanoid.look_at_target.swimming (frozen_shadow) + 内置动画未内联(忽略): animation.humanoid.move.v1.0 (goblin) + 内置动画未内联(忽略): animation.humanoid.bow_and_arrow.v1.0 (goblin_sniper) + 内置动画未内联(忽略): animation.humanoid.move.v1.0 (goblin_sniper) + 内置动画未内联(忽略): animation.humanoid.bow_and_arrow.v1.0 (goblin_wizard) + 内置动画未内联(忽略): animation.humanoid.move.v1.0 (goblin_wizard) + 内置动画未内联(忽略): animation.humanoid.look_at_target.default.v1.0 (host_of_deep) + loot[host_of_deep] 丢弃: item:dec:echo_of_deep, item:dec:deep_dandelion_crop + 内置动画未内联(忽略): controller.animation.ice_monster.root (ice_monster) + 内置动画未内联(忽略): controller.animation.ice_spirit.root (ice_spirit) + 内置动画未内联(忽略): controller.animation.ice_wizard.root (ice_wizard) + loot[king_of_pillager] 丢弃: item:dec:village_guardian + loot[lava_lizard] 丢弃: item:dec:fire_heart + loot[lurk_zombie] 丢弃: item:dec:lurk_bud_crop, item:dec:lurk_fruit_crop, item:dec:lurk_orchid_crop + loot[mummy_skeleton] 丢弃: set_data + 内置动画未内联(忽略): animation.humanoid.base_pose.v1.0 (murloc_wizard) + 内置动画未内联(忽略): animation.humanoid.look_at_target.swimming.v1.0 (murloc_wizard) + loot[mystical_skeleton] 丢弃: set_data + 内置动画未内联(忽略): controller.animation.nautilus.default (nautilus) + loot[predators] 丢弃: item:dec:bat_staff + loot[radiate_creeper] 丢弃: killed_by_entity + 内置动画未内联(忽略): animation.humanoid.look_at_target.default.v1.0 (shadow_of_deep) + loot[skeleton_wizard] 丢弃: item:minecraft:copper_nugget + loot[soul_blaze] 丢弃: item:dec:soul_fireball, killed_by_player_or_pets + loot[swamp_drowned] 丢弃: item:dec:poison_bag + loot[swamp_golem] 丢弃: item:dec:poison_bag + loot[warped_skeleton] 丢弃: set_data + 内置动画未内联(忽略): animation.humanoid.look_at_target.swimming.v1.0 (werewolf) diff --git a/tools/entity_port/generate.mjs b/tools/entity_port/generate.mjs new file mode 100644 index 0000000..057d26e --- /dev/null +++ b/tools/entity_port/generate.mjs @@ -0,0 +1,1242 @@ +// 基岩版生物 → Java 版(NeoForge 1.21.1)批量移植生成器 +// 产出:geometry/animation 资源、贴图 PNG、loot table、biome modifier、注册 Kotlin 代码 +import fs from 'fs'; +import path from 'path'; +import zlib from 'zlib'; + +const BP = 'C:/Users/Administrator/Desktop/bedrock/DecIslandB'; +const RP = 'C:/Users/Administrator/Desktop/bedrock/DecIslandR'; +const PROJ = 'f:/DecIslandNeoforge-main'; +const RES = `${PROJ}/src/main/resources`; +const SRC = `${PROJ}/src/main/java/com/dec/decisland`; + +const log = { warn: [], info: [] }; +const warn = (m) => { log.warn.push(m); }; + +// 基岩版 JSON 允许注释/尾逗号 → 剥离后再解析 +function readJson(p) { + let t = fs.readFileSync(p, 'utf8'); + let out = ''; + let inStr = false, esc = false; + for (let i = 0; i < t.length; i++) { + const c = t[i], n = t[i + 1]; + if (inStr) { + out += c; + if (esc) esc = false; + else if (c === '\\') esc = true; + else if (c === '"') inStr = false; + continue; + } + if (c === '"') { inStr = true; out += c; continue; } + if (c === '/' && n === '/') { while (i < t.length && t[i] !== '\n') i++; out += '\n'; continue; } + if (c === '/' && n === '*') { i += 2; while (i < t.length && !(t[i] === '*' && t[i + 1] === '/')) i++; i++; continue; } + out += c; + } + out = out.replace(/,(\s*[}\]])/g, '$1'); + return JSON.parse(out); +} + +// ============ 移植清单 ============ +const MOB_SKIP = new Set(['elf_of_leaves', 'zombie_warrior', 'leaves_golem', 'dragon_head', 'host_of_deep_1', 'host_of_deep_2']); +const MOB_SIMPLE_KEEP = new Set([ + 'ash_bomb', 'ash_horse_head', 'ash_knight_head', 'ash_sword', 'ash_sword_phantom', 'bat_charger', + 'blackstone_thorn', 'ender_snake', 'friendly_spider', 'frozen_heart', 'frozen_heart_sleeping', + 'frozen_shadow', 'frozen_spider', 'ghost_diamond_sword', 'ghost_iron_sword', 'ghost_wooden_sword', + 'ice_thorn', 'nether_phantom', 'saucer', 'murloc_wizard', 'everlasting_winter_shadow', +]); +const VANILLA_KEEP = new Set([ + 'angry_chicken', 'ash_pufferfish', 'baby_ender_dragon', 'blood_zombie', 'brown_bear', 'crimson_slime', + 'elf_of_deep', 'enchant_illager', 'enchant_illager_1', 'enchant_illager_2', 'end_stone_golem', + 'everlasting_winter_ghast_1', 'fire_storm', 'frozen_ghast', 'gargoyle', 'ice_bat', 'ice_creeper', + 'jungle_spider', 'little_bat', 'murloc', 'nether_creeper', 'nether_golem', 'nether_skeleton', + 'obsidian_golem', 'polar_wolf', 'predators', 'pumpkin_slime', 'radiate_creeper', 'radiate_enderman', + 'radiate_spider', 'real_soul', 'sardine', 'shadow_archer', 'shadow_creeper', 'shadow_skeleton', + 'shadow_skeleton_puppet', 'simple_glider', 'son_of_chaos', 'son_of_nature', 'soul', 'soul_blaze', + 'star', 'stone_golem', 'swamp_golem', 'vampire_bat', 'vampire_bat_by_boss', 'warped_skeleton', 'watcher', +]); +const SPECIAL_KEEP = new Set(['clam', 'crab', 'zombie_fish', 'mushroom_monster']); +const PORTED = new Set(['elf_of_leaves', 'zombie_warrior', 'leaves_golem', 'pumpkin_bomb']); + +function buildPortList() { + const entsDir = `${BP}/entities`; + const names = fs.readdirSync(entsDir).filter((f) => f.endsWith('.json')).map((f) => f.slice(0, -5)); + const keep = []; + for (const n of names) { + if (PORTED.has(n)) continue; + if (n.endsWith('_tp_anchor') || n.endsWith('_anchor')) continue; + if (/^event_/.test(n)) continue; + if (['group', 'height_judge', 'illusioner_blindness', 'scarecrow', 'shadow_crystal', 'radiate_crystal', + 'everlasting_winter_crystal', 'shadow_fuse', 'shadow_portal', 'village_portal', 'simple_car', + 'escaped_soul', 'escaped_soul_1', 'escaped_soul_2', 'escaped_soul_3', 'empty', 'gravestone', + 'mine', 'snow_energy_fuse', 'storm_energy', 'frozen_laser_small'].includes(n)) continue; + const j = readJson(`${entsDir}/${n}.json`); + const desc = j['minecraft:entity']?.description ?? {}; + if (desc.runtime_identifier?.startsWith('minecraft:') && !desc.runtime_identifier.startsWith('minecraft:') === false) { + // 纯原版覆盖(无 dec: 前缀 identifier)跳过 + if (!String(desc.identifier).startsWith('dec:')) continue; + } + const runtime = desc.runtime_identifier ?? '-'; + const isDec = String(desc.identifier).startsWith('dec:'); + if (!isDec) continue; + // PROJECTILE 组(运行时为投射物且在 PROJECTILE 分类中)跳过 —— 已大多移植 + if (VANILLA_KEEP.has(n) || SPECIAL_KEEP.has(n) || MOB_SIMPLE_KEEP.has(n)) { keep.push(n); continue; } + if (MOB_SKIP.has(n)) continue; + // 投射物特征:runtime snowball/egg/arrow/fireball/llama_spit/eye_of_ender/tnt/fishing_hook/small_fireball/dragon_fireball + if (/^minecraft:(snowball|egg|arrow|fireball|small_fireball|dragon_fireball|llama_spit|eye_of_ender|splash_potion|fishing_hook|tnt|armor_stand|leash_knot|xporb|thrown_trident)$/.test(runtime)) continue; + keep.push(n); + } + return keep.sort(); +} + +// ============ 原版 runtime → Java 类映射 ============ +const VANILLA_MAP = { + 'minecraft:zombie': { cls: 'Zombie', pkg: 'monster', ren: 'ZombieRenderer', rp: 'Zombie', pkgR: 'monster', human64: true }, + 'minecraft:husk': { cls: 'Zombie', pkg: 'monster', ren: 'ZombieRenderer', rp: 'Zombie', pkgR: 'monster', human64: true }, + 'minecraft:drowned': { cls: 'Drowned', pkg: 'monster', ren: 'DrownedRenderer', rp: 'Drowned', pkgR: 'monster', human64: true }, + 'minecraft:skeleton': { cls: 'Skeleton', pkg: 'monster', ren: 'SkeletonRenderer', rp: 'AbstractSkeleton', pkgR: 'monster', human64: true }, + 'minecraft:stray': { cls: 'Stray', pkg: 'monster', ren: 'StrayRenderer', rp: 'Stray', pkgR: 'monster', human64: true }, + 'minecraft:wither_skeleton': { cls: 'WitherSkeleton', pkg: 'monster', ren: 'WitherSkeletonRenderer', rp: 'WitherSkeleton', pkgR: 'monster', human64: true }, + 'minecraft:creeper': { cls: 'Creeper', pkg: 'monster', ren: 'CreeperRenderer', rp: 'Creeper', pkgR: 'monster' }, + 'minecraft:bat': { cls: 'Bat', pkg: 'ambient', ren: 'BatRenderer', rp: 'Bat', pkgR: 'ambient' }, + 'minecraft:ghast': { cls: 'Ghast', pkg: 'monster', ren: 'GhastRenderer', rp: 'Ghast', pkgR: 'monster', flying: true }, + 'minecraft:blaze': { cls: 'Blaze', pkg: 'monster', ren: 'BlazeRenderer', rp: 'Blaze', pkgR: 'monster', fire: true }, + 'minecraft:slime': { cls: 'Slime', pkg: 'monster', ren: 'SlimeRenderer', rp: 'Slime', pkgR: 'monster' }, + 'minecraft:magma_cube': { cls: 'MagmaCube', pkg: 'monster', ren: 'MagmaCubeRenderer', rp: 'MagmaCube', pkgR: 'monster', fire: true }, + 'minecraft:vex': { cls: 'Vex', pkg: 'monster', ren: 'VexRenderer', rp: 'Vex', pkgR: 'monster', flying: true }, + 'minecraft:guardian': { cls: 'Guardian', pkg: 'monster', ren: 'GuardianRenderer', rp: 'Guardian', pkgR: 'monster', water: true }, + 'minecraft:iron_golem': { cls: 'IronGolem', pkg: 'animal', ren: 'IronGolemRenderer', rp: 'IronGolem', pkgR: 'animal' }, + 'minecraft:snow_golem': { cls: 'SnowGolem', pkg: 'animal', ren: 'SnowGolemRenderer', rp: 'SnowGolem', pkgR: 'animal' }, + 'minecraft:polar_bear': { cls: 'PolarBear', pkg: 'animal', ren: 'PolarBearRenderer', rp: 'PolarBear', pkgR: 'animal' }, + 'minecraft:cave_spider': { cls: 'CaveSpider', pkg: 'monster', ren: 'CaveSpiderRenderer', rp: 'CaveSpider', pkgR: 'monster' }, + 'minecraft:spider': { cls: 'Spider', pkg: 'monster', ren: 'SpiderRenderer', rp: 'Spider', pkgR: 'monster' }, + 'minecraft:enderman': { cls: 'EnderMan', pkg: 'monster', ren: 'EndermanRenderer', rp: 'EnderMan', pkgR: 'monster' }, + 'minecraft:cod': { cls: 'Cod', pkg: 'animal', ren: 'CodRenderer', rp: 'Cod', pkgR: 'animal', water: true }, + 'minecraft:chicken': { cls: 'Chicken', pkg: 'animal', ren: 'ChickenRenderer', rp: 'Chicken', pkgR: 'animal' }, + 'minecraft:evocation_illager': { cls: 'Evoker', pkg: 'monster', ren: 'EvokerRenderer', rp: 'SpellcasterIllager', pkgR: 'monster', human64: true }, + 'minecraft:silverfish': { cls: 'Silverfish', pkg: 'monster', ren: 'SilverfishRenderer', rp: 'Silverfish', pkgR: 'monster' }, + 'minecraft:sliverfish': { cls: 'Silverfish', pkg: 'monster', ren: 'SilverfishRenderer', rp: 'Silverfish', pkgR: 'monster' }, + 'minecraft:wolf': { cls: 'Wolf', pkg: 'animal', ren: 'WolfRenderer', rp: 'Wolf', pkgR: 'animal' }, + 'minecraft:pillager': { cls: 'Pillager', pkg: 'monster', ren: 'PillagerRenderer', rp: 'Pillager', pkgR: 'monster', human64: true }, + 'minecraft:vindicator': { cls: 'Vindicator', pkg: 'monster', ren: 'VindicatorRenderer', rp: 'Vindicator', pkgR: 'monster', human64: true }, + 'minecraft:phantom': { cls: 'Phantom', pkg: 'monster', ren: 'PhantomRenderer', rp: 'Phantom', pkgR: 'monster', flying: true }, + 'minecraft:cow': { cls: 'Cow', pkg: 'animal', ren: 'CowRenderer', rp: 'Cow', pkgR: 'animal' }, + 'minecraft:villager': { cls: 'Villager', pkg: 'npc', ren: 'VillagerRenderer', rp: 'Villager', pkgR: 'npc' }, + 'minecraft:witch': { cls: 'Witch', pkg: 'monster', ren: 'WitchRenderer', rp: 'Witch', pkgR: 'monster' }, + 'minecraft:salmon': { cls: 'Salmon', pkg: 'animal', ren: 'SalmonRenderer', rp: 'Salmon', pkgR: 'animal', water: true }, + 'minecraft:illusioner': { cls: 'Illusioner', pkg: 'monster', ren: 'IllusionerRenderer', rp: 'Illusioner', pkgR: 'monster' }, +}; +// 客户端几何体前缀 → 原版模型(无 runtime_identifier 时的回退判断) +// 注意:不能用 \b(下划线是 word 字符);长名在前;rest 仅允许空/点分/特定后缀,防止 everlasting_winter_ghast 被误判为 ghast +const VANILLA_GEO_RE = /^geometry\.(villager\.witch|snowgolem_have_block|wither_skeleton|evocation_illager|polar_bear|polarbear|magma_cube|cave_spider|cavespider|illusioner|villager|silverfish|vindicator|irongolem|iron_golem|snow_golem|snowgolem|drowned|skeleton|husk|zombie|stray|creeper|ghast|blaze|slime|vex|guardian|spider|enderman|chicken|phantom|cow|witch|salmon|cod|wolf|pillager|bat)(.*)$/i; +function matchVanillaGeo(geoId) { + if (!geoId) return null; + const m = VANILLA_GEO_RE.exec(geoId); + if (!m) return null; + const rest = m[2]; + if (rest !== '' && !rest.startsWith('.') && rest !== '_have_block') return null; + return GEO_PREFIX_TO_RUNTIME[m[1].toLowerCase()]; +} +const GEO_PREFIX_TO_RUNTIME = { + zombie: 'minecraft:zombie', husk: 'minecraft:husk', drowned: 'minecraft:drowned', + skeleton: 'minecraft:skeleton', wither_skeleton: 'minecraft:wither_skeleton', stray: 'minecraft:stray', + creeper: 'minecraft:creeper', bat: 'minecraft:bat', ghast: 'minecraft:ghast', blaze: 'minecraft:blaze', + slime: 'minecraft:slime', magma_cube: 'minecraft:magma_cube', vex: 'minecraft:vex', + guardian: 'minecraft:guardian', iron_golem: 'minecraft:iron_golem', irongolem: 'minecraft:iron_golem', + snow_golem: 'minecraft:snow_golem', snowgolem: 'minecraft:snow_golem', snowgolem_have_block: 'minecraft:snow_golem', + polarbear: 'minecraft:polar_bear', polar_bear: 'minecraft:polar_bear', spider: 'minecraft:spider', + cavespider: 'minecraft:cave_spider', cave_spider: 'minecraft:cave_spider', enderman: 'minecraft:enderman', + cod: 'minecraft:cod', salmon: 'minecraft:salmon', chicken: 'minecraft:chicken', evocation_illager: 'minecraft:evocation_illager', + illusioner: 'minecraft:illusioner', silverfish: 'minecraft:silverfish', wolf: 'minecraft:wolf', pillager: 'minecraft:pillager', + vindicator: 'minecraft:vindicator', phantom: 'minecraft:phantom', cow: 'minecraft:cow', + villager: 'minecraft:villager', 'villager.witch': 'minecraft:witch', witch: 'minecraft:witch', +}; +// 泛型渲染器 → 类型参数(用 renParam 实体类) +const GENERIC_REN_PARAM = { SkeletonRenderer: 'AbstractSkeleton', SpiderRenderer: 'Spider', EvokerRenderer: 'SpellcasterIllager' }; +// 原版属性构建器(cls 无自身 createAttributes 时回退) +const ATTR_BUILDER = { + Skeleton: 'net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes()', + Stray: 'net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes()', + WitherSkeleton: 'net.minecraft.world.entity.monster.AbstractSkeleton.createAttributes()', + CaveSpider: 'net.minecraft.world.entity.monster.Spider.createAttributes()', + Cod: 'net.minecraft.world.entity.animal.AbstractFish.createAttributes()', + Salmon: 'net.minecraft.world.entity.animal.AbstractFish.createAttributes()', + Slime: 'net.minecraft.world.entity.monster.Monster.createMonsterAttributes()', + Phantom: 'net.minecraft.world.entity.FlyingMob.createMobAttributes().add(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE, 6.0)', +}; +// 原版默认最大生命(用于判断是否覆盖基岩血量) +const VANILLA_HP = { + Zombie: 20, Drowned: 20, Skeleton: 20, Stray: 20, WitherSkeleton: 20, Creeper: 20, Bat: 6, Ghast: 10, + Blaze: 20, Slime: 16, MagmaCube: 16, Vex: 14, Guardian: 30, IronGolem: 100, SnowGolem: 4, PolarBear: 30, + CaveSpider: 16, Spider: 16, EnderMan: 40, Cod: 3, Chicken: 4, Evoker: 24, Silverfish: 8, Wolf: 8, + Pillager: 24, Vindicator: 24, Phantom: 20, Cow: 10, Villager: 20, Witch: 26, Salmon: 3, Illusioner: 32, +}; + +// ============ 生成群系标签映射 ============ +const TAG_MAP = { + taiga: ['minecraft:taiga', 'minecraft:snowy_taiga', 'minecraft:old_growth_pine_taiga', 'minecraft:old_growth_spruce_taiga'], + mega_taiga: ['minecraft:old_growth_pine_taiga', 'minecraft:old_growth_spruce_taiga'], + forest: ['minecraft:forest', 'minecraft:birch_forest', 'minecraft:dark_forest', 'minecraft:flower_forest', 'minecraft:old_growth_birch_forest'], + plains: ['minecraft:plains', 'minecraft:sunflower_plains'], + desert: ['minecraft:desert'], + jungle: ['minecraft:jungle', 'minecraft:bamboo_jungle', 'minecraft:sparse_jungle'], + savanna: ['minecraft:savanna', 'minecraft:savanna_plateau', 'minecraft:windswept_savanna'], + swamp: ['minecraft:swamp', 'minecraft:mangrove_swamp'], + mountains: ['minecraft:windswept_hills', 'minecraft:windswept_gravelly_hills', 'minecraft:windswept_forest', 'minecraft:jagged_peaks', 'minecraft:frozen_peaks', 'minecraft:stony_peaks', 'minecraft:snowy_slopes', 'minecraft:meadow', 'minecraft:grove'], + mountain: ['minecraft:windswept_hills', 'minecraft:windswept_gravelly_hills', 'minecraft:windswept_forest', 'minecraft:jagged_peaks', 'minecraft:frozen_peaks', 'minecraft:stony_peaks', 'minecraft:snowy_slopes', 'minecraft:meadow', 'minecraft:grove'], + extreme_hills: ['minecraft:windswept_hills', 'minecraft:windswept_gravelly_hills', 'minecraft:windswept_forest'], + snowy: ['minecraft:snowy_plains', 'minecraft:ice_spikes', 'minecraft:snowy_beach', 'minecraft:snowy_taiga', 'minecraft:frozen_river'], + frozen: ['minecraft:frozen_ocean', 'minecraft:deep_frozen_ocean', 'minecraft:frozen_river', 'minecraft:snowy_plains', 'minecraft:ice_spikes', 'minecraft:snowy_taiga', 'minecraft:frozen_peaks', 'minecraft:snowy_slopes'], + cold: ['minecraft:cold_ocean', 'minecraft:deep_cold_ocean', 'minecraft:taiga', 'minecraft:snowy_plains', 'minecraft:snowy_taiga'], + temperate: ['minecraft:plains', 'minecraft:forest', 'minecraft:birch_forest'], + lukewarm: ['minecraft:lukewarm_ocean', 'minecraft:deep_lukewarm_ocean'], + warm: ['minecraft:warm_ocean', 'minecraft:desert', 'minecraft:jungle', 'minecraft:savanna', 'minecraft:lukewarm_ocean', 'minecraft:deep_lukewarm_ocean'], + ocean: ['minecraft:ocean', 'minecraft:deep_ocean', 'minecraft:warm_ocean', 'minecraft:lukewarm_ocean', 'minecraft:deep_lukewarm_ocean', 'minecraft:cold_ocean', 'minecraft:deep_cold_ocean', 'minecraft:frozen_ocean', 'minecraft:deep_frozen_ocean'], + deep_ocean: ['minecraft:deep_ocean', 'minecraft:deep_lukewarm_ocean', 'minecraft:deep_cold_ocean', 'minecraft:deep_frozen_ocean'], + river: ['minecraft:river', 'minecraft:frozen_river'], + beach: ['minecraft:beach', 'minecraft:snowy_beach', 'minecraft:stony_shore'], + nether: ['minecraft:nether_wastes', 'minecraft:crimson_forest', 'minecraft:warped_forest', 'minecraft:soul_sand_valley', 'minecraft:basalt_deltas'], + nether_wastes: ['minecraft:nether_wastes'], + crimson_forest: ['minecraft:crimson_forest'], + warped_forest: ['minecraft:warped_forest'], + soul_sand_valley: ['minecraft:soul_sand_valley'], + soulsand_valley: ['minecraft:soul_sand_valley'], + basalt_deltas: ['minecraft:basalt_deltas'], + the_end: ['minecraft:the_end', 'minecraft:end_highlands', 'minecraft:end_midlands', 'minecraft:small_end_islands', 'minecraft:end_barrens'], + end: ['minecraft:the_end', 'minecraft:end_highlands', 'minecraft:end_midlands', 'minecraft:small_end_islands', 'minecraft:end_barrens'], + mushroom: ['minecraft:mushroom_fields'], + mushroom_island: ['minecraft:mushroom_fields'], + mushroom_fields: ['minecraft:mushroom_fields'], + // 泛化标签(基岩对全体怪物/动物群系)→ 常规主世界群系(getter 延迟求值,避免 TDZ) + get monster() { return DEFAULT_BIOMES; }, + get animal() { return DEFAULT_BIOMES; }, + deep_dark: ['minecraft:deep_dark'], + mesa: ['minecraft:badlands', 'minecraft:wooded_badlands', 'minecraft:eroded_badlands'], + badlands: ['minecraft:badlands', 'minecraft:wooded_badlands', 'minecraft:eroded_badlands'], + flower_forest: ['minecraft:flower_forest'], + birch_forest: ['minecraft:birch_forest'], + dark_forest: ['minecraft:dark_forest'], + sunflower_plains: ['minecraft:sunflower_plains'], + ice_plains: ['minecraft:snowy_plains', 'minecraft:ice_spikes'], + ice: ['minecraft:snowy_plains', 'minecraft:ice_spikes', 'minecraft:frozen_ocean', 'minecraft:frozen_peaks'], +}; +const DEFAULT_BIOMES = ['minecraft:plains', 'minecraft:forest', 'minecraft:birch_forest', 'minecraft:dark_forest', 'minecraft:taiga', 'minecraft:desert', 'minecraft:savanna', 'minecraft:swamp', 'minecraft:snowy_plains', 'minecraft:windswept_hills']; +const OCEAN_BIOMES = ['minecraft:ocean', 'minecraft:deep_ocean', 'minecraft:lukewarm_ocean', 'minecraft:deep_lukewarm_ocean', 'minecraft:cold_ocean', 'minecraft:deep_cold_ocean', 'minecraft:frozen_ocean', 'minecraft:deep_frozen_ocean']; + +// ============ 贴图:TGA 解码 + PNG 编码 ============ +function decodeTGA(buf) { + const idLength = buf[0]; + const imageType = buf[2]; + const width = buf.readUInt16LE(12); + const height = buf.readUInt16LE(14); + const bpp = buf[16]; + const descriptor = buf[17]; + const topDown = (descriptor & 0x20) !== 0; + const bytesPP = bpp / 8; + let off = 18 + idLength; + if (imageType === 1 || imageType === 9) off += buf.readUInt16LE(4) * 2; // 跳过 colormap(罕见) + const px = Buffer.alloc(width * height * 4); + const setPx = (i, b, g, r, a) => { px[i * 4] = r; px[i * 4 + 1] = g; px[i * 4 + 2] = b; px[i * 4 + 3] = a; }; + const bytes = width * height * bytesPP; + const data = buf.subarray(off, off + bytes); + + if (imageType === 2 || imageType === 3) { + let p = 0; + for (let i = 0; i < width * height; i++) { + if (imageType === 3) setPx(i, data[p], data[p], data[p], 255), (p += 1); + else if (bytesPP === 4) setPx(i, data[p], data[p + 1], data[p + 2], data[p + 3]), (p += 4); + else setPx(i, data[p], data[p + 1], data[p + 2], 255), (p += 3); + } + } else if (imageType === 10 || imageType === 11) { + let p = 0, i = 0; + while (i < width * height && p < data.length) { + const h = data[p++]; + const count = (h & 0x7f) + 1; + const read = () => { if (imageType === 11) { const g = data[p]; p += 1; return [g, g, g, 255]; } if (bytesPP === 4) { const v = [data[p], data[p + 1], data[p + 2], data[p + 3]]; p += 4; return v; } const v = [data[p], data[p + 1], data[p + 2], 255]; p += 3; return v; }; + if (h & 0x80) { const c = read(); for (let k = 0; k < count; k++, i++) setPx(i, c[0], c[1], c[2], c[3]); } + else for (let k = 0; k < count; k++, i++) { const c = read(); setPx(i, c[0], c[1], c[2], c[3]); } + } + } else { + return null; + } + // 行序:TGA 默认自底向上 → 翻转为自顶向下 + if (!topDown) { + const row = Buffer.alloc(width * 4); + for (let y = 0; y < height / 2; y++) { + const a = y * width * 4, b = (height - 1 - y) * width * 4; + data.copy ? null : null; + px.copy(row, 0, a, a + width * 4); + px.copy(px, a, b, b + width * 4); + row.copy(px, b); + } + } + return { width, height, px }; +} + +function encodePNG(width, height, rgba) { + const raw = Buffer.alloc((width * 4 + 1) * height); + for (let y = 0; y < height; y++) { + raw[y * (width * 4 + 1)] = 0; + rgba.copy(raw, y * (width * 4 + 1) + 1, y * width * 4, (y + 1) * width * 4); + } + const chunk = (type, data) => { + const len = Buffer.alloc(4); len.writeUInt32BE(data.length); + const body = Buffer.concat([Buffer.from(type), data]); + const crc = Buffer.alloc(4); crc.writeUInt32BE(zlib.crc32(body) >>> 0); + return Buffer.concat([len, body, crc]); + }; + const ihdr = Buffer.alloc(13); + ihdr.writeUInt32BE(width, 0); ihdr.writeUInt32BE(height, 4); + ihdr[8] = 8; ihdr[9] = 6; // 8bit RGBA + return Buffer.concat([ + Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]), + chunk('IHDR', ihdr), chunk('IDAT', zlib.deflateSync(raw)), chunk('IEND', Buffer.alloc(0)), + ]); +} + +// 基岩 64×32 旧布局 → Java 64×64 布局(人形外层 UV 复制到下半区) +function legacyHumanoidTo64(img) { + if (img.width !== 64 || img.height !== 32) return img; + const out = Buffer.alloc(64 * 64 * 4, 0); + img.px.copy(out, 0); // 上半区原样 + const copy = (sx, sy, w, h, dx, dy) => { + for (let y = 0; y < h; y++) { + img.px.copy(out, ((dy + y) * 64 + dx) * 4, ((sy + y) * 64 + sx) * 4, ((sy + y) * 64 + sx + w) * 4); + } + }; + copy(16, 16, 24, 16, 16, 32); // jacket + copy(40, 16, 16, 16, 40, 32); // right sleeve + copy(40, 16, 16, 16, 40, 48); // left sleeve + copy(0, 16, 16, 16, 0, 32); // right pants + copy(0, 16, 16, 16, 0, 48); // left pants + return { width: 64, height: 64, px: out }; +} + +function findTexture(rel) { + if (!rel) return null; + const clean = rel.replace(/^textures\//, ''); + for (const ext of ['.tga', '.png', '.jpg', '.jpeg']) { + const p = `${RP}/textures/${clean}${ext}`; + if (fs.existsSync(p)) return p; + } + // 子目录模糊匹配(末段同名) + const base = path.basename(clean); + const hit = []; + (function walk(d) { + for (const f of fs.readdirSync(d)) { + const p = `${d}/${f}`; + if (fs.statSync(p).isDirectory()) walk(p); + else if (f.startsWith(base + '.')) hit.push(p); + } + })(`${RP}/textures`); + return hit.find((p) => p.endsWith('.tga')) ?? hit[0] ?? null; +} + +function convertTexture(srcPath, outName, human64) { + const outDir = `${RES}/assets/decisland/textures/entity`; + fs.mkdirSync(outDir, { recursive: true }); + const outP = `${outDir}/${outName}.png`; + if (srcPath.endsWith('.png') || srcPath.endsWith('.jpg')) { + fs.copyFileSync(srcPath, outP); + return 'copy'; + } + const img = decodeTGA(fs.readFileSync(srcPath)); + if (!img) { warn(`贴图解码失败: ${srcPath}`); return null; } + const fixed = human64 ? legacyHumanoidTo64(img) : img; + fs.writeFileSync(outP, encodePNG(fixed.width, fixed.height, fixed.px)); + return 'convert'; +} + +// ============ 刷怪蛋颜色:贴图平均色 + 名字哈希兜底 ============ +function decodePNG(buf) { + // 极简 PNG 解码:仅支持 8bit RGB(2)/RGBA(6) + filter 0-4(实体贴图均为此格式) + if (buf.length < 8 || buf.readUInt32BE(0) !== 0x89504e47) return null; + let pos = 8, w = 0, h = 0, bpp = 0; + const idat = []; + while (pos + 8 <= buf.length) { + const len = buf.readUInt32BE(pos), type = buf.toString('ascii', pos + 4, pos + 8); + const data = buf.subarray(pos + 8, pos + 8 + len); + if (type === 'IHDR') { + w = data.readUInt32BE(0); h = data.readUInt32BE(4); + if (data[8] !== 8) return null; + bpp = data[9] === 6 ? 4 : (data[9] === 2 ? 3 : 0); + if (!bpp) return null; + } else if (type === 'IDAT') idat.push(data); + else if (type === 'IEND') break; + pos += 12 + len; + } + if (!w || !h || !idat.length) return null; + let raw; + try { raw = zlib.inflateSync(Buffer.concat(idat)); } catch { return null; } + const stride = w * bpp, out = Buffer.alloc(w * h * 4); + let prev = Buffer.alloc(stride); + for (let y = 0; y < h; y++) { + const f = raw[y * (stride + 1)], line = raw.subarray(y * (stride + 1) + 1, (y + 1) * (stride + 1)); + const cur = Buffer.alloc(stride); + for (let i = 0; i < stride && i < line.length; i++) { + const a = i >= bpp ? cur[i - bpp] : 0, b = prev[i], c = i >= bpp ? prev[i - bpp] : 0; + let v = line[i]; + if (f === 1) v = (v + a) & 0xff; + else if (f === 2) v = (v + b) & 0xff; + else if (f === 3) v = (v + ((a + b) >> 1)) & 0xff; + else if (f === 4) { + const p = a + b - c, pa = Math.abs(p - a), pb = Math.abs(p - b), pc = Math.abs(p - c); + v = (v + (pa <= pb && pa <= pc ? a : pb <= pc ? b : c)) & 0xff; + } + cur[i] = v; + } + prev = cur; + for (let x = 0; x < w; x++) { + const s = x * bpp, d = (y * w + x) * 4; + if (bpp === 4) cur.copy(out, d, s, s + 4); + else { out[d] = cur[s]; out[d + 1] = cur[s + 1]; out[d + 2] = cur[s + 2]; out[d + 3] = 255; } + } + } + return { width: w, height: h, px: out }; +} + +function hslToRgb(hue, sat, lit) { + const f = (n) => { + const k = (n + hue * 12) % 12, a = sat * Math.min(lit, 1 - lit); + return Math.round(255 * (lit - a * Math.max(-1, Math.min(k - 3, 9 - k, 1)))); + }; + return [f(0), f(8), f(4)]; +} + +function eggColorsFor(name, pngPath) { + // 优先取实体贴图平均色(跳过透明像素);无贴图/解码失败 → 名字 FNV 哈希出稳定色相 + let rgb = null; + try { + const img = decodePNG(fs.readFileSync(pngPath)); + if (img) { + let r = 0, g = 0, b = 0, n = 0; + for (let i = 0; i < img.px.length; i += 4) { + if (img.px[i + 3] < 32) continue; + r += img.px[i]; g += img.px[i + 1]; b += img.px[i + 2]; n++; + } + if (n >= 16) rgb = [r / n, g / n, b / n]; + } + } catch { /* 无文件 → 哈希兜底 */ } + if (!rgb) { + let hsh = 2166136261; + for (const ch of name) { hsh ^= ch.charCodeAt(0); hsh = Math.imul(hsh, 16777619) >>> 0; } + rgb = hslToRgb((hsh % 360) / 360, 0.55, 0.45); + } + const [r, g, b] = rgb; + const cl = (v) => Math.min(255, Math.round(v)); + return { + bg: (Math.round(r) << 16) | (Math.round(g) << 8) | Math.round(b), + hi: (cl(r * 1.35 + 18) << 16) | (cl(g * 1.35 + 18) << 8) | cl(b * 1.35 + 18), + }; +} + +// ============ 行为解析 ============ +function parseBehavior(name) { + const p = `${BP}/entities/${name}.json`; + if (!fs.existsSync(p)) return null; + const j = readJson(p); + const e = j['minecraft:entity']; + // 该基岩包部分文件用无前缀键(components/component_groups),兼容两种写法 + const components = e['minecraft:components'] ?? e.components ?? {}; + const groups = e['minecraft:component_groups'] ?? e.component_groups ?? {}; + // 合并 component_groups 中的行为组件(事件触发的组也参与 AI 推断) + const merged = { ...components }; + const goalKeys = (obj) => Object.keys(obj).filter((k) => k.startsWith('minecraft:behavior.')); + const mergeComponent = (k) => { + if (merged[k] !== undefined) return; + for (const g of Object.values(groups)) { + if (g[k] !== undefined) { merged[k] = g[k]; return; } + } + }; + for (const g of Object.values(groups)) for (const k of goalKeys(g)) mergeComponent(k); + + const families = (merged['minecraft:type_family']?.family ?? []).map(String); + // 数值提取:基岩允许区间对象({range_min,range_max} / {min,max})与表达式字符串,取有效值否则回退 + const numOr = (v, def) => { + if (typeof v === 'number' && isFinite(v)) return v; + if (v && typeof v === 'object') { + const hi = [v.range_max, v.max, v.upper].find((x) => typeof x === 'number' && isFinite(x)); + if (hi != null) return hi; + const lo = [v.range_min, v.min, v.lower].find((x) => typeof x === 'number' && isFinite(x)); + if (lo != null) return lo; + } + if (typeof v === 'string') { const n = parseFloat(v); if (isFinite(n)) return n; } + return def; + }; + const health = numOr(merged['minecraft:health']?.max, numOr(merged['minecraft:health']?.value, 20)); + const movement = numOr(merged['minecraft:movement']?.value, 0.25); + const attack = numOr(merged['minecraft:attack']?.damage, 3); + const scale = numOr(merged['minecraft:scale']?.value, 1); + const box = merged['minecraft:collision_box'] ?? {}; + const kb = numOr(merged['minecraft:knockback_resistance']?.value, numOr(merged['minecraft:knockback_resistance'], 0)); + const follow = numOr(merged['minecraft:follow_range']?.value, numOr(merged['minecraft:follow_range'], 32)); + const fireImmune = merged['minecraft:fire_immune'] !== undefined || families.includes('fire_immune'); + + const melee = merged['minecraft:behavior.melee_attack'] !== undefined || merged['minecraft:behavior.melee_box_attack'] !== undefined; + const rangedComp = merged['minecraft:behavior.ranged_attack'] ?? merged['minecraft:shooter'] ?? null; + const projectileDef = merged['minecraft:projectile']?.def ?? merged['minecraft:projectile']?.projectile + ?? merged['minecraft:shooter']?.def ?? null; + const ranged = rangedComp !== undefined && rangedComp !== null; + const rangedInterval = Math.round(1 / (rangedComp?.interval ?? 0.025)); + + // 目标推断 + const targets = new Set(); + const nat = merged['minecraft:behavior.nearest_attackable_target']; + const collectTargets = (obj) => { + if (!obj) return; + for (const et of obj.entity_types ?? []) { + const filters = JSON.stringify(et.filters ?? {}); + if (/player/.test(filters)) targets.add('player'); + if (/villager(?!_)/.test(filters)) targets.add('villager'); + if (/iron_golem|irongolem/.test(filters)) targets.add('iron_golem'); + if (/snow_golem|snowgolem/.test(filters)) targets.add('snow_golem'); + const val = typeof et.filters?.value === 'string' ? et.filters.value : null; + if (val) targets.add(val.replace(/^minecraft:/, '').replace('irongolem', 'iron_golem')); + } + }; + collectTargets(nat); + for (const g of Object.values(groups)) collectTargets(g['minecraft:behavior.nearest_attackable_target']); + if (targets.size === 0 && (melee || ranged)) targets.add('player'); + + const panic = merged['minecraft:behavior.panic'] !== undefined; + const hostile = melee || ranged || nat !== undefined; + const water = families.some((f) => /fish|water|aquatic|clam|crab|nautilus|urchin|sardine/.test(f)) + || merged['minecraft:underwater_movement'] !== undefined + || merged['minecraft:behavior.swim_wander'] !== undefined + || merged['minecraft:navigation.swim'] !== undefined; + const undead = families.includes('undead'); + const flying = merged['minecraft:navigation.fly'] !== undefined || merged['minecraft:movement.fly'] !== undefined + || merged['minecraft:behavior.random_hover'] !== undefined; + + return { + name, components: merged, families, health, movement, attack, scale, box, kb, follow, fireImmune, + melee, ranged, rangedInterval, projectileDef, targets: [...targets], panic, hostile, water, undead, flying, + xp: 5, + }; +} + +// ============ 客户端实体解析 ============ +let animIndex = null; +function buildAnimIndex() { + const idx = {}; + (function walk(d) { + for (const f of fs.readdirSync(d)) { + const p = `${d}/${f}`; + if (fs.statSync(p).isDirectory()) walk(p); + else if (f.endsWith('.json')) { + try { + const j = readJson(p); + const anims = j.animations ?? {}; + for (const id of Object.keys(anims)) idx[id] = { file: p, obj: anims[id] }; + } catch { /* skip */ } + } + } + })(`${RP}/animations`); + return idx; +} + +function parseClientEntity(name) { + for (const cand of [`${RP}/entity/${name}.entity.json`, `${RP}/entity/${name}.json`]) { + if (fs.existsSync(cand)) { + const j = readJson(cand); + const d = j['minecraft:client_entity']?.description ?? {}; + const texField = d.textures?.default ?? Object.values(d.textures ?? {})[0] ?? null; + return { geometryId: d.geometry?.default ?? null, texturePath: texField, animations: d.animations ?? {} }; + } + } + return { geometryId: null, texturePath: null, animations: {} }; +} + +// ============ 物品ID清单(战利品校验) ============ +// 基岩旧版物品名 → 1.21.1 现名 +const ITEM_RENAME = { + fish: 'cod', cooked_fish: 'cooked_cod', skull: 'skeleton_skull', waterlily: 'lily_pad', + quartz_ore: 'nether_quartz_ore', red_flower: 'poppy', magma: 'magma_block', clownfish: 'tropical_fish', + record: 'music_disc_13', + record_13: 'music_disc_13', record_cat: 'music_disc_cat', record_blocks: 'music_disc_blocks', + record_chirp: 'music_disc_chirp', record_far: 'music_disc_far', record_mall: 'music_disc_mall', + record_mellohi: 'music_disc_mellohi', record_stal: 'music_disc_stal', record_strad: 'music_disc_strad', + record_ward: 'music_disc_ward', record_11: 'music_disc_11', record_wait: 'music_disc_wait', +}; + +function collectItemIds() { + const ids = new Set(); + // dec 物品:宽松扫描全部 Kotlin 源码中的引号 snake_case 字符串 + // (物品定义形式多样:registerMaterial("x")、列表元素 "x"、Builder("x")…校验池宁多勿缺) + (function walk(d) { + for (const f of fs.readdirSync(d)) { + const p = `${d}/${f}`; + const s = fs.statSync(p); + if (s.isDirectory()) walk(p); + else if (f.endsWith('.kt')) { + const t = fs.readFileSync(p, 'utf8'); + for (const m of t.matchAll(/"([a-z][a-z0-9_]{2,})"/g)) ids.add(m[1]); + } + } + })(SRC); + // 原版物品:客户端 jar 提取的完整注册表(jar_extract.mjs 产出,含全部方块物品) + const vanillaItems = `${PROJ}/tools/entity_port/vanilla_items.json`; + if (fs.existsSync(vanillaItems)) { + for (const i of JSON.parse(fs.readFileSync(vanillaItems, 'utf8'))) ids.add('mc:' + i); + } else { + throw new Error('缺少 vanilla_items.json —— 先运行 jar_extract.mjs'); + } + return ids; +} + +const EXTRA_VANILLA = new Set(['minecraft:iron_ingot', 'minecraft:gold_ingot', 'minecraft:emerald', 'minecraft:diamond', + 'minecraft:bone', 'minecraft:string', 'minecraft:gunpowder', 'minecraft:rotten_flesh', 'minecraft:arrow', + 'minecraft:torch', 'minecraft:carrot', 'minecraft:potato', 'minecraft:beetroot', 'minecraft:coal', 'minecraft:iron_nugget', + 'minecraft:gold_nugget', 'minecraft:redstone', 'minecraft:lapis_lazuli', 'minecraft:quartz', 'minecraft:leather', + 'minecraft:paper', 'minecraft:book', 'minecraft:glowstone_dust', 'minecraft:blaze_powder', 'minecraft:blaze_rod', + 'minecraft:ender_pearl', 'minecraft:ender_eye', 'minecraft:ghast_tear', 'minecraft:slime_ball', 'minecraft:snowball', + 'minecraft:stick', 'minecraft:apple', 'minecraft:bread', 'minecraft:wheat', 'minecraft:seagrass', 'minecraft:cod', + 'minecraft:salmon', 'minecraft:tropical_fish', 'minecraft:prismarine_shard', 'minecraft:prismarine_crystals', + 'minecraft:spider_eye', 'minecraft:sugar', 'minecraft:egg', 'minecraft:feather', 'minecraft:flint', + 'minecraft: experience_bottle'.trim(), 'minecraft:glass_bottle', 'minecraft:scute', 'minecraft:ink_sac', + 'minecraft:glow_ink_sac', 'minecraft:honeycomb', 'minecraft:cobweb', 'minecraft:clay_ball', 'minecraft:brick', + 'minecraft:nether_wart', 'minecraft:crying_obsidian', 'minecraft:obsidian', 'minecraft:cryingobsidian_placeholder'].map((s) => s.trim())); + +function convertLoot(name) { + const p = `${BP}/loot_tables/entities/${name}.json`; + if (!fs.existsSync(p)) return { written: false }; + const outDir = `${RES}/data/decisland/loot_table/entities`; + fs.mkdirSync(outDir, { recursive: true }); + + const mapId = (id) => { + if (typeof id !== 'string') return null; + if (id.startsWith('dec:')) return `decisland:${id.slice(4)}`; + if (id.startsWith('minecraft:')) { + const short = id.slice(10); + return ITEM_RENAME[short] ? `minecraft:${ITEM_RENAME[short]}` : id; + } + return id; + }; + const itemValid = (javaId) => { + if (!javaId?.startsWith('decisland:')) return ITEM_IDS.has('mc:' + javaId.slice(10)) || EXTRA_VANILLA.has(javaId) || javaId === 'minecraft:air'; + return ITEM_IDS.has(javaId.slice(10)); + }; + const convCount = (c) => { + if (typeof c === 'number') return c; + if (c && typeof c === 'object' && ('min' in c || 'max' in c)) return { min: c.min ?? 1, max: c.max ?? 1 }; + return c; + }; + const dropped = []; + const convFunctions = (fns) => (fns ?? []).map((f) => { + const fn = f.function?.replace(/^minecraft:/, ''); + if (fn === 'set_count') return { function: 'minecraft:set_count', count: convCount(f.count) }; + if (fn === 'set_damage') return { function: 'minecraft:set_damage', damage: f.damage ?? { min: 0, max: 1 } }; + if (fn === 'looting_enchant') return { function: 'minecraft:enchanted_count_increase', enchantment: 'minecraft:looting', count: convCount(f.count ?? 1) }; + if (fn === 'enchant_randomly') return { function: 'minecraft:enchant_randomly' }; + if (fn === 'furnace_smelt') return { function: 'minecraft:furnace_smelt' }; + if (fn === 'set_name') return { function: 'minecraft:set_name', name: f.name }; + dropped.push(fn); + return null; + }).filter(Boolean); + const convConditions = (conds) => (conds ?? []).map((c) => { + const cc = c.condition?.replace(/^minecraft:/, ''); + if (cc === 'killed_by_player') return { condition: 'minecraft:killed_by_player' }; + if (cc === 'random_chance') return { condition: 'minecraft:random_chance', chance: c.chance }; + if (cc === 'random_chance_with_looting') return { condition: 'minecraft:random_chance', chance: c.chance ?? 0.05 }; + if (cc === 'random_regional_difficulty_chance') return null; + dropped.push(cc); + return null; + }).filter(Boolean); + + const convEntry = (e, depth = 0) => { + const type = (e.type ?? 'item').replace(/^minecraft:/, ''); + if (type === 'item') { + const javaId = mapId(e.name); + if (!javaId || !itemValid(javaId)) { dropped.push('item:' + e.name); return null; } + const out = { type: 'minecraft:item', name: javaId }; + if (e.weight != null) out.weight = e.weight; + if (e.quality != null) out.quality = e.quality; + if (e.functions?.length) out.functions = convFunctions(e.functions); + if (e.conditions?.length) out.conditions = convConditions(e.conditions); + if (e.children?.length) { + const kids = (e.children ?? []).map((k) => convEntry(k, depth)).filter(Boolean); + if (kids.length) out.children = kids; + } + return out; + } + if (type === 'empty') return { type: 'minecraft:empty' }; + if (type === 'loot_table') { + // 子表引用:dec 本地表 → 递归内联;原版表 → 映射 minecraft: 命名空间 + const ref = String(e.name ?? ''); + const rel = ref.replace(/^loot_tables\//, '').replace(/\.json$/, ''); + const local = `${BP}/loot_tables/${rel}.json`; + if (depth < 4 && fs.existsSync(local)) { + try { + const sub = readJson(local); + const kids = (sub.pools ?? []).flatMap((pl) => (pl.entries ?? []).map((k) => convEntry(k, depth + 1))).filter(Boolean); + if (kids.length) return { type: 'minecraft:group', children: kids }; + } catch { /* fallthrough */ } + dropped.push('loot_table(空):' + ref); + return null; + } + return { type: 'minecraft:loot_table', name: `minecraft:${rel}` }; + } + dropped.push('type:' + type); + return null; + }; + + const src = readJson(p); + const pools = []; + for (const pool of src.pools ?? []) { + const entries = (pool.entries ?? []).map(convEntry).filter(Boolean); + if (!entries.length) continue; + const out = { rolls: pool.rolls ?? 1 }; + if (pool.conditions?.length) { + const cc = convConditions(pool.conditions); + if (cc.length) out.conditions = cc; + } + out.entries = entries; + pools.push(out); + } + if (!pools.length) { warn(`战利品表转换后为空: ${name}`); return { written: false }; } + fs.writeFileSync(`${outDir}/${name}.json`, JSON.stringify({ type: 'minecraft:entity', pools }, null, 2) + '\n'); + if (dropped.length) log.info.push(`loot[${name}] 丢弃: ${[...new Set(dropped)].join(', ')}`); + return { written: true }; +} + +// ============ 生成规则 → biome modifier ============ +function convertSpawnRule(name) { + const p = `${BP}/spawn_rules/${name}.json`; + if (!fs.existsSync(p)) return null; + const j = readJson(p); + const sr = j['minecraft:spawn_rules']; + const id = sr?.description?.identifier; + if (id !== `dec:${name}`) { warn(`spawn_rules identifier 不匹配: ${name} (${id})`); return null; } + const cond = (sr.conditions ?? [])[0]; + if (!cond) return null; + const water = cond['minecraft:spawns_underwater'] !== undefined || cond['minecraft:spawns_on_medium_surface'] === undefined && cond['minecraft:spawns_underwater'] !== undefined; + const onLand = cond['minecraft:spawns_on_surface'] !== undefined || cond['minecraft:spawns_underground'] !== undefined; + const weight = cond['minecraft:weight']?.default ?? 8; + const herd = cond['minecraft:herd'] ?? {}; + const minCount = Math.max(1, Math.min(4, herd.min_size ?? 1)); + const maxCount = Math.max(minCount, Math.min(4, herd.max_size ?? minCount)); + + // 收集群系标签 + const tags = new Set(); + const scan = (o) => { + if (Array.isArray(o)) { o.forEach(scan); return; } + if (o && typeof o === 'object') { + if (o.test === 'has_biome_tag' && typeof o.value === 'string') tags.add(o.value); + for (const v of Object.values(o)) scan(v); + } + }; + scan(cond['minecraft:biome_filter']); + let biomes = []; + for (const t of tags) { + const mapped = TAG_MAP[t]; + if (mapped) biomes.push(...mapped); + else warn(`未知群系标签: ${t} (${name})`); + } + biomes = [...new Set(biomes)]; + if (!biomes.length) biomes = tags.size === 0 ? DEFAULT_BIOMES : (water ? OCEAN_BIOMES : DEFAULT_BIOMES); + if (tags.size === 0 && water) biomes = OCEAN_BIOMES; + + // 写群系标签 + const tagDir = `${RES}/data/decisland/tags/worldgen/biome`; + fs.mkdirSync(tagDir, { recursive: true }); + fs.writeFileSync(`${tagDir}/spawns_${name}.json`, JSON.stringify({ values: biomes }, null, 2) + '\n'); + const modDir = `${RES}/data/decisland/neoforge/biome_modifier`; + fs.mkdirSync(modDir, { recursive: true }); + fs.writeFileSync(`${modDir}/${name}_spawns.json`, JSON.stringify({ + type: 'neoforge:add_spawns', + biomes: `#decisland:spawns_${name}`, + spawners: { type: `decisland:${name}`, weight, minCount, maxCount }, + }, null, 2) + '\n'); + return { water: !onLand && cond['minecraft:spawns_underwater'] !== undefined, weight, minCount, maxCount, biomes: biomes.length }; +} + +// ============ 几何/动画资源 ============ +// 按几何体 identifier 精确查找(实体常引用其它名字的几何体,如 ash_sword_phantom → geometry.ash_sword) +let geoFileIndex = null; +function buildGeoFileIndex() { + const idx = []; + (function walk(d) { + for (const f of fs.readdirSync(d)) { + const p = `${d}/${f}`; + const s = fs.statSync(p); + if (s.isDirectory()) walk(p); + else if (f.endsWith('.json')) { + try { + const j = readJson(p); + const geos = j['minecraft:geometry'] ?? []; + for (const g of (Array.isArray(geos) ? geos : [])) { + const id = g?.description?.identifier; + if (id) idx.push({ id, p, j }); + } + // legacy 1.8.0 顶层键式几何体:"geometry.xxx": { bones: [...] } + for (const k of Object.keys(j)) { + if (/^geometry\./.test(k) && j[k] && typeof j[k] === 'object' && !Array.isArray(j[k])) idx.push({ id: k, p, j }); + } + } catch { /* skip */ } + } + } + })(`${RP}/models`); + return idx; +} +function loadGeometryFile(geometryId) { + if (!geometryId) return null; + if (!geoFileIndex) geoFileIndex = buildGeoFileIndex(); + return geoFileIndex.find((e) => e.id === geometryId) ?? null; +} + +function extractGeometry(name, geometryId) { + const found = loadGeometryFile(geometryId); + if (!found) return null; + const { p, j } = found; + const outDir = `${RES}/assets/decisland/bedrock/models/entity`; + fs.mkdirSync(outDir, { recursive: true }); + const outP = `${outDir}/${name}.geometry.json`; + const geos = j['minecraft:geometry']; + if (Array.isArray(geos) && geos.length > 0) { + const match = geos.find((g) => g?.description?.identifier === geometryId) ?? geos[0]; + if (!match) return null; + fs.writeFileSync(outP, JSON.stringify({ format_version: j.format_version ?? '1.12.0', 'minecraft:geometry': [match] })); + return outP; + } + // legacy 1.8.0 顶层键式:仅保留目标几何体(加载器取文件内第一个 geometry.* 键) + const legacyKeys = Object.keys(j).filter((k) => /^geometry\./.test(k) && j[k] && typeof j[k] === 'object' && !Array.isArray(j[k])); + if (legacyKeys.length > 1) { + const keep = legacyKeys.find((k) => k === geometryId) ?? legacyKeys[0]; + fs.writeFileSync(outP, JSON.stringify({ format_version: j.format_version ?? '1.8.0', [keep]: j[keep] })); + return outP; + } + fs.copyFileSync(p, outP); + return outP; +} + +function extractAnimations(name) { + if (!animIndex) animIndex = buildAnimIndex(); + const ce = parseClientEntity(name); + const entries = Object.entries(ce.animations); + const pick = (test) => { + for (const [key, id] of entries) if (test(key) || test(id)) return id; + return null; + }; + const idleId = pick((k) => /idle|base_pose|default/i.test(k)) ?? pick((k) => !/walk|move|attack|look/i.test(k)); + const walkId = pick((k) => /walk|move|swim/i.test(k) && !/controller/i.test(k)); + const out = { format_version: '1.8.0', animations: {} }; + const addAnim = (id, outName) => { + if (!id) return false; + const hit = animIndex[id]; + // 基岩内置动画(humanoid.* / controller.animation.*)不在 RP 文件里,属正常缺失 → 仅 info + if (!hit) { + if (/^(animation\.humanoid\.|controller\.animation\.)/.test(id)) log.info.push(`内置动画未内联(忽略): ${id} (${name})`); + else warn(`动画未找到: ${id} (${name})`); + return false; + } + out.animations[outName] = hit.obj; + return true; + }; + const hasIdle = addAnim(idleId, 'idle'); + const hasWalk = addAnim(walkId ?? idleId, 'walk'); + const outDir = `${RES}/assets/decisland/bedrock/animations/entity`; + fs.mkdirSync(outDir, { recursive: true }); + if (!out.animations.idle) out.animations.idle = { loop: true, animation_length: 0 }; + if (!out.animations.walk) out.animations.walk = { loop: true, animation_length: 0 }; + fs.writeFileSync(`${outDir}/${name}.animation.json`, JSON.stringify(out)); + return { hasIdle, hasWalk }; +} + +// ============ ModEntities 弹射物字段索引(远程攻击映射用) ============ +function collectProjectileFields() { + const t = fs.readFileSync(`${SRC}/entity/ModEntities.kt`, 'utf8'); + const map = {}; + for (const m of t.matchAll(/val ([A-Z0-9_]+): Supplier>/g)) { + map[m[1].toLowerCase()] = m[1]; + } + return map; +} + +// ============ 主流程 ============ +const ITEM_IDS = collectItemIds(); +const PROJ_FIELDS = collectProjectileFields(); +const PORT_LIST = buildPortList(); +console.log(`移植清单: ${PORT_LIST.length} 个实体`); +log.info.push(`贴图ID池: dec ${[...ITEM_IDS].filter((i) => !i.startsWith('mc:')).length} / vanilla ${[...ITEM_IDS].filter((i) => i.startsWith('mc:')).length}`); + +const results = []; +const texOverrideMap = {}; // name → 原版基类实体是否有自定义贴图(决定是否覆写 getTextureLocation) +const eggColors = {}; // name → { bg, hi } 刷怪蛋颜色(贴图平均色/名字哈希兜底) +const categorized = fs.existsSync('C:/Users/Administrator/AppData/Local/Temp/bedrock_entity_cats.txt') + ? fs.readFileSync('C:/Users/Administrator/AppData/Local/Temp/bedrock_entity_cats.txt', 'utf8') : ''; + +for (const name of PORT_LIST) { + const bh = parseBehavior(name); + if (!bh) { warn(`行为文件缺失: ${name}`); continue; } + const ce = parseClientEntity(name); + const runtime = (() => { + const j = readJson(`${BP}/entities/${name}.json`); + return j['minecraft:entity'].description.runtime_identifier ?? null; + })(); + + let impl = null; // { kind: 'vanilla'|'custom', ... } + const geoRuntime = matchVanillaGeo(ce.geometryId); + if (runtime && VANILLA_MAP[runtime]) { + impl = { kind: 'vanilla', ...VANILLA_MAP[runtime] }; + } else if (geoRuntime && VANILLA_MAP[geoRuntime]) { + impl = { kind: 'vanilla', ...VANILLA_MAP[geoRuntime] }; + } else if (!ce.geometryId && !runtime) { + // 无几何体也无 runtime → 回退原版人形(Zombie 模型 + AI) + warn(`${name}: 无几何体/runtime → 回退原版 Zombie 人形`); + impl = { kind: 'vanilla', ...VANILLA_MAP['minecraft:zombie'] }; + } + if (!impl) { + const geoP = ce.geometryId ? extractGeometry(name, ce.geometryId) : null; + if (geoP) { + const anims = extractAnimations(name); + impl = { kind: 'custom', hasAnim: anims.hasIdle || anims.hasWalk }; + } else { + warn(`无几何体资源: ${name} (runtime=${runtime}, geo=${ce.geometryId})`); + continue; + } + } + + // 贴图 + let texOk = false; + if (ce.texturePath) { + let src = findTexture(ce.texturePath); + // 基岩引用原版材质(textures/blocks/ice、textures/entity/skeleton/stray 等)→ 用 jar 提取的原版贴图 + if (!src) { + const vp = `${PROJ}/tools/entity_port/vanilla_tex/${path.basename(ce.texturePath)}.png`; + if (fs.existsSync(vp)) src = vp; + } + if (src) texOk = !!convertTexture(src, name, impl.kind === 'vanilla' && impl.human64 === true); + else warn(`贴图未找到: ${ce.texturePath} (${name})`); + } else if (impl.kind === 'vanilla') { + texOk = true; // 无自定义贴图 → 不覆写 getTextureLocation,继承原版贴图 + } + if (!texOk && impl.kind === 'custom') warn(`无贴图: ${name}`); + texOverrideMap[name] = impl.kind === 'vanilla' && !!ce.texturePath && texOk; + + // 战利品 & 生成条件 + const loot = convertLoot(name); + const spawn = convertSpawnRule(name); + // 刷怪蛋颜色:优先贴图平均色 + eggColors[name] = eggColorsFor(name, `${RES}/assets/decisland/textures/entity/${name}.png`); + + results.push({ name, bh, ce, runtime, impl, loot, spawn }); +} + +// ============ Kotlin 代码生成 ============ +const pascal = (s) => s.split('_').map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(''); +const upper = (s) => s.toUpperCase(); + +// --- GeneratedVanillaEntities.kt --- +const usedImports = new Set(['net.minecraft.world.entity.EntityType', 'net.minecraft.world.level.Level']); +const entityClassNames = {}; +let vtBody = '// 由 tools/entity_port/generate.mjs 生成:基岩版原版基类生物(原版 AI + 自定义贴图)\n'; +for (const r of results.filter((x) => x.impl.kind === 'vanilla')) { + const cn = pascal(r.name); + let sup = r.impl.cls; + const supFqn = `net.minecraft.world.entity.${r.impl.pkg}.${sup}`; + if (cn === sup) { + // 类名与原版基类同名:同文件声明遮蔽导入,需用全限定名引用父类(不导入) + sup = supFqn; + } else { + usedImports.add(supFqn); + } + entityClassNames[r.name] = cn; + let extra = ''; + if (r.impl.fire || r.bh.fireImmune) extra += '\n override fun fireImmune() = true'; + vtBody += `\nclass ${cn}(entityType: EntityType, level: Level) : ${sup}(entityType, level) {${extra}\n}\n`; +} +const vt = `package com.dec.decisland.entity + +import ${[...usedImports].sort().join('\nimport ')} + +${vtBody}`; +fs.writeFileSync(`${SRC}/entity/GeneratedVanillaEntities.kt`, vt); + +// --- GeneratedMobs.kt --- +let g = `package com.dec.decisland.entity + +import com.dec.decisland.DecIsland +import com.dec.decisland.entity.custom.BedrockMob +import com.dec.decisland.entity.custom.MobConfig +import net.minecraft.core.registries.Registries +import net.minecraft.world.entity.Entity +import net.minecraft.world.entity.EntityType +import net.minecraft.world.entity.MobCategory +import net.minecraft.world.entity.SpawnPlacementTypes +import net.minecraft.world.entity.ai.attributes.AttributeSupplier +import net.minecraft.world.entity.ai.attributes.Attributes +import net.minecraft.world.entity.monster.Monster +import net.minecraft.world.entity.Mob +import net.minecraft.world.item.Item +import net.minecraft.world.level.levelgen.Heightmap +import net.neoforged.bus.api.IEventBus +import net.neoforged.neoforge.common.DeferredSpawnEggItem +import net.neoforged.neoforge.event.entity.EntityAttributeCreationEvent +import net.neoforged.neoforge.event.entity.RegisterSpawnPlacementsEvent +import net.neoforged.neoforge.registries.DeferredHolder +import net.neoforged.neoforge.registries.DeferredItem +import net.neoforged.neoforge.registries.DeferredRegister +import java.util.function.Supplier + +/** 由 tools/entity_port/generate.mjs 生成:基岩版生物批量移植注册表 */ +object GeneratedMobs { + @JvmField + val ENTITY_TYPES: DeferredRegister> = + DeferredRegister.create(Registries.ENTITY_TYPE, DecIsland.MOD_ID) + + @JvmField + val SPAWN_EGGS: DeferredRegister.Items = + DeferredRegister.createItems(DecIsland.MOD_ID) + + private fun registerEntity( + name: String, + factory: (EntityType, Level2) -> T, + category: MobCategory, + configure: EntityType.Builder.() -> Unit = {}, + ): DeferredHolder, EntityType> = + ENTITY_TYPES.register(name, Supplier { EntityType.Builder.of(factory, category).apply(configure).build(name) }) +`; +// Level2 占位替换为 Level(避免 import 冲突处理复杂) +g = g.replace(/Level2/g, 'Level').replace('import net.minecraft.world.entity.Entity\n', 'import net.minecraft.world.entity.Entity\nimport net.minecraft.world.entity.LivingEntity\nimport net.minecraft.world.level.Level\n'); + +// 客户端渲染器注册表数据(给 GeneratedMobClient 用):写入 JSON sidecar,避免 Kotlin 里重复资源路径 +const clientSpec = []; + +const catOf = (r) => { + const f = r.bh.families.join(','); + if (r.bh.water && !r.bh.hostile) return 'WATER_CREATURE'; + if (r.bh.water && r.bh.hostile) return 'WATER_CREATURE'; + if (/villager|animal|peaceful/.test(f) && !r.bh.hostile) return 'CREATURE'; + if (r.impl.kind === 'vanilla' && ['Bat', 'Cod', 'Chicken', 'PolarBear', 'Wolf', 'IronGolem', 'SnowGolem'].includes(r.impl.cls)) { + return (r.bh.hostile && !['IronGolem', 'SnowGolem', 'Wolf', 'PolarBear'].includes(r.impl.cls)) ? 'MONSTER' : 'CREATURE'; + } + return 'MONSTER'; +}; + +const attrEntries = []; +const spawnEntries = []; +const fqAttr = (r) => { + const cls = `net.minecraft.world.entity.${r.impl.pkg}.${r.impl.cls}`; + return ATTR_BUILDER[r.impl.cls] ?? `${cls}.createAttributes()`; +}; +const ATTRS = 'net.minecraft.world.entity.ai.attributes.Attributes'; +for (const r of results) { + const cn = r.impl.kind === 'vanilla' ? entityClassNames[r.name] : 'BedrockMob'; + const cat = catOf(r); + const w = Math.max(0.3, Math.min(6, +(r.bh.box.width ?? 0.6))); + const h = Math.max(0.3, Math.min(8, +(r.bh.box.height ?? 1.8))); + if (r.impl.kind === 'vanilla') { + const fire = (r.impl.fire || r.bh.fireImmune) ? '.fireImmune()' : ''; + g += ` + @JvmField + val ${upper(r.name)}: Supplier> = + registerEntity("${r.name}", { type, level -> ${cn}(type, level) }, MobCategory.${cat}) { + sized(${w.toFixed(2)}f, ${h.toFixed(2)}f)${fire} + } +`; + // 属性:原版构建器 + 基岩血量/攻击差异覆盖 + let ov = ''; + const defHp = VANILLA_HP[r.impl.cls] ?? 20; + if (Math.abs(r.bh.health - defHp) > 0.01) ov += `.add(${ATTRS}.MAX_HEALTH, ${Math.max(1, r.bh.health).toFixed(1)})`; + if (r.impl.pkg === 'monster' && r.bh.melee) ov += `.add(${ATTRS}.ATTACK_DAMAGE, ${Math.max(0.5, r.bh.attack).toFixed(1)})`; + attrEntries.push(` ${upper(r.name)} to Supplier { ${fqAttr(r)}${ov} }`); + } else { + // custom BedrockMob + const c = r.bh; + const targets = c.targets.filter((t) => ['player', 'villager', 'iron_golem', 'snow_golem'].includes(t)); + const projField = (() => { + const def = String(c.projectileDef ?? '').replace(/^dec:/, '').toLowerCase(); + return def && PROJ_FIELDS[def] ? `ModEntities.${PROJ_FIELDS[def]}` : null; + })(); + const friendly = !c.hostile; + const cfgArgs = [ + `"${r.name}"`, + `health = ${Math.max(1, c.health).toFixed(1)}`, + `speed = ${Math.max(0.08, c.movement > 0 ? c.movement : 0.25).toFixed(3)}`, + `attackDamage = ${Math.max(0.5, c.attack).toFixed(1)}`, + `followRange = ${Math.max(8, Math.min(96, c.follow)).toFixed(1)}`, + `knockbackResistance = ${Math.max(0, Math.min(1, c.kb)).toFixed(2)}`, + `xp = ${c.xp}`, + `fireImmune = ${c.fireImmune || c.families.includes('fire_immune')}`, + `undead = ${c.undead}`, + `water = ${c.water}`, + `friendly = ${friendly}`, + `melee = ${c.melee}`, + `rangedInterval = ${Math.max(8, Math.min(200, c.rangedInterval))}`, + `targets = listOf(${targets.map((t) => `"${t}"`).join(', ') || '"player"'})`, + ]; + if (projField) cfgArgs.push(`rangedProjectile = Supplier { ${projField}.get() }`); + g += ` + private val CFG_${upper(r.name)} = MobConfig(${cfgArgs.join(', ')}) + + @JvmField + val ${upper(r.name)}: Supplier> = + registerEntity("${r.name}", { type, level -> BedrockMob(type, level, CFG_${upper(r.name)}) }, MobCategory.${cat}) { + sized(${w.toFixed(2)}f, ${h.toFixed(2)}f) + } +`; + attrEntries.push(` ${upper(r.name)} to Supplier { BedrockMob.createAttributes(CFG_${upper(r.name)}) }`); + } + // 刷怪蛋:颜色取贴图平均色(兜底名字哈希) + const ec = eggColors[r.name]; + g += ` + @JvmField + val ${upper(r.name)}_EGG: DeferredItem = + SPAWN_EGGS.register("${r.name}_spawn_egg", Supplier { + DeferredSpawnEggItem(Supplier { ${upper(r.name)}.get() }, ${ec.bg}, ${ec.hi}, Item.Properties()) + }) +`; + if (r.spawn) { + const rule = r.bh.water || r.spawn.water ? 'WATER' : (cat === 'MONSTER' ? 'MONSTER' : 'MOB'); + spawnEntries.push(` SpawnEntry(${upper(r.name)}, "${rule}")`); + } + clientSpec.push({ + name: r.name, kind: r.impl.kind, sup: r.impl.kind === 'vanilla' ? r.impl.cls : null, + ren: r.impl.kind === 'vanilla' ? r.impl.ren : null, renParam: r.impl.kind === 'vanilla' ? r.impl.rp : null, + renPkg: r.impl.kind === 'vanilla' ? r.impl.pkgR : null, + renGeneric: r.impl.kind === 'vanilla' ? (GENERIC_REN_PARAM[r.impl.ren] ?? null) : null, + scale: +(r.bh.scale ?? 1).toFixed(2), texOverride: r.impl.kind === 'vanilla' && texOverrideMap[r.name] === true, + }); +} + +// ==== entity_type 标签(1.21.1 数据驱动:水生呼吸 / 亡灵分类) ==== +const waterTagIds = []; +const undeadTagIds = []; +for (const r of results) { + const cat = catOf(r); + const isWater = r.bh.water || cat === 'WATER_CREATURE' || (r.spawn && r.spawn.water); + if (isWater) waterTagIds.push(`decisland:${r.name}`); + const vanillaUndead = r.impl.kind === 'vanilla' && ['Zombie', 'Skeleton', 'WitherSkeleton', 'Phantom'].includes(r.impl.cls); + if (r.bh.undead || vanillaUndead) undeadTagIds.push(`decisland:${r.name}`); +} +const etTagDir = `${RES}/data/minecraft/tags/entity_type`; +fs.mkdirSync(etTagDir, { recursive: true }); +if (waterTagIds.length) { + fs.writeFileSync(`${etTagDir}/can_breathe_under_water.json`, JSON.stringify({ values: waterTagIds }, null, 2) + '\n'); + console.log(`entity_type 标签: can_breathe_under_water=${waterTagIds.length}`); +} +if (undeadTagIds.length) { + for (const t of ['undead', 'ignores_poison_and_regen', 'inverted_healing_and_harm', 'wither_friends', 'sensitive_to_smite']) { + fs.writeFileSync(`${etTagDir}/${t}.json`, JSON.stringify({ values: undeadTagIds }, null, 2) + '\n'); + } + console.log(`entity_type 标签: undead×5=${undeadTagIds.length}`); +} + +// ==== 刷怪蛋物品模型(template_spawn_egg 纯色蛋,颜色由物品注册时的 int 决定) ==== +const eggModelDir = `${RES}/assets/decisland/models/item`; +fs.mkdirSync(eggModelDir, { recursive: true }); +for (const r of results) { + fs.writeFileSync(`${eggModelDir}/${r.name}_spawn_egg.json`, `${JSON.stringify({ parent: 'minecraft:item/template_spawn_egg' }, null, 2)}\n`); +} +console.log(`刷怪蛋: ${results.length} 个(物品模型 + 注册)`); + +g += ` + // ==== 属性 ==== + data class SpawnEntry(val type: Supplier>, val rule: String) + + @JvmStatic + val ATTRIBUTE_ENTRIES: List>, Supplier>> = listOf( +${attrEntries.join(',\n')} + ) + + @JvmStatic + val SPAWN_ENTRIES: List = listOf( +${spawnEntries.join(',\n')} + ) + + @JvmStatic + fun register(modEventBus: IEventBus) { + ENTITY_TYPES.register(modEventBus) + SPAWN_EGGS.register(modEventBus) + } + + @JvmStatic + fun registerAttributes(event: EntityAttributeCreationEvent) { + for ((type, builder) in ATTRIBUTE_ENTRIES) { + // Builder 必须在事件回调期构建: 时 NeoForge 扩展属性(swim_speed 等)尚未绑定会 NPE + event.put(@Suppress("UNCHECKED_CAST") (type.get() as EntityType), builder.get().build()) + } + } + + @JvmStatic + fun registerSpawnPlacements(event: RegisterSpawnPlacementsEvent) { + for ((type, rule) in SPAWN_ENTRIES) { + if (rule == "MONSTER") { + val t = @Suppress("UNCHECKED_CAST") (type.get() as EntityType) + event.register(t, SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Monster::checkMonsterSpawnRules, RegisterSpawnPlacementsEvent.Operation.REPLACE) + } else { + val t = @Suppress("UNCHECKED_CAST") (type.get() as EntityType) + val placement = if (rule == "WATER") SpawnPlacementTypes.IN_WATER else SpawnPlacementTypes.ON_GROUND + event.register(t, placement, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Mob::checkMobSpawnRules, RegisterSpawnPlacementsEvent.Operation.REPLACE) + } + } + } +} +`; +fs.writeFileSync(`${SRC}/entity/GeneratedMobs.kt`, g); +fs.writeFileSync('f:/DecIslandNeoforge-main/tools/entity_port/client_spec.json', JSON.stringify(clientSpec, null, 1)); + +// --- 客户端渲染器 GeneratedMobClient.kt --- +const vanillaRens = clientSpec.filter((c) => c.kind === 'vanilla'); +const customRens = clientSpec.filter((c) => c.kind === 'custom'); +let rc = `package com.dec.decisland.client.renderer + +import com.dec.decisland.DecIsland +import com.dec.decisland.entity.GeneratedMobs +import com.dec.decisland.entity.custom.BedrockMob +import net.minecraft.client.renderer.entity.EntityRenderers +import net.minecraft.client.renderer.entity.EntityRendererProvider +import net.minecraft.resources.ResourceLocation +`; +const renImports = new Set(); +for (const c of vanillaRens) { + renImports.add(`net.minecraft.client.renderer.entity.${c.ren}`); // 渲染器均在根包(已核验) + renImports.add(`net.minecraft.world.entity.${c.renPkg}.${c.renParam}`); + if (c.sup !== c.renParam) renImports.add(`net.minecraft.world.entity.${c.renPkg}.${c.sup}`); +} +rc += `import ${[...renImports].sort().join('\nimport ')}\n\n`; + +rc += `/** 由 tools/entity_port/generate.mjs 生成:批量实体渲染器(原版模型换贴图 + 基岩模型通用渲染) */\n`; +const renClassNames = {}; +for (const c of vanillaRens) { + const cn = `${pascal(c.name)}GeneratedRenderer`; + renClassNames[c.name] = cn; + const generic = c.renGeneric ? `<${c.renGeneric}>` : ''; + // texOverride=false → 不覆写 getTextureLocation,继承原版贴图 + const override = c.texOverride + ? `\n override fun getTextureLocation(entity: ${c.renParam}): ResourceLocation = TEXTURE` + : ''; + const companion = c.texOverride + ? `\n companion object {\n val TEXTURE: ResourceLocation = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/${c.name}.png")\n }\n` + : '\n'; + rc += `class ${cn}(context: EntityRendererProvider.Context) : ${c.ren}${generic}(context) {${override}${companion}}\n`; +} + +rc += `object GeneratedMobClient { + @JvmStatic + fun registerAll() { +`; +for (const c of vanillaRens) { + rc += ` EntityRenderers.register<${c.renGeneric ?? c.sup}>(GeneratedMobs.${upper(c.name)}.get(), ::${renClassNames[c.name]})\n`; +} +for (const c of customRens) { + rc += ` EntityRenderers.register(GeneratedMobs.${upper(c.name)}.get()) { context -> + BedrockMobRenderer(context, geo("${c.name}"), anim("${c.name}"), "idle", "walk", tex("${c.name}"), ${c.scale}f) + } +`; +} +rc += ` } + + private fun geo(name: String) = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "bedrock/models/entity/$name.geometry.json") + private fun anim(name: String) = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "bedrock/animations/entity/$name.animation.json") + private fun tex(name: String) = ResourceLocation.fromNamespaceAndPath(DecIsland.MOD_ID, "textures/entity/$name.png") +} +`; +fs.writeFileSync(`${SRC}/client/renderer/GeneratedMobClient.kt`, rc); + +// ============ 汇总 ============ +console.log(`\n=== 完成 ${results.length} 个实体 ===`); +console.log(`原版基类: ${results.filter((r) => r.impl.kind === 'vanilla').length}, 自定义模型: ${results.filter((r) => r.impl.kind === 'custom').length}`); +console.log(`战利品表: ${results.filter((r) => r.loot.written).length}, 生成条件: ${results.filter((r) => r.spawn).length}`); +fs.writeFileSync('f:/DecIslandNeoforge-main/tools/entity_port/gen_report.txt', + `WARN (${log.warn.length}):\n${log.warn.map((w) => ' ' + w).join('\n')}\n\nINFO:\n${log.info.map((w) => ' ' + w).join('\n')}\n`); +console.log(`警告 ${log.warn.length} 条 → tools/entity_port/gen_report.txt`); diff --git a/tools/entity_port/jar_extract.mjs b/tools/entity_port/jar_extract.mjs new file mode 100644 index 0000000..092a8d0 --- /dev/null +++ b/tools/entity_port/jar_extract.mjs @@ -0,0 +1,65 @@ +// 从客户端 jar 提取:物品清单(models/item/*)+ 指定贴图。纯 Node 解析 ZIP。 +import fs from 'fs'; +import zlib from 'zlib'; + +const JAR = 'E:/.minecraft/versions/1.21.1-NeoForge_21.1.247/1.21.1-NeoForge_21.1.247.jar'; +const buf = fs.readFileSync(JAR); + +// 定位 EOCD +let eocd = -1; +for (let i = buf.length - 22; i >= Math.max(0, buf.length - 65558); i--) { + if (buf.readUInt32LE(i) === 0x06054b50) { eocd = i; break; } +} +if (eocd < 0) throw new Error('EOCD not found'); +const count = buf.readUInt16LE(eocd + 10); +let off = buf.readUInt32LE(eocd + 16); + +const entries = []; +for (let i = 0; i < count; i++) { + if (buf.readUInt32LE(off) !== 0x02014b50) break; + const method = buf.readUInt16LE(off + 10); + const compSize = buf.readUInt32LE(off + 20); + const nameLen = buf.readUInt16LE(off + 28); + const extraLen = buf.readUInt16LE(off + 30); + const commentLen = buf.readUInt16LE(off + 32); + const lho = buf.readUInt32LE(off + 42); + const name = buf.toString('utf8', off + 46, off + 46 + nameLen); + entries.push({ name, method, compSize, lho }); + off += 46 + nameLen + extraLen + commentLen; +} +console.error(`jar 条目: ${entries.length}`); + +function extract(name) { + const e = entries.find((x) => x.name === name); + if (!e) return null; + const lh = e.lho; + const nameLen = buf.readUInt16LE(lh + 26); + const extraLen = buf.readUInt16LE(lh + 28); + const dataStart = lh + 30 + nameLen + extraLen; + const raw = buf.subarray(dataStart, dataStart + e.compSize); + return e.method === 0 ? Buffer.from(raw) : zlib.inflateRawSync(raw); +} + +// 1) 物品清单 +const items = entries.filter((e) => /^assets\/minecraft\/models\/item\/[a-z0-9_.]+\.json$/.test(e.name)) + .map((e) => e.name.slice('assets/minecraft/models/item/'.length, -5)); +fs.writeFileSync('f:/DecIslandNeoforge-main/tools/entity_port/vanilla_items.json', JSON.stringify(items.sort(), null, 0)); +console.log(`物品数: ${items.length}`); +const check = ['netherrack', 'snow', 'ice', 'tnt', 'sponge', 'music_disc_13', 'cod', 'skeleton_skull', 'lily_pad', + 'nether_quartz_ore', 'poppy', 'sweet_berries', 'amethyst_shard', 'copper_ingot', 'iron_sword', 'bow', 'crossbow', + 'enchanted_book', 'iron_helmet', 'netherite_scrap', 'crimson_fungus', 'nether_wart_block', 'end_stone', 'coal_ore', 'redstone']; +console.log('抽检:', check.map((c) => `${c}=${items.includes(c)}`).join(' ')); + +// 2) 提取贴图(覆盖冰刺贴图等基岩引用原版材质的情况) +const need = { + 'assets/minecraft/textures/block/ice.png': 'f:/DecIslandNeoforge-main/tools/entity_port/vanilla_tex/ice.png', + 'assets/minecraft/textures/block/tnt.png': 'f:/DecIslandNeoforge-main/tools/entity_port/vanilla_tex/tnt.png', + 'assets/minecraft/textures/block/blackstone.png': 'f:/DecIslandNeoforge-main/tools/entity_port/vanilla_tex/blackstone.png', + 'assets/minecraft/textures/entity/skeleton/stray.png': 'f:/DecIslandNeoforge-main/tools/entity_port/vanilla_tex/stray.png', +}; +fs.mkdirSync('f:/DecIslandNeoforge-main/tools/entity_port/vanilla_tex', { recursive: true }); +for (const [src, dst] of Object.entries(need)) { + const d = extract(src); + if (d) { fs.writeFileSync(dst, d); console.log(`提取 ${src} → ${dst} (${d.length}B)`); } + else console.log(`缺失 ${src}`); +} diff --git a/tools/entity_port/recon.mjs b/tools/entity_port/recon.mjs new file mode 100644 index 0000000..000f6a4 --- /dev/null +++ b/tools/entity_port/recon.mjs @@ -0,0 +1,29 @@ +// 勘察脚本:主类注册调用 + 物品ID清单 +import fs from 'fs'; +import path from 'path'; + +const main = fs.readFileSync('f:/DecIslandNeoforge-main/src/main/java/com/dec/decisland/DecIsland.kt', 'utf8'); +console.log('=== DecIsland.kt register calls ==='); +console.log(main.split('\n').filter(l => l.includes('.register(')).map(l => l.trim()).join('\n')); + +const files = []; +(function walk(d) { + for (const f of fs.readdirSync(d)) { + const p = path.join(d, f); + if (fs.statSync(p).isDirectory()) walk(p); + else if (f.endsWith('.kt')) files.push(p); + } +})('f:/DecIslandNeoforge-main/src/main/java/com/dec/decisland/item'); +const itemSrc = files.map(f => fs.readFileSync(f, 'utf8')).join('\n'); +// 常见注册模式: registerItem("name", ...) / "name" to Supplier +const ids = new Set(); +for (const m of itemSrc.matchAll(/register(?:Item)?\(\s*"([a-z0-9_]+)"/g)) ids.add(m[1]); +console.log('=== register() style ids:', ids.size, '==='); +console.log([...ids].slice(0, 20).join(', ')); +// 找到 ModItems 文件里第一段注册示例 +const modItemsPath = files.find(f => f.endsWith('ModItems.kt')); +if (modItemsPath) { + const head = fs.readFileSync(modItemsPath, 'utf8').split('\n').filter(l => l.trim().length && !l.trim().startsWith('import')).slice(0, 40); + console.log('=== ModItems head ==='); + console.log(head.join('\n')); +} diff --git a/tools/entity_port/vanilla_items.json b/tools/entity_port/vanilla_items.json new file mode 100644 index 0000000..b7400fd --- /dev/null +++ b/tools/entity_port/vanilla_items.json @@ -0,0 +1 @@ +["acacia_boat","acacia_button","acacia_chest_boat","acacia_door","acacia_fence","acacia_fence_gate","acacia_hanging_sign","acacia_leaves","acacia_log","acacia_planks","acacia_pressure_plate","acacia_sapling","acacia_sign","acacia_slab","acacia_stairs","acacia_trapdoor","acacia_wood","activator_rail","air","allay_spawn_egg","allium","amethyst_block","amethyst_bud","amethyst_cluster","amethyst_shard","ancient_debris","andesite","andesite_slab","andesite_stairs","andesite_wall","angler_pottery_sherd","anvil","apple","archer_pottery_sherd","armadillo_scute","armadillo_spawn_egg","armor_stand","arms_up_pottery_sherd","arrow","axolotl_bucket","axolotl_spawn_egg","azalea","azalea_leaves","azure_bluet","baked_potato","bamboo","bamboo_block","bamboo_button","bamboo_chest_raft","bamboo_door","bamboo_fence","bamboo_fence_gate","bamboo_hanging_sign","bamboo_mosaic","bamboo_mosaic_slab","bamboo_mosaic_stairs","bamboo_planks","bamboo_pressure_plate","bamboo_raft","bamboo_sign","bamboo_slab","bamboo_stairs","bamboo_trapdoor","barrel","barrier","basalt","bat_spawn_egg","beacon","bedrock","bee_nest","bee_spawn_egg","beef","beehive","beetroot","beetroot_seeds","beetroot_soup","bell","big_dripleaf","birch_boat","birch_button","birch_chest_boat","birch_door","birch_fence","birch_fence_gate","birch_hanging_sign","birch_leaves","birch_log","birch_planks","birch_pressure_plate","birch_sapling","birch_sign","birch_slab","birch_stairs","birch_trapdoor","birch_wood","black_banner","black_bed","black_candle","black_carpet","black_concrete","black_concrete_powder","black_dye","black_glazed_terracotta","black_shulker_box","black_stained_glass","black_stained_glass_pane","black_terracotta","black_wool","blackstone","blackstone_slab","blackstone_stairs","blackstone_wall","blade_pottery_sherd","blast_furnace","blaze_powder","blaze_rod","blaze_spawn_egg","blue_banner","blue_bed","blue_candle","blue_carpet","blue_concrete","blue_concrete_powder","blue_dye","blue_glazed_terracotta","blue_ice","blue_orchid","blue_shulker_box","blue_stained_glass","blue_stained_glass_pane","blue_terracotta","blue_wool","bogged_spawn_egg","bolt_armor_trim_smithing_template","bone","bone_block","bone_meal","book","bookshelf","bow","bow_pulling_0","bow_pulling_1","bow_pulling_2","bowl","brain_coral","brain_coral_block","brain_coral_fan","bread","breeze_rod","breeze_spawn_egg","brewer_pottery_sherd","brewing_stand","brick","brick_slab","brick_stairs","brick_wall","bricks","broken_elytra","brown_banner","brown_bed","brown_candle","brown_carpet","brown_concrete","brown_concrete_powder","brown_dye","brown_glazed_terracotta","brown_mushroom","brown_mushroom_block","brown_shulker_box","brown_stained_glass","brown_stained_glass_pane","brown_terracotta","brown_wool","brush","brush_brushing_0","brush_brushing_1","brush_brushing_2","bubble_coral","bubble_coral_block","bubble_coral_fan","bucket","budding_amethyst","bundle","bundle_filled","burn_pottery_sherd","cactus","cake","calcite","calibrated_sculk_sensor","camel_spawn_egg","campfire","candle","carrot","carrot_on_a_stick","cartography_table","carved_pumpkin","cat_spawn_egg","cauldron","cave_spider_spawn_egg","chain","chain_command_block","chainmail_boots","chainmail_boots_amethyst_trim","chainmail_boots_copper_trim","chainmail_boots_diamond_trim","chainmail_boots_emerald_trim","chainmail_boots_gold_trim","chainmail_boots_iron_trim","chainmail_boots_lapis_trim","chainmail_boots_netherite_trim","chainmail_boots_quartz_trim","chainmail_boots_redstone_trim","chainmail_chestplate","chainmail_chestplate_amethyst_trim","chainmail_chestplate_copper_trim","chainmail_chestplate_diamond_trim","chainmail_chestplate_emerald_trim","chainmail_chestplate_gold_trim","chainmail_chestplate_iron_trim","chainmail_chestplate_lapis_trim","chainmail_chestplate_netherite_trim","chainmail_chestplate_quartz_trim","chainmail_chestplate_redstone_trim","chainmail_helmet","chainmail_helmet_amethyst_trim","chainmail_helmet_copper_trim","chainmail_helmet_diamond_trim","chainmail_helmet_emerald_trim","chainmail_helmet_gold_trim","chainmail_helmet_iron_trim","chainmail_helmet_lapis_trim","chainmail_helmet_netherite_trim","chainmail_helmet_quartz_trim","chainmail_helmet_redstone_trim","chainmail_leggings","chainmail_leggings_amethyst_trim","chainmail_leggings_copper_trim","chainmail_leggings_diamond_trim","chainmail_leggings_emerald_trim","chainmail_leggings_gold_trim","chainmail_leggings_iron_trim","chainmail_leggings_lapis_trim","chainmail_leggings_netherite_trim","chainmail_leggings_quartz_trim","chainmail_leggings_redstone_trim","charcoal","cherry_boat","cherry_button","cherry_chest_boat","cherry_door","cherry_fence","cherry_fence_gate","cherry_hanging_sign","cherry_leaves","cherry_log","cherry_planks","cherry_pressure_plate","cherry_sapling","cherry_sign","cherry_slab","cherry_stairs","cherry_trapdoor","cherry_wood","chest","chest_minecart","chicken","chicken_spawn_egg","chipped_anvil","chiseled_bookshelf","chiseled_copper","chiseled_deepslate","chiseled_nether_bricks","chiseled_polished_blackstone","chiseled_quartz_block","chiseled_red_sandstone","chiseled_sandstone","chiseled_stone_bricks","chiseled_tuff","chiseled_tuff_bricks","chorus_flower","chorus_fruit","chorus_plant","clay","clay_ball","clock","clock_01","clock_02","clock_03","clock_04","clock_05","clock_06","clock_07","clock_08","clock_09","clock_10","clock_11","clock_12","clock_13","clock_14","clock_15","clock_16","clock_17","clock_18","clock_19","clock_20","clock_21","clock_22","clock_23","clock_24","clock_25","clock_26","clock_27","clock_28","clock_29","clock_30","clock_31","clock_32","clock_33","clock_34","clock_35","clock_36","clock_37","clock_38","clock_39","clock_40","clock_41","clock_42","clock_43","clock_44","clock_45","clock_46","clock_47","clock_48","clock_49","clock_50","clock_51","clock_52","clock_53","clock_54","clock_55","clock_56","clock_57","clock_58","clock_59","clock_60","clock_61","clock_62","clock_63","coal","coal_block","coal_ore","coarse_dirt","coast_armor_trim_smithing_template","cobbled_deepslate","cobbled_deepslate_slab","cobbled_deepslate_stairs","cobbled_deepslate_wall","cobblestone","cobblestone_slab","cobblestone_stairs","cobblestone_wall","cobweb","cocoa_beans","cod","cod_bucket","cod_spawn_egg","command_block","command_block_minecart","comparator","compass","compass_00","compass_01","compass_02","compass_03","compass_04","compass_05","compass_06","compass_07","compass_08","compass_09","compass_10","compass_11","compass_12","compass_13","compass_14","compass_15","compass_17","compass_18","compass_19","compass_20","compass_21","compass_22","compass_23","compass_24","compass_25","compass_26","compass_27","compass_28","compass_29","compass_30","compass_31","composter","conduit","cooked_beef","cooked_chicken","cooked_cod","cooked_mutton","cooked_porkchop","cooked_rabbit","cooked_salmon","cookie","copper_block","copper_bulb","copper_door","copper_grate","copper_ingot","copper_ore","copper_trapdoor","cornflower","cow_spawn_egg","cracked_deepslate_bricks","cracked_deepslate_tiles","cracked_nether_bricks","cracked_polished_blackstone_bricks","cracked_stone_bricks","crafter","crafting_table","creeper_banner_pattern","creeper_head","creeper_spawn_egg","crimson_button","crimson_door","crimson_fence","crimson_fence_gate","crimson_fungus","crimson_hanging_sign","crimson_hyphae","crimson_nylium","crimson_planks","crimson_pressure_plate","crimson_roots","crimson_sign","crimson_slab","crimson_stairs","crimson_stem","crimson_trapdoor","crossbow","crossbow_arrow","crossbow_firework","crossbow_pulling_0","crossbow_pulling_1","crossbow_pulling_2","crying_obsidian","cut_copper","cut_copper_slab","cut_copper_stairs","cut_red_sandstone","cut_red_sandstone_slab","cut_sandstone","cut_sandstone_slab","cyan_banner","cyan_bed","cyan_candle","cyan_carpet","cyan_concrete","cyan_concrete_powder","cyan_dye","cyan_glazed_terracotta","cyan_shulker_box","cyan_stained_glass","cyan_stained_glass_pane","cyan_terracotta","cyan_wool","damaged_anvil","dandelion","danger_pottery_sherd","dark_oak_boat","dark_oak_button","dark_oak_chest_boat","dark_oak_door","dark_oak_fence","dark_oak_fence_gate","dark_oak_hanging_sign","dark_oak_leaves","dark_oak_log","dark_oak_planks","dark_oak_pressure_plate","dark_oak_sapling","dark_oak_sign","dark_oak_slab","dark_oak_stairs","dark_oak_trapdoor","dark_oak_wood","dark_prismarine","dark_prismarine_slab","dark_prismarine_stairs","daylight_detector","dead_brain_coral","dead_brain_coral_block","dead_brain_coral_fan","dead_bubble_coral","dead_bubble_coral_block","dead_bubble_coral_fan","dead_bush","dead_fire_coral","dead_fire_coral_block","dead_fire_coral_fan","dead_horn_coral","dead_horn_coral_block","dead_horn_coral_fan","dead_tube_coral","dead_tube_coral_block","dead_tube_coral_fan","debug_stick","decorated_pot","deepslate","deepslate_brick_slab","deepslate_brick_stairs","deepslate_brick_wall","deepslate_bricks","deepslate_coal_ore","deepslate_copper_ore","deepslate_diamond_ore","deepslate_emerald_ore","deepslate_gold_ore","deepslate_iron_ore","deepslate_lapis_ore","deepslate_redstone_ore","deepslate_tile_slab","deepslate_tile_stairs","deepslate_tile_wall","deepslate_tiles","detector_rail","diamond","diamond_axe","diamond_block","diamond_boots","diamond_boots_amethyst_trim","diamond_boots_copper_trim","diamond_boots_diamond_darker_trim","diamond_boots_emerald_trim","diamond_boots_gold_trim","diamond_boots_iron_trim","diamond_boots_lapis_trim","diamond_boots_netherite_trim","diamond_boots_quartz_trim","diamond_boots_redstone_trim","diamond_chestplate","diamond_chestplate_amethyst_trim","diamond_chestplate_copper_trim","diamond_chestplate_diamond_darker_trim","diamond_chestplate_emerald_trim","diamond_chestplate_gold_trim","diamond_chestplate_iron_trim","diamond_chestplate_lapis_trim","diamond_chestplate_netherite_trim","diamond_chestplate_quartz_trim","diamond_chestplate_redstone_trim","diamond_helmet","diamond_helmet_amethyst_trim","diamond_helmet_copper_trim","diamond_helmet_diamond_darker_trim","diamond_helmet_emerald_trim","diamond_helmet_gold_trim","diamond_helmet_iron_trim","diamond_helmet_lapis_trim","diamond_helmet_netherite_trim","diamond_helmet_quartz_trim","diamond_helmet_redstone_trim","diamond_hoe","diamond_horse_armor","diamond_leggings","diamond_leggings_amethyst_trim","diamond_leggings_copper_trim","diamond_leggings_diamond_darker_trim","diamond_leggings_emerald_trim","diamond_leggings_gold_trim","diamond_leggings_iron_trim","diamond_leggings_lapis_trim","diamond_leggings_netherite_trim","diamond_leggings_quartz_trim","diamond_leggings_redstone_trim","diamond_ore","diamond_pickaxe","diamond_shovel","diamond_sword","diorite","diorite_slab","diorite_stairs","diorite_wall","dirt","dirt_path","disc_fragment_5","dispenser","dolphin_spawn_egg","donkey_spawn_egg","dragon_breath","dragon_egg","dragon_head","dried_kelp","dried_kelp_block","dripstone_block","dropper","drowned_spawn_egg","dune_armor_trim_smithing_template","echo_shard","egg","elder_guardian_spawn_egg","elytra","emerald","emerald_block","emerald_ore","enchanted_book","enchanted_golden_apple","enchanting_table","end_crystal","end_portal_frame","end_rod","end_stone","end_stone_brick_slab","end_stone_brick_stairs","end_stone_brick_wall","end_stone_bricks","ender_chest","ender_dragon_spawn_egg","ender_eye","ender_pearl","enderman_spawn_egg","endermite_spawn_egg","evoker_spawn_egg","experience_bottle","explorer_pottery_sherd","exposed_chiseled_copper","exposed_copper","exposed_copper_bulb","exposed_copper_door","exposed_copper_grate","exposed_copper_trapdoor","exposed_cut_copper","exposed_cut_copper_slab","exposed_cut_copper_stairs","eye_armor_trim_smithing_template","farmland","feather","fermented_spider_eye","fern","filled_map","fire_charge","fire_coral","fire_coral_block","fire_coral_fan","firework_rocket","firework_star","fishing_rod","fishing_rod_cast","fletching_table","flint","flint_and_steel","flow_armor_trim_smithing_template","flow_banner_pattern","flow_pottery_sherd","flower_banner_pattern","flower_pot","flowering_azalea","flowering_azalea_leaves","fox_spawn_egg","friend_pottery_sherd","frog_spawn_egg","frogspawn","furnace","furnace_minecart","generated","ghast_spawn_egg","ghast_tear","gilded_blackstone","glass","glass_bottle","glass_pane","glistering_melon_slice","globe_banner_pattern","glow_berries","glow_ink_sac","glow_item_frame","glow_lichen","glow_squid_spawn_egg","glowstone","glowstone_dust","goat_horn","goat_spawn_egg","gold_block","gold_ingot","gold_nugget","gold_ore","golden_apple","golden_axe","golden_boots","golden_boots_amethyst_trim","golden_boots_copper_trim","golden_boots_diamond_trim","golden_boots_emerald_trim","golden_boots_gold_darker_trim","golden_boots_iron_trim","golden_boots_lapis_trim","golden_boots_netherite_trim","golden_boots_quartz_trim","golden_boots_redstone_trim","golden_carrot","golden_chestplate","golden_chestplate_amethyst_trim","golden_chestplate_copper_trim","golden_chestplate_diamond_trim","golden_chestplate_emerald_trim","golden_chestplate_gold_darker_trim","golden_chestplate_iron_trim","golden_chestplate_lapis_trim","golden_chestplate_netherite_trim","golden_chestplate_quartz_trim","golden_chestplate_redstone_trim","golden_helmet","golden_helmet_amethyst_trim","golden_helmet_copper_trim","golden_helmet_diamond_trim","golden_helmet_emerald_trim","golden_helmet_gold_darker_trim","golden_helmet_iron_trim","golden_helmet_lapis_trim","golden_helmet_netherite_trim","golden_helmet_quartz_trim","golden_helmet_redstone_trim","golden_hoe","golden_horse_armor","golden_leggings","golden_leggings_amethyst_trim","golden_leggings_copper_trim","golden_leggings_diamond_trim","golden_leggings_emerald_trim","golden_leggings_gold_darker_trim","golden_leggings_iron_trim","golden_leggings_lapis_trim","golden_leggings_netherite_trim","golden_leggings_quartz_trim","golden_leggings_redstone_trim","golden_pickaxe","golden_shovel","golden_sword","granite","granite_slab","granite_stairs","granite_wall","grass_block","gravel","gray_banner","gray_bed","gray_candle","gray_carpet","gray_concrete","gray_concrete_powder","gray_dye","gray_glazed_terracotta","gray_shulker_box","gray_stained_glass","gray_stained_glass_pane","gray_terracotta","gray_wool","green_banner","green_bed","green_candle","green_carpet","green_concrete","green_concrete_powder","green_dye","green_glazed_terracotta","green_shulker_box","green_stained_glass","green_stained_glass_pane","green_terracotta","green_wool","grindstone","guardian_spawn_egg","gunpowder","guster_banner_pattern","guster_pottery_sherd","handheld","handheld_mace","handheld_rod","hanging_roots","hay_block","heart_of_the_sea","heart_pottery_sherd","heartbreak_pottery_sherd","heavy_core","heavy_weighted_pressure_plate","hoglin_spawn_egg","honey_block","honey_bottle","honeycomb","honeycomb_block","hopper","hopper_minecart","horn_coral","horn_coral_block","horn_coral_fan","horse_spawn_egg","host_armor_trim_smithing_template","howl_pottery_sherd","husk_spawn_egg","ice","infested_chiseled_stone_bricks","infested_cobblestone","infested_cracked_stone_bricks","infested_deepslate","infested_mossy_stone_bricks","infested_stone","infested_stone_bricks","ink_sac","iron_axe","iron_bars","iron_block","iron_boots","iron_boots_amethyst_trim","iron_boots_copper_trim","iron_boots_diamond_trim","iron_boots_emerald_trim","iron_boots_gold_trim","iron_boots_iron_darker_trim","iron_boots_lapis_trim","iron_boots_netherite_trim","iron_boots_quartz_trim","iron_boots_redstone_trim","iron_chestplate","iron_chestplate_amethyst_trim","iron_chestplate_copper_trim","iron_chestplate_diamond_trim","iron_chestplate_emerald_trim","iron_chestplate_gold_trim","iron_chestplate_iron_darker_trim","iron_chestplate_lapis_trim","iron_chestplate_netherite_trim","iron_chestplate_quartz_trim","iron_chestplate_redstone_trim","iron_door","iron_golem_spawn_egg","iron_helmet","iron_helmet_amethyst_trim","iron_helmet_copper_trim","iron_helmet_diamond_trim","iron_helmet_emerald_trim","iron_helmet_gold_trim","iron_helmet_iron_darker_trim","iron_helmet_lapis_trim","iron_helmet_netherite_trim","iron_helmet_quartz_trim","iron_helmet_redstone_trim","iron_hoe","iron_horse_armor","iron_ingot","iron_leggings","iron_leggings_amethyst_trim","iron_leggings_copper_trim","iron_leggings_diamond_trim","iron_leggings_emerald_trim","iron_leggings_gold_trim","iron_leggings_iron_darker_trim","iron_leggings_lapis_trim","iron_leggings_netherite_trim","iron_leggings_quartz_trim","iron_leggings_redstone_trim","iron_nugget","iron_ore","iron_pickaxe","iron_shovel","iron_sword","iron_trapdoor","item_frame","jack_o_lantern","jigsaw","jukebox","jungle_boat","jungle_button","jungle_chest_boat","jungle_door","jungle_fence","jungle_fence_gate","jungle_hanging_sign","jungle_leaves","jungle_log","jungle_planks","jungle_pressure_plate","jungle_sapling","jungle_sign","jungle_slab","jungle_stairs","jungle_trapdoor","jungle_wood","kelp","knowledge_book","ladder","lantern","lapis_block","lapis_lazuli","lapis_ore","large_amethyst_bud","large_fern","lava_bucket","lead","leather","leather_boots","leather_boots_amethyst_trim","leather_boots_copper_trim","leather_boots_diamond_trim","leather_boots_emerald_trim","leather_boots_gold_trim","leather_boots_iron_trim","leather_boots_lapis_trim","leather_boots_netherite_trim","leather_boots_quartz_trim","leather_boots_redstone_trim","leather_chestplate","leather_chestplate_amethyst_trim","leather_chestplate_copper_trim","leather_chestplate_diamond_trim","leather_chestplate_emerald_trim","leather_chestplate_gold_trim","leather_chestplate_iron_trim","leather_chestplate_lapis_trim","leather_chestplate_netherite_trim","leather_chestplate_quartz_trim","leather_chestplate_redstone_trim","leather_helmet","leather_helmet_amethyst_trim","leather_helmet_copper_trim","leather_helmet_diamond_trim","leather_helmet_emerald_trim","leather_helmet_gold_trim","leather_helmet_iron_trim","leather_helmet_lapis_trim","leather_helmet_netherite_trim","leather_helmet_quartz_trim","leather_helmet_redstone_trim","leather_horse_armor","leather_leggings","leather_leggings_amethyst_trim","leather_leggings_copper_trim","leather_leggings_diamond_trim","leather_leggings_emerald_trim","leather_leggings_gold_trim","leather_leggings_iron_trim","leather_leggings_lapis_trim","leather_leggings_netherite_trim","leather_leggings_quartz_trim","leather_leggings_redstone_trim","lectern","lever","light","light_00","light_01","light_02","light_03","light_04","light_05","light_06","light_07","light_08","light_09","light_10","light_11","light_12","light_13","light_14","light_15","light_blue_banner","light_blue_bed","light_blue_candle","light_blue_carpet","light_blue_concrete","light_blue_concrete_powder","light_blue_dye","light_blue_glazed_terracotta","light_blue_shulker_box","light_blue_stained_glass","light_blue_stained_glass_pane","light_blue_terracotta","light_blue_wool","light_gray_banner","light_gray_bed","light_gray_candle","light_gray_carpet","light_gray_concrete","light_gray_concrete_powder","light_gray_dye","light_gray_glazed_terracotta","light_gray_shulker_box","light_gray_stained_glass","light_gray_stained_glass_pane","light_gray_terracotta","light_gray_wool","light_weighted_pressure_plate","lightning_rod","lilac","lily_of_the_valley","lily_pad","lime_banner","lime_bed","lime_candle","lime_carpet","lime_concrete","lime_concrete_powder","lime_dye","lime_glazed_terracotta","lime_shulker_box","lime_stained_glass","lime_stained_glass_pane","lime_terracotta","lime_wool","lingering_potion","llama_spawn_egg","lodestone","loom","mace","magenta_banner","magenta_bed","magenta_candle","magenta_carpet","magenta_concrete","magenta_concrete_powder","magenta_dye","magenta_glazed_terracotta","magenta_shulker_box","magenta_stained_glass","magenta_stained_glass_pane","magenta_terracotta","magenta_wool","magma_block","magma_cream","magma_cube_spawn_egg","mangrove_boat","mangrove_button","mangrove_chest_boat","mangrove_door","mangrove_fence","mangrove_fence_gate","mangrove_hanging_sign","mangrove_leaves","mangrove_log","mangrove_planks","mangrove_pressure_plate","mangrove_propagule","mangrove_roots","mangrove_sign","mangrove_slab","mangrove_stairs","mangrove_trapdoor","mangrove_wood","map","medium_amethyst_bud","melon","melon_seeds","melon_slice","milk_bucket","minecart","miner_pottery_sherd","mojang_banner_pattern","mooshroom_spawn_egg","moss_block","moss_carpet","mossy_cobblestone","mossy_cobblestone_slab","mossy_cobblestone_stairs","mossy_cobblestone_wall","mossy_stone_brick_slab","mossy_stone_brick_stairs","mossy_stone_brick_wall","mossy_stone_bricks","mourner_pottery_sherd","mud","mud_brick_slab","mud_brick_stairs","mud_brick_wall","mud_bricks","muddy_mangrove_roots","mule_spawn_egg","mushroom_stem","mushroom_stew","music_disc_11","music_disc_13","music_disc_5","music_disc_blocks","music_disc_cat","music_disc_chirp","music_disc_creator","music_disc_creator_music_box","music_disc_far","music_disc_mall","music_disc_mellohi","music_disc_otherside","music_disc_pigstep","music_disc_precipice","music_disc_relic","music_disc_stal","music_disc_strad","music_disc_wait","music_disc_ward","mutton","mycelium","name_tag","nautilus_shell","nether_brick","nether_brick_fence","nether_brick_slab","nether_brick_stairs","nether_brick_wall","nether_bricks","nether_gold_ore","nether_quartz_ore","nether_sprouts","nether_star","nether_wart","nether_wart_block","netherite_axe","netherite_block","netherite_boots","netherite_boots_amethyst_trim","netherite_boots_copper_trim","netherite_boots_diamond_trim","netherite_boots_emerald_trim","netherite_boots_gold_trim","netherite_boots_iron_trim","netherite_boots_lapis_trim","netherite_boots_netherite_darker_trim","netherite_boots_quartz_trim","netherite_boots_redstone_trim","netherite_chestplate","netherite_chestplate_amethyst_trim","netherite_chestplate_copper_trim","netherite_chestplate_diamond_trim","netherite_chestplate_emerald_trim","netherite_chestplate_gold_trim","netherite_chestplate_iron_trim","netherite_chestplate_lapis_trim","netherite_chestplate_netherite_darker_trim","netherite_chestplate_quartz_trim","netherite_chestplate_redstone_trim","netherite_helmet","netherite_helmet_amethyst_trim","netherite_helmet_copper_trim","netherite_helmet_diamond_trim","netherite_helmet_emerald_trim","netherite_helmet_gold_trim","netherite_helmet_iron_trim","netherite_helmet_lapis_trim","netherite_helmet_netherite_darker_trim","netherite_helmet_quartz_trim","netherite_helmet_redstone_trim","netherite_hoe","netherite_ingot","netherite_leggings","netherite_leggings_amethyst_trim","netherite_leggings_copper_trim","netherite_leggings_diamond_trim","netherite_leggings_emerald_trim","netherite_leggings_gold_trim","netherite_leggings_iron_trim","netherite_leggings_lapis_trim","netherite_leggings_netherite_darker_trim","netherite_leggings_quartz_trim","netherite_leggings_redstone_trim","netherite_pickaxe","netherite_scrap","netherite_shovel","netherite_sword","netherite_upgrade_smithing_template","netherrack","note_block","oak_boat","oak_button","oak_chest_boat","oak_door","oak_fence","oak_fence_gate","oak_hanging_sign","oak_leaves","oak_log","oak_planks","oak_pressure_plate","oak_sapling","oak_sign","oak_slab","oak_stairs","oak_trapdoor","oak_wood","observer","obsidian","ocelot_spawn_egg","ochre_froglight","ominous_bottle","ominous_trial_key","orange_banner","orange_bed","orange_candle","orange_carpet","orange_concrete","orange_concrete_powder","orange_dye","orange_glazed_terracotta","orange_shulker_box","orange_stained_glass","orange_stained_glass_pane","orange_terracotta","orange_tulip","orange_wool","oxeye_daisy","oxidized_chiseled_copper","oxidized_copper","oxidized_copper_bulb","oxidized_copper_door","oxidized_copper_grate","oxidized_copper_trapdoor","oxidized_cut_copper","oxidized_cut_copper_slab","oxidized_cut_copper_stairs","packed_ice","packed_mud","painting","panda_spawn_egg","paper","parrot_spawn_egg","pearlescent_froglight","peony","petrified_oak_slab","phantom_membrane","phantom_spawn_egg","pig_spawn_egg","piglin_banner_pattern","piglin_brute_spawn_egg","piglin_head","piglin_spawn_egg","pillager_spawn_egg","pink_banner","pink_bed","pink_candle","pink_carpet","pink_concrete","pink_concrete_powder","pink_dye","pink_glazed_terracotta","pink_petals","pink_shulker_box","pink_stained_glass","pink_stained_glass_pane","pink_terracotta","pink_tulip","pink_wool","piston","pitcher_plant","pitcher_pod","player_head","plenty_pottery_sherd","podzol","pointed_dripstone","poisonous_potato","polar_bear_spawn_egg","polished_andesite","polished_andesite_slab","polished_andesite_stairs","polished_basalt","polished_blackstone","polished_blackstone_brick_slab","polished_blackstone_brick_stairs","polished_blackstone_brick_wall","polished_blackstone_bricks","polished_blackstone_button","polished_blackstone_pressure_plate","polished_blackstone_slab","polished_blackstone_stairs","polished_blackstone_wall","polished_deepslate","polished_deepslate_slab","polished_deepslate_stairs","polished_deepslate_wall","polished_diorite","polished_diorite_slab","polished_diorite_stairs","polished_granite","polished_granite_slab","polished_granite_stairs","polished_tuff","polished_tuff_slab","polished_tuff_stairs","polished_tuff_wall","popped_chorus_fruit","poppy","porkchop","potato","potion","powder_snow_bucket","powered_rail","prismarine","prismarine_brick_slab","prismarine_brick_stairs","prismarine_bricks","prismarine_crystals","prismarine_shard","prismarine_slab","prismarine_stairs","prismarine_wall","prize_pottery_sherd","pufferfish","pufferfish_bucket","pufferfish_spawn_egg","pumpkin","pumpkin_pie","pumpkin_seeds","purple_banner","purple_bed","purple_candle","purple_carpet","purple_concrete","purple_concrete_powder","purple_dye","purple_glazed_terracotta","purple_shulker_box","purple_stained_glass","purple_stained_glass_pane","purple_terracotta","purple_wool","purpur_block","purpur_pillar","purpur_slab","purpur_stairs","quartz","quartz_block","quartz_bricks","quartz_pillar","quartz_slab","quartz_stairs","rabbit","rabbit_foot","rabbit_hide","rabbit_spawn_egg","rabbit_stew","rail","raiser_armor_trim_smithing_template","ravager_spawn_egg","raw_copper","raw_copper_block","raw_gold","raw_gold_block","raw_iron","raw_iron_block","recovery_compass","recovery_compass_00","recovery_compass_01","recovery_compass_02","recovery_compass_03","recovery_compass_04","recovery_compass_05","recovery_compass_06","recovery_compass_07","recovery_compass_08","recovery_compass_09","recovery_compass_10","recovery_compass_11","recovery_compass_12","recovery_compass_13","recovery_compass_14","recovery_compass_15","recovery_compass_17","recovery_compass_18","recovery_compass_19","recovery_compass_20","recovery_compass_21","recovery_compass_22","recovery_compass_23","recovery_compass_24","recovery_compass_25","recovery_compass_26","recovery_compass_27","recovery_compass_28","recovery_compass_29","recovery_compass_30","recovery_compass_31","red_banner","red_bed","red_candle","red_carpet","red_concrete","red_concrete_powder","red_dye","red_glazed_terracotta","red_mushroom","red_mushroom_block","red_nether_brick_slab","red_nether_brick_stairs","red_nether_brick_wall","red_nether_bricks","red_sand","red_sandstone","red_sandstone_slab","red_sandstone_stairs","red_sandstone_wall","red_shulker_box","red_stained_glass","red_stained_glass_pane","red_terracotta","red_tulip","red_wool","redstone","redstone_block","redstone_lamp","redstone_ore","redstone_torch","reinforced_deepslate","repeater","repeating_command_block","respawn_anchor","rib_armor_trim_smithing_template","rooted_dirt","rose_bush","rotten_flesh","saddle","salmon","salmon_bucket","salmon_spawn_egg","sand","sandstone","sandstone_slab","sandstone_stairs","sandstone_wall","scaffolding","scrape_pottery_sherd","sculk","sculk_catalyst","sculk_sensor","sculk_shrieker","sculk_vein","sea_lantern","sea_pickle","seagrass","sentry_armor_trim_smithing_template","shaper_armor_trim_smithing_template","sheaf_pottery_sherd","shears","sheep_spawn_egg","shelter_pottery_sherd","shield","shield_blocking","short_grass","shroomlight","shulker_box","shulker_shell","shulker_spawn_egg","silence_armor_trim_smithing_template","silverfish_spawn_egg","skeleton_horse_spawn_egg","skeleton_skull","skeleton_spawn_egg","skull_banner_pattern","skull_pottery_sherd","slime_ball","slime_block","slime_spawn_egg","small_amethyst_bud","small_dripleaf","smithing_table","smoker","smooth_basalt","smooth_quartz","smooth_quartz_slab","smooth_quartz_stairs","smooth_red_sandstone","smooth_red_sandstone_slab","smooth_red_sandstone_stairs","smooth_sandstone","smooth_sandstone_slab","smooth_sandstone_stairs","smooth_stone","smooth_stone_slab","sniffer_egg","sniffer_spawn_egg","snort_pottery_sherd","snout_armor_trim_smithing_template","snow","snow_block","snow_golem_spawn_egg","snowball","soul_campfire","soul_lantern","soul_sand","soul_soil","soul_torch","spawner","spectral_arrow","spider_eye","spider_spawn_egg","spire_armor_trim_smithing_template","splash_potion","sponge","spore_blossom","spruce_boat","spruce_button","spruce_chest_boat","spruce_door","spruce_fence","spruce_fence_gate","spruce_hanging_sign","spruce_leaves","spruce_log","spruce_planks","spruce_pressure_plate","spruce_sapling","spruce_sign","spruce_slab","spruce_stairs","spruce_trapdoor","spruce_wood","spyglass","spyglass_in_hand","squid_spawn_egg","stick","sticky_piston","stone","stone_axe","stone_brick_slab","stone_brick_stairs","stone_brick_wall","stone_bricks","stone_button","stone_hoe","stone_pickaxe","stone_pressure_plate","stone_shovel","stone_slab","stone_stairs","stone_sword","stonecutter","stray_spawn_egg","strider_spawn_egg","string","stripped_acacia_log","stripped_acacia_wood","stripped_bamboo_block","stripped_birch_log","stripped_birch_wood","stripped_cherry_log","stripped_cherry_wood","stripped_crimson_hyphae","stripped_crimson_stem","stripped_dark_oak_log","stripped_dark_oak_wood","stripped_jungle_log","stripped_jungle_wood","stripped_mangrove_log","stripped_mangrove_wood","stripped_oak_log","stripped_oak_wood","stripped_spruce_log","stripped_spruce_wood","stripped_warped_hyphae","stripped_warped_stem","structure_block","structure_void","sugar","sugar_cane","sunflower","suspicious_gravel","suspicious_sand","suspicious_stew","sweet_berries","tadpole_bucket","tadpole_spawn_egg","tall_grass","target","template_banner","template_bed","template_music_disc","template_shulker_box","template_skull","template_spawn_egg","terracotta","tide_armor_trim_smithing_template","tinted_glass","tipped_arrow","tnt","tnt_minecart","tooting_goat_horn","torch","torchflower","torchflower_seeds","totem_of_undying","trader_llama_spawn_egg","trapped_chest","trial_key","trial_spawner","trident","trident_in_hand","trident_throwing","tripwire_hook","tropical_fish","tropical_fish_bucket","tropical_fish_spawn_egg","tube_coral","tube_coral_block","tube_coral_fan","tuff","tuff_brick_slab","tuff_brick_stairs","tuff_brick_wall","tuff_bricks","tuff_slab","tuff_stairs","tuff_wall","turtle_egg","turtle_helmet","turtle_helmet_amethyst_trim","turtle_helmet_copper_trim","turtle_helmet_diamond_trim","turtle_helmet_emerald_trim","turtle_helmet_gold_trim","turtle_helmet_iron_trim","turtle_helmet_lapis_trim","turtle_helmet_netherite_trim","turtle_helmet_quartz_trim","turtle_helmet_redstone_trim","turtle_scute","turtle_spawn_egg","twisting_vines","vault","verdant_froglight","vex_armor_trim_smithing_template","vex_spawn_egg","villager_spawn_egg","vindicator_spawn_egg","vine","wandering_trader_spawn_egg","ward_armor_trim_smithing_template","warden_spawn_egg","warped_button","warped_door","warped_fence","warped_fence_gate","warped_fungus","warped_fungus_on_a_stick","warped_hanging_sign","warped_hyphae","warped_nylium","warped_planks","warped_pressure_plate","warped_roots","warped_sign","warped_slab","warped_stairs","warped_stem","warped_trapdoor","warped_wart_block","water_bucket","waxed_chiseled_copper","waxed_copper_block","waxed_copper_bulb","waxed_copper_door","waxed_copper_grate","waxed_copper_trapdoor","waxed_cut_copper","waxed_cut_copper_slab","waxed_cut_copper_stairs","waxed_exposed_chiseled_copper","waxed_exposed_copper","waxed_exposed_copper_bulb","waxed_exposed_copper_door","waxed_exposed_copper_grate","waxed_exposed_copper_trapdoor","waxed_exposed_cut_copper","waxed_exposed_cut_copper_slab","waxed_exposed_cut_copper_stairs","waxed_oxidized_chiseled_copper","waxed_oxidized_copper","waxed_oxidized_copper_bulb","waxed_oxidized_copper_door","waxed_oxidized_copper_grate","waxed_oxidized_copper_trapdoor","waxed_oxidized_cut_copper","waxed_oxidized_cut_copper_slab","waxed_oxidized_cut_copper_stairs","waxed_weathered_chiseled_copper","waxed_weathered_copper","waxed_weathered_copper_bulb","waxed_weathered_copper_door","waxed_weathered_copper_grate","waxed_weathered_copper_trapdoor","waxed_weathered_cut_copper","waxed_weathered_cut_copper_slab","waxed_weathered_cut_copper_stairs","wayfinder_armor_trim_smithing_template","weathered_chiseled_copper","weathered_copper","weathered_copper_bulb","weathered_copper_door","weathered_copper_grate","weathered_copper_trapdoor","weathered_cut_copper","weathered_cut_copper_slab","weathered_cut_copper_stairs","weeping_vines","wet_sponge","wheat","wheat_seeds","white_banner","white_bed","white_candle","white_carpet","white_concrete","white_concrete_powder","white_dye","white_glazed_terracotta","white_shulker_box","white_stained_glass","white_stained_glass_pane","white_terracotta","white_tulip","white_wool","wild_armor_trim_smithing_template","wind_charge","witch_spawn_egg","wither_rose","wither_skeleton_skull","wither_skeleton_spawn_egg","wither_spawn_egg","wolf_armor","wolf_spawn_egg","wooden_axe","wooden_hoe","wooden_pickaxe","wooden_shovel","wooden_sword","writable_book","written_book","yellow_banner","yellow_bed","yellow_candle","yellow_carpet","yellow_concrete","yellow_concrete_powder","yellow_dye","yellow_glazed_terracotta","yellow_shulker_box","yellow_stained_glass","yellow_stained_glass_pane","yellow_terracotta","yellow_wool","zoglin_spawn_egg","zombie_head","zombie_horse_spawn_egg","zombie_spawn_egg","zombie_villager_spawn_egg","zombified_piglin_spawn_egg"] \ No newline at end of file diff --git a/tools/entity_port/vanilla_tex/blackstone.png b/tools/entity_port/vanilla_tex/blackstone.png new file mode 100644 index 0000000..3213cc3 Binary files /dev/null and b/tools/entity_port/vanilla_tex/blackstone.png differ diff --git a/tools/entity_port/vanilla_tex/ice.png b/tools/entity_port/vanilla_tex/ice.png new file mode 100644 index 0000000..8965cab Binary files /dev/null and b/tools/entity_port/vanilla_tex/ice.png differ diff --git a/tools/entity_port/vanilla_tex/stray.png b/tools/entity_port/vanilla_tex/stray.png new file mode 100644 index 0000000..d1bcd79 Binary files /dev/null and b/tools/entity_port/vanilla_tex/stray.png differ diff --git a/tools/entity_port/verify_mc.json b/tools/entity_port/verify_mc.json new file mode 100644 index 0000000..5cd4e35 --- /dev/null +++ b/tools/entity_port/verify_mc.json @@ -0,0 +1,488 @@ +{ + "renderers": { + "ZombieRenderer": { + "file": "net/minecraft/client/renderer/entity/ZombieRenderer.java", + "decl": "public class ZombieRenderer extends AbstractZombieRenderer extends HumanoidMobRenderer", + "generic": false + }, + "WitherSkeletonRenderer": { + "file": "net/minecraft/client/renderer/entity/WitherSkeletonRenderer.java", + "decl": "public class WitherSkeletonRenderer extends SkeletonRenderer", + "generic": false + }, + "CreeperRenderer": { + "file": "net/minecraft/client/renderer/entity/CreeperRenderer.java", + "decl": "public class CreeperRenderer extends MobRenderer", + "generic": false + }, + "SpiderRenderer": { + "file": "net/minecraft/client/renderer/entity/SpiderRenderer.java", + "decl": "public class SpiderRenderer extends MobRenderer extends IllagerRenderer", + "generic": true + }, + "SilverfishRenderer": { + "file": "net/minecraft/client/renderer/entity/SilverfishRenderer.java", + "decl": "public class SilverfishRenderer extends MobRenderer", + "generic": false + }, + "VindicatorRenderer": { + "file": "net/minecraft/client/renderer/entity/VindicatorRenderer.java", + "decl": "public class VindicatorRenderer extends IllagerRenderer", + "generic": false + }, + "PhantomRenderer": { + "file": "net/minecraft/client/renderer/entity/PhantomRenderer.java", + "decl": "public class PhantomRenderer extends MobRenderer", + "generic": false + } + }, + "entities": { + "Zombie": { + "pkg": "monster", + "decl": "public class Zombie extends Monster", + "createAttributes": true, + "ctor": "public Zombie(EntityType entityType, Level level)" + }, + "Drowned": { + "pkg": "monster", + "decl": "public class Drowned extends Zombie", + "createAttributes": true, + "ctor": "public Drowned(EntityType entityType, Level level)" + }, + "Skeleton": { + "pkg": "monster", + "decl": "public class Skeleton extends AbstractSkeleton", + "createAttributes": false, + "ctor": "public Skeleton(EntityType entityType, Level level)" + }, + "Stray": { + "pkg": "monster", + "decl": "public class Stray extends AbstractSkeleton", + "createAttributes": false, + "ctor": "public Stray(EntityType entityType, Level level)" + }, + "WitherSkeleton": { + "pkg": "monster", + "decl": "public class WitherSkeleton extends AbstractSkeleton", + "createAttributes": false, + "ctor": "public WitherSkeleton(EntityType entityType, Level level)" + }, + "Creeper": { + "pkg": "monster", + "decl": "public class Creeper extends Monster", + "createAttributes": true, + "ctor": "public Creeper(EntityType entityType, Level level)" + }, + "Bat": { + "pkg": "ambient", + "decl": "public class Bat extends AmbientCreature", + "createAttributes": true, + "ctor": "public Bat(EntityType entityType, Level level)" + }, + "Ghast": { + "pkg": "monster", + "decl": "public class Ghast extends FlyingMob", + "createAttributes": true, + "ctor": "public Ghast(EntityType entityType, Level level)" + }, + "Blaze": { + "pkg": "monster", + "decl": "public class Blaze extends Monster", + "createAttributes": true, + "ctor": "public Blaze(EntityType entityType, Level level)" + }, + "Slime": { + "pkg": "monster", + "decl": "public class Slime extends Mob", + "createAttributes": false, + "ctor": "public Slime(EntityType entityType, Level level)" + }, + "MagmaCube": { + "pkg": "monster", + "decl": "public class MagmaCube extends Slime", + "createAttributes": true, + "ctor": "public MagmaCube(EntityType entityType, Level level)" + }, + "Vex": { + "pkg": "monster", + "decl": "public class Vex extends Monster", + "createAttributes": true, + "ctor": "public Vex(EntityType entityType, Level level)" + }, + "Guardian": { + "pkg": "monster", + "decl": "public class Guardian extends Monster", + "createAttributes": true, + "ctor": "public Guardian(EntityType entityType, Level level)" + }, + "IronGolem": { + "pkg": "animal", + "decl": "public class IronGolem extends AbstractGolem", + "createAttributes": true, + "ctor": "public IronGolem(EntityType entityType, Level level)" + }, + "SnowGolem": { + "pkg": "animal", + "decl": "public class SnowGolem extends AbstractGolem", + "createAttributes": true, + "ctor": "public SnowGolem(EntityType entityType, Level level)" + }, + "PolarBear": { + "pkg": "animal", + "decl": "public class PolarBear extends Animal", + "createAttributes": true, + "ctor": "public PolarBear(EntityType entityType, Level level)" + }, + "CaveSpider": { + "pkg": "monster", + "decl": "public class CaveSpider extends Spider", + "createAttributes": false, + "ctor": "public CaveSpider(EntityType entityType, Level level)" + }, + "Spider": { + "pkg": "monster", + "decl": "public class Spider extends Monster", + "createAttributes": true, + "ctor": "public Spider(EntityType entityType, Level level)" + }, + "EnderMan": { + "pkg": "monster", + "decl": "public class EnderMan extends Monster", + "createAttributes": true, + "ctor": "public EnderMan(EntityType entityType, Level level)" + }, + "Cod": { + "pkg": "animal", + "decl": "public class Cod extends AbstractSchoolingFish", + "createAttributes": false, + "ctor": "public Cod(EntityType entityType, Level level)" + }, + "Chicken": { + "pkg": "animal", + "decl": "public class Chicken extends Animal", + "createAttributes": true, + "ctor": "public Chicken(EntityType entityType, Level level)" + }, + "Evoker": { + "pkg": "monster", + "decl": "public class Evoker extends SpellcasterIllager", + "createAttributes": true, + "ctor": "public Evoker(EntityType entityType, Level level)" + }, + "Silverfish": { + "pkg": "monster", + "decl": "public class Silverfish extends Monster", + "createAttributes": true, + "ctor": "public Silverfish(EntityType entityType, Level level)" + }, + "Wolf": { + "pkg": "animal", + "decl": "public class Wolf extends TamableAnimal", + "createAttributes": true, + "ctor": "public Wolf(EntityType entityType, Level level)" + }, + "Pillager": { + "pkg": "monster", + "decl": "public class Pillager extends AbstractIllager", + "createAttributes": true, + "ctor": "public Pillager(EntityType entityType, Level level)" + }, + "Vindicator": { + "pkg": "monster", + "decl": "public class Vindicator extends AbstractIllager", + "createAttributes": true, + "ctor": "public Vindicator(EntityType entityType, Level level)" + }, + "Phantom": { + "pkg": "monster", + "decl": "public class Phantom extends FlyingMob", + "createAttributes": false, + "ctor": "public Phantom(EntityType entityType, Level level)" + }, + "Cow": { + "pkg": "animal", + "decl": "public class Cow extends Animal", + "createAttributes": true, + "ctor": "public Cow(EntityType entityType, Level level)" + }, + "Villager": { + "pkg": "npc", + "decl": "public class Villager extends AbstractVillager", + "createAttributes": true, + "ctor": "public Villager(EntityType entityType, Level level)" + }, + "Witch": { + "pkg": "monster", + "decl": "public class Witch extends Raider", + "createAttributes": true, + "ctor": "public Witch(EntityType entityType, Level level)" + }, + "Salmon": { + "pkg": "animal", + "decl": "public class Salmon extends AbstractSchoolingFish", + "createAttributes": false, + "ctor": "public Salmon(EntityType entityType, Level level)" + }, + "Illusioner": { + "pkg": "monster", + "decl": "public class Illusioner extends SpellcasterIllager", + "createAttributes": true, + "ctor": "public Illusioner(EntityType entityType, Level level)" + }, + "SpellcasterIllager": { + "pkg": "monster", + "decl": "public abstract class SpellcasterIllager extends AbstractIllager {", + "createAttributes": false, + "ctor": null + }, + "AbstractSkeleton": { + "pkg": "monster", + "decl": "public abstract class AbstractSkeleton extends Monster implements RangedAttackMob {", + "createAttributes": true, + "ctor": null + } + }, + "vanillaItemCount": 238, + "hasItems": [ + [ + "netherrack", + false + ], + [ + "snow", + false + ], + [ + "ice", + false + ], + [ + "tnt", + false + ], + [ + "sponge", + false + ], + [ + "music_disc_13", + false + ], + [ + "cod", + true + ], + [ + "skeleton_skull", + false + ], + [ + "lily_pad", + false + ], + [ + "nether_quartz_ore", + false + ], + [ + "poppy", + false + ], + [ + "sweet_berries", + false + ], + [ + "amethyst_shard", + true + ], + [ + "copper_ingot", + true + ], + [ + "iron_sword", + false + ], + [ + "bow", + true + ], + [ + "crossbow", + false + ], + [ + "enchanted_book", + false + ], + [ + "iron_helmet", + false + ], + [ + "netherite_scrap", + true + ], + [ + "crimson_fungus", + false + ], + [ + "nether_wart_block", + false + ], + [ + "end_stone", + false + ], + [ + "coal_ore", + false + ], + [ + "diamond_ore", + false + ], + [ + "redstone", + true + ], + [ + "end_pearl", + false + ] + ], + "vanillaTex": { + "block/ice.png": false, + "entity/skeleton/stray.png": false, + "entity/zombie/zombie.png": false, + "block/tnt.png": false + } +} \ No newline at end of file diff --git a/tools/entity_port/verify_mc.mjs b/tools/entity_port/verify_mc.mjs new file mode 100644 index 0000000..e028459 --- /dev/null +++ b/tools/entity_port/verify_mc.mjs @@ -0,0 +1,86 @@ +// 验证 mc_sources 中渲染器/实体类签名 + 完整物品表 + 原版贴图可用性 +import fs from 'fs'; + +const MC = 'f:/DecIslandNeoforge-main/mc_sources'; +const out = {}; + +// 1) 渲染器类声明(是否泛型)+ getTextureLocation 签名 +const renderers = ['ZombieRenderer','DrownedRenderer','SkeletonRenderer','StrayRenderer','WitherSkeletonRenderer', + 'CreeperRenderer','BatRenderer','GhastRenderer','BlazeRenderer','SlimeRenderer','MagmaCubeRenderer','VexRenderer', + 'GuardianRenderer','IronGolemRenderer','SnowGolemRenderer','PolarBearRenderer','CaveSpiderRenderer','SpiderRenderer', + 'EndermanRenderer','EnderManRenderer','CodRenderer','ChickenRenderer','EvokerRenderer','SilverfishRenderer', + 'WolfRenderer','PillagerRenderer','VindicatorRenderer','PhantomRenderer','CowRenderer','VillagerRenderer', + 'WitchRenderer','SalmonRenderer','IllusionerRenderer']; +out.renderers = {}; +function findFile(name) { + const hits = []; + (function walk(d) { + if (!fs.existsSync(d)) return; + for (const f of fs.readdirSync(d)) { + const p = `${d}/${f}`; + if (fs.statSync(p).isDirectory()) walk(p); + else if (f === `${name}.java`) hits.push(p); + } + })(`${MC}/net/minecraft/client/renderer/entity`); + return hits; +} +for (const r of renderers) { + const hits = findFile(r); + if (!hits.length) { out.renderers[r] = null; continue; } + const t = fs.readFileSync(hits[0], 'utf8'); + const decl = t.match(/public class \w+(<[^>]+>)?\s+extends\s+([^\s{]+)/); + out.renderers[r] = { + file: hits[0].replace(MC + '/', ''), + decl: decl ? decl[0] : t.split('\n').find((l) => l.includes('class '))?.trim(), + generic: /public class \w+]+>)?\s+extends\s+([^\s<{]+)/)?.[0] ?? t.split('\n').find((l) => l.includes('class '))?.trim(), + createAttributes: /static AttributeSupplier\.Builder createAttributes\w*\(/.test(t), + ctor: t.match(/public \w+\(EntityType<[^)]*\)/)?.[0] ?? null, + }; +} + +// 3) Items.java 完整物品注册名 +const items = new Set(); +const itemsT = fs.readFileSync(`${MC}/net/minecraft/world/item/Items.java`, 'utf8'); +for (const m of itemsT.matchAll(/register(?:Item|Block|)\("([a-z0-9_.]+)"/g)) items.add(m[1]); +for (const m of itemsT.matchAll(/=\s*register[A-Za-z]*\("([a-z0-9_.]+)"/g)) items.add(m[1]); +out.vanillaItemCount = items.size; +out.hasItems = ['netherrack','snow','ice','tnt','sponge','music_disc_13','cod','skeleton_skull','lily_pad', + 'nether_quartz_ore','poppy','sweet_berries','amethyst_shard','copper_ingot','iron_sword','bow','crossbow', + 'enchanted_book','iron_helmet','netherite_scrap','crimson_fungus','nether_wart_block','end_stone','coal_ore', + 'diamond_ore','redstone','end_pearl'].map((i) => [i, items.has(i)]); +fs.writeFileSync('f:/DecIslandNeoforge-main/tools/entity_port/vanilla_items.json', JSON.stringify([...items], null, 0)); + +// 4) 原版贴图(供 fallback) +out.vanillaTex = {}; +for (const rel of ['block/ice.png','entity/skeleton/stray.png','entity/zombie/zombie.png','block/tnt.png']) { + out.vanillaTex[rel] = fs.existsSync(`${MC}/assets/minecraft/textures/${rel}`); +} + +fs.writeFileSync('f:/DecIslandNeoforge-main/tools/entity_port/verify_mc.json', JSON.stringify(out, null, 1)); +console.log('renderers:', Object.entries(out.renderers).map(([k, v]) => `${k}=${v ? (v.generic ? 'GENERIC' : 'plain') : 'MISSING'}`).join('\n ')); +console.log('entities:', Object.entries(out.entities).map(([k, v]) => `${k}=${v ? `${v.pkg} attrs=${v.createAttributes}` : 'MISSING'}`).join('\n ')); +console.log('vanillaItemCount:', out.vanillaItemCount); +console.log('hasItems:', JSON.stringify(out.hasItems)); +console.log('vanillaTex:', JSON.stringify(out.vanillaTex)); diff --git a/tools/entity_port/verify_mc2.json b/tools/entity_port/verify_mc2.json new file mode 100644 index 0000000..00fa95e --- /dev/null +++ b/tools/entity_port/verify_mc2.json @@ -0,0 +1,91 @@ +{ + "Slime": [], + "Phantom": [], + "Cod": [], + "Salmon": [], + "AbstractFish": [ + "createAttributes(" + ], + "AbstractSkeleton": [ + "createAttributes(" + ], + "Spider": [ + "createAttributes(" + ], + "SnowGolem": [ + "createAttributes(" + ], + "Bat": [ + "createAttributes(" + ], + "net/minecraft/world/item/Items.java": { + "size": 168717, + "items": 238, + "sample": [ + "redstone", + "saddle", + "minecart", + "chest_minecart", + "tnt_minecart" + ] + }, + "net/minecraft/references/Items.java": { + "size": 569, + "items": 0, + "sample": [] + }, + "blocksCount": 242, + "blocksSample": [ + [ + "netherrack", + false + ], + [ + "snow", + false + ], + [ + "ice", + false + ], + [ + "tnt", + false + ], + [ + "sponge", + false + ], + [ + "lily_pad", + false + ], + [ + "nether_quartz_ore", + false + ], + [ + "poppy", + false + ], + [ + "end_stone", + false + ], + [ + "coal_ore", + false + ], + [ + "water", + false + ], + [ + "lava", + false + ] + ], + "jars": [ + "1.21.1-NeoForge_21.1.247.jar 27MB" + ] +} \ No newline at end of file diff --git a/tools/entity_port/verify_mc2.mjs b/tools/entity_port/verify_mc2.mjs new file mode 100644 index 0000000..abeeffa --- /dev/null +++ b/tools/entity_port/verify_mc2.mjs @@ -0,0 +1,39 @@ +// 补充验证:属性方法名 / Blocks.java 物品 / references Items.java / 客户端 jar +import fs from 'fs'; + +const MC = 'f:/DecIslandNeoforge-main/mc_sources'; +const out = {}; + +// 属性 builder 方法(宽匹配) +for (const [n, p] of Object.entries({ + Slime: 'monster/Slime.java', Phantom: 'monster/Phantom.java', Cod: 'animal/Cod.java', + Salmon: 'animal/Salmon.java', AbstractFish: 'animal/AbstractFish.java', AbstractSkeleton: 'monster/AbstractSkeleton.java', + Spider: 'monster/Spider.java', SnowGolem: 'animal/SnowGolem.java', Bat: 'ambient/Bat.java', +})) { + const t = fs.readFileSync(`${MC}/net/minecraft/world/entity/${p}`, 'utf8'); + out[n] = (t.match(/static AttributeSupplier\.Builder (\w+)\(/g) ?? []).map((s) => s.replace('static AttributeSupplier.Builder ', '')); +} + +// Items.java 两个文件对比 +for (const f of ['net/minecraft/world/item/Items.java', 'net/minecraft/references/Items.java']) { + const p = `${MC}/${f}`; + if (!fs.existsSync(p)) { out[f] = 'missing'; continue; } + const t = fs.readFileSync(p, 'utf8'); + const names = new Set(); + for (const m of t.matchAll(/register[A-Za-z]*\("([a-z0-9_.]+)"/g)) names.add(m[1]); + out[f] = { size: t.length, items: names.size, sample: [...names].slice(0, 5) }; +} + +// Blocks.java register 字符串 +const bt = fs.readFileSync(`${MC}/net/minecraft/world/level/block/Blocks.java`, 'utf8'); +const blocks = new Set(); +for (const m of bt.matchAll(/register[A-Za-z]*\("([a-z0-9_.]+)"/g)) blocks.add(m[1]); +out.blocksCount = blocks.size; +out.blocksSample = ['netherrack', 'snow', 'ice', 'tnt', 'sponge', 'lily_pad', 'nether_quartz_ore', 'poppy', 'end_stone', 'coal_ore', 'water', 'lava'].map((b) => [b, blocks.has(b)]); + +// 客户端 jar 探测 +const vDir = 'E:/.minecraft/versions/1.21.1-NeoForge_21.1.247'; +out.jars = fs.existsSync(vDir) ? fs.readdirSync(vDir).filter((f) => f.endsWith('.jar')).map((f) => `${f} ${Math.round(fs.statSync(`${vDir}/${f}`).size / 1e6)}MB`) : []; + +fs.writeFileSync('f:/DecIslandNeoforge-main/tools/entity_port/verify_mc2.json', JSON.stringify(out, null, 1)); +console.log(JSON.stringify(out, null, 1));