Added Panda properties
This commit is contained in:
		
							parent
							
								
									747e6b92be
								
							
						
					
					
						commit
						4c8d25c4df
					
				
					 5 changed files with 42 additions and 7 deletions
				
			
		
							
								
								
									
										11
									
								
								api/src/main/java/lol/pyr/znpcsplus/util/PandaGene.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								api/src/main/java/lol/pyr/znpcsplus/util/PandaGene.java
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					package lol.pyr.znpcsplus.util;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum PandaGene {
 | 
				
			||||||
 | 
					    NORMAL,
 | 
				
			||||||
 | 
					    LAZY,
 | 
				
			||||||
 | 
					    WORRIED,
 | 
				
			||||||
 | 
					    PLAYFUL,
 | 
				
			||||||
 | 
					    BROWN,
 | 
				
			||||||
 | 
					    WEAK,
 | 
				
			||||||
 | 
					    AGGRESSIVE
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -273,6 +273,7 @@ public class ZNpcsPlus extends JavaPlugin {
 | 
				
			||||||
        registerEnumParser(manager, LlamaVariant.class, incorrectUsageMessage);
 | 
					        registerEnumParser(manager, LlamaVariant.class, incorrectUsageMessage);
 | 
				
			||||||
        registerEnumParser(manager, MooshroomVariant.class, incorrectUsageMessage);
 | 
					        registerEnumParser(manager, MooshroomVariant.class, incorrectUsageMessage);
 | 
				
			||||||
        registerEnumParser(manager, OcelotType.class, incorrectUsageMessage);
 | 
					        registerEnumParser(manager, OcelotType.class, incorrectUsageMessage);
 | 
				
			||||||
 | 
					        registerEnumParser(manager, PandaGene.class, incorrectUsageMessage);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        manager.registerCommand("npc", new MultiCommand(loadHelpMessage("root"))
 | 
					        manager.registerCommand("npc", new MultiCommand(loadHelpMessage("root"))
 | 
				
			||||||
                .addSubcommand("create", new CreateCommand(npcRegistry, typeRegistry))
 | 
					                .addSubcommand("create", new CreateCommand(npcRegistry, typeRegistry))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,6 +67,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
 | 
				
			||||||
        registerEnumSerializer(LlamaVariant.class);
 | 
					        registerEnumSerializer(LlamaVariant.class);
 | 
				
			||||||
        registerEnumSerializer(MooshroomVariant.class);
 | 
					        registerEnumSerializer(MooshroomVariant.class);
 | 
				
			||||||
        registerEnumSerializer(OcelotType.class);
 | 
					        registerEnumSerializer(OcelotType.class);
 | 
				
			||||||
 | 
					        registerEnumSerializer(PandaGene.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /*
 | 
					        /*
 | 
				
			||||||
        registerType("using_item", false); // TODO: fix it for 1.8 and add new property to use offhand item and riptide animation
 | 
					        registerType("using_item", false); // TODO: fix it for 1.8 and add new property to use offhand item and riptide animation
 | 
				
			||||||
| 
						 | 
					@ -96,12 +97,6 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
 | 
				
			||||||
        // Sniffer
 | 
					        // Sniffer
 | 
				
			||||||
        registerType("sniffer_state", null); // TODO: Nothing on wiki.vg, look in mc source
 | 
					        registerType("sniffer_state", null); // TODO: Nothing on wiki.vg, look in mc source
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Panda
 | 
					 | 
				
			||||||
        registerType("panda_sneezing", false); // TODO
 | 
					 | 
				
			||||||
        registerType("panda_rolling", false); // TODO
 | 
					 | 
				
			||||||
        registerType("panda_sitting", false); // TODO
 | 
					 | 
				
			||||||
        registerType("panda_on_back", false); // TODO
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Pig
 | 
					        // Pig
 | 
				
			||||||
        registerType("pig_saddle", false); // TODO
 | 
					        registerType("pig_saddle", false); // TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -399,6 +394,26 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
 | 
				
			||||||
        else mooshroomIndex = 15;
 | 
					        else mooshroomIndex = 15;
 | 
				
			||||||
        register(new EncodedStringProperty<>("mooshroom_variant", MooshroomVariant.RED, mooshroomIndex, MooshroomVariant::getVariantName));
 | 
					        register(new EncodedStringProperty<>("mooshroom_variant", MooshroomVariant.RED, mooshroomIndex, MooshroomVariant::getVariantName));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Panda
 | 
				
			||||||
 | 
					        int pandaIndex;
 | 
				
			||||||
 | 
					        if (ver.isNewerThanOrEquals(ServerVersion.V_1_17)) pandaIndex = 20;
 | 
				
			||||||
 | 
					        else if (ver.isNewerThanOrEquals(ServerVersion.V_1_15)) pandaIndex = 19;
 | 
				
			||||||
 | 
					        else pandaIndex = 18;
 | 
				
			||||||
 | 
					        register(new EncodedByteProperty<>("panda_main_gene", PandaGene.NORMAL, pandaIndex++, obj -> (byte) obj.ordinal()));
 | 
				
			||||||
 | 
					        register(new EncodedByteProperty<>("panda_hidden_gene", PandaGene.NORMAL, pandaIndex++, obj -> (byte) obj.ordinal()));
 | 
				
			||||||
 | 
					        if (ver.isNewerThanOrEquals(ServerVersion.V_1_15)) {
 | 
				
			||||||
 | 
					            register(new BitsetProperty("panda_sneezing", pandaIndex, 0x02));
 | 
				
			||||||
 | 
					            register(new BitsetProperty("panda_rolling", pandaIndex, 0x04));
 | 
				
			||||||
 | 
					            register(new BitsetProperty("panda_sitting", pandaIndex, 0x08));
 | 
				
			||||||
 | 
					            register(new BitsetProperty("panda_on_back", pandaIndex, 0x10));
 | 
				
			||||||
 | 
					            linkProperties("panda_sneezing", "panda_rolling", "panda_sitting", "panda_on_back");
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            register(new BitsetProperty("panda_sneezing", pandaIndex, 0x02));
 | 
				
			||||||
 | 
					            register(new BitsetProperty("panda_eating", pandaIndex, 0x04));
 | 
				
			||||||
 | 
					            linkProperties("panda_sneezing", "panda_eating");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!ver.isNewerThanOrEquals(ServerVersion.V_1_15)) return;
 | 
					        if (!ver.isNewerThanOrEquals(ServerVersion.V_1_15)) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        register(new BitsetProperty("fox_faceplanted", foxIndex, 0x40));
 | 
					        register(new BitsetProperty("fox_faceplanted", foxIndex, 0x40));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -144,6 +144,13 @@ public class NpcTypeImpl implements NpcType {
 | 
				
			||||||
                    addProperties("ocelot_type");
 | 
					                    addProperties("ocelot_type");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if (EntityTypes.isTypeInstanceOf(type, EntityTypes.PANDA)) {
 | 
				
			||||||
 | 
					                if (version.isNewerThanOrEquals(ServerVersion.V_1_15)) {
 | 
				
			||||||
 | 
					                    addProperties("panda_rolling", "panda_sitting", "panda_on_back");
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    addProperties("panda_eating");
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            return new NpcTypeImpl(name, type, hologramOffset, new HashSet<>(allowedProperties), defaultProperties);
 | 
					            return new NpcTypeImpl(name, type, hologramOffset, new HashSet<>(allowedProperties), defaultProperties);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -268,7 +268,8 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
 | 
				
			||||||
                .addProperties("hand", "fox_variant", "fox_sitting", "fox_crouching", "fox_sleeping", "fox_faceplanted"));
 | 
					                .addProperties("hand", "fox_variant", "fox_sitting", "fox_crouching", "fox_sleeping", "fox_faceplanted"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        register(builder(p, "panda", EntityTypes.PANDA)
 | 
					        register(builder(p, "panda", EntityTypes.PANDA)
 | 
				
			||||||
                .setHologramOffset(-0.725));
 | 
					                .setHologramOffset(-0.725)
 | 
				
			||||||
 | 
					                .addProperties("panda_main_gene", "panda_hidden_gene", "panda_sneezing"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        register(builder(p, "pillager", EntityTypes.PILLAGER)
 | 
					        register(builder(p, "pillager", EntityTypes.PILLAGER)
 | 
				
			||||||
                .setHologramOffset(-0.025)
 | 
					                .setHologramOffset(-0.025)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue