Posted October 4, 20205 yr In my projectile entity class, getDefaultItem is: @Override public Item getDefaultItem() { HashMap<Float, Item> itemMap = new HashMap<>(); itemMap.put(1F, ModItems.ITEM_1); itemMap.put(1.25F, ModItems.ITEM_2); itemMap.put(1.5F, ModItems.ITEM_3); itemMap.put(1.75F, ModItems.ITEM_4); itemMap.put(2F, ModItems.ITEM_5); System.out.println("floatField: " + floatField); return itemMap.get(floatField); } Where floatField is a (non-final) field initialized in the constructor. However, floatField returns zero in this method, even though it returns the correct nonzero value in a method like onImpact, which is also an override. Is this a simple fix, or should I settle for separate entity classes for each ModItem that extend this base class? Edited October 4, 20205 yr by urbanxx001
October 4, 20205 yr 49 minutes ago, urbanxx001 said: Is this a simple fix Probably since the float field is never synchronized to the client (my guess anyways). Also, don't construct a map every time you try and get the default item. Construct the map once and then never again.
October 4, 20205 yr Author 3 minutes ago, ChampionAsh5357 said: Probably since the float field is never synchronized to the client (my guess anyways). Oh no that sounds like capability stuff lol. Maybe I'll stick with separate classes then. I'll fix the map as you suggested though. Thanks!
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.