From 01f1723b71bdfe1a52c59b1f3dc88f8636714dca Mon Sep 17 00:00:00 2001 From: Pyrbu Date: Fri, 16 Jun 2023 12:33:52 +0200 Subject: [PATCH] lay out most of the possible properties --- .../entity/EntityPropertyRegistryImpl.java | 161 +++++++++++++++++- 1 file changed, 155 insertions(+), 6 deletions(-) diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java index 780825c..92ac7bf 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java @@ -31,6 +31,21 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { registerType("name", Component.class); registerType("look", false); + registerType("helmet", ItemStack.class); + registerType("chestplate", ItemStack.class); + registerType("leggings", ItemStack.class); + registerType("boots", ItemStack.class); + registerType("hand", ItemStack.class); + registerType("offhand", ItemStack.class); + + registerType("crouched", false); // TODO + registerType("using_item", false); // TODO: Eating/Drinking/Blocking with sword/etc + registerType("potion_color", 0xFFFFFF); // TODO + registerType("potion_ambient", false); // TODO + registerType("shaking", false); // TODO: Set the "ticks frozen in powdered snow" meta to 140 to get the entity to shake + registerType("baby", false); // TODO + + // Player registerType("skin_cape", true); registerType("skin_jacket", true); registerType("skin_left_sleeve", true); @@ -39,12 +54,145 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { registerType("skin_right_leg", true); registerType("skin_hat", true); - registerType("helmet", ItemStack.class); - registerType("chestplate", ItemStack.class); - registerType("leggings", ItemStack.class); - registerType("boots", ItemStack.class); - registerType("hand", ItemStack.class); - registerType("offhand", ItemStack.class); + // End Crystal + registerType("beam_target", null); // TODO: Make a block pos class for this + registerType("show_base", true); // TODO + + // Armor Stand + registerType("small", false); // TODO + registerType("arms", false); // TODO + registerType("base_plate", true); // TODO + + // TODO: Make a vector3f class for all of these + registerType("head_rotation", null); // TODO + registerType("body_rotation", null); // TODO + registerType("left_arm_rotation", null); // TODO + registerType("right_arm_rotation", null); // TODO + registerType("left_leg_rotation", null); // TODO + registerType("right_leg_rotation", null); // TODO + + // Bat + registerType("hanging", false); // TODO + + // Pufferfish + registerType("puff_state", null); // TODO: Make a puff state enum class + + // Tropical Fish + registerType("tropical_fish_variant", null); // TODO: Maybe make an enum class for this? its just an int on wiki.vg + + // Sniffer + registerType("sniffer_state", null); // TODO: Nothing on wiki.vg, look in mc source + + // Horse + registerType("horse_style", 0); // TODO: Figure this out + registerType("horse_chest", false); // TODO + registerType("horse_saddle", false); // TODO + + // LLama + registerType("carpet_color", -1); // TODO + registerType("llama_variant", 0); // TODO + + // Axolotl + registerType("axolotl_variant", 0); // TODO + registerType("playing_dead", false); // TODO + + // Bee + registerType("angry", false); // TODO + registerType("has_nectar", false); // TODO + + // Fox + registerType("fox_variant", 0); // TODO: 0 = red, 1 = snow + registerType("fox_sitting", false); // TODO + registerType("fox_crouching", false); // TODO + registerType("fox_sleeping", false); // TODO + registerType("fox_faceplanting", false); // TODO + + // Frog + registerType("frog_type", null); // TODO: It has a custom type read on wiki.vg + + // Panda + registerType("panda_sneezing", false); // TODO + registerType("panda_rolling", false); // TODO + registerType("panda_sitting", false); // TODO + registerType("panda_on_back", false); // TODO + + // Pig + registerType("pig_saddle", false); // TODO + + // Rabbit + registerType("rabbit_type", 0); // TODO: Figure this out + + // Polar Bear + registerType("polar_bear_standing", false); // TODO + + // Sheep + registerType("sheep_color", 0); // TODO: Figure this out + registerType("sheep_sheared", false); // TODO + + // Strider + registerType("strider_shaking", false); // TODO + registerType("strider_saddle", false); // TODO + + // Cat + registerType("cat_variant", null); // TODO: Custom type + registerType("cat_laying", false); // TODO + registerType("cat_collar_color", 14); // TODO + + // Wolf + registerType("wolf_collar_color", 14); // TODO + registerType("wolf_angry", false); // TODO + + // Parrot + registerType("parrot_variant", 0); // TODO + + // Villager + registerType("villager_ethnicity", 1); // TODO: how tf does this work? probably need to look in mc src + registerType("villager_job", null); // TODO + + // Show Golem + registerType("pumpkin", true); // TODO + + // Shulker + registerType("attach_direction", null); // TODO: make a direction enum + registerType("shield_height", 0); // TODO: figure this out + registerType("shulker_color", 10); // TODO + + // Piglin / Hoglin + registerType("immune_to_zombification", false); // TODO + + // Piglin + registerType("piglin_dancing", false); // TODO + registerType("piglin_charging_crossbow", false); // TODO + + // Blaze + registerType("blaze_is_on_fire", false); // TODO + + // Creeper + registerType("creeper_state", null); // TODO: -1 = idle, 1 = fuse + registerType("creeper_charged", false); // TODO + + // Goat + registerType("has_left_horn", true); // TODO + registerType("has_right_horn", true); // TODO + + // Vindicator + registerType("celebrating", false); // TODO + + // Wither + registerType("invulnerable_time", 0); // TODO + + // Enderman + registerType("enderman_held_block", null); // TODO: figure out the type on this + registerType("enderman_screaming", false); // TODO + + // Ghast + registerType("attacking", false); // TODO + + // Phantom + registerType("phantom_size", 0); // TODO + + // Slime + registerType("slime_size", 0); // TODO } private void registerSerializer(PropertySerializer serializer) { @@ -60,6 +208,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { } private void registerType(String name, T defaultValue, Class clazz) { + if (clazz == null) return; EntityPropertyImpl property = new EntityPropertyImpl<>(name, defaultValue, clazz, (PropertySerializer) serializerMap.get(clazz)); byName.put(name.toLowerCase(), property); }