Advertisement
Guest User

Untitled

a guest
Aug 15th, 2012
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.45 KB | None | 0 0
  1. import java.lang.reflect.InvocationTargetException;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4.  
  5. public class ModEntityHelper {
  6.     public Map<Class<? extends Entity>, EntityEntry> entityMap;
  7.     private Map<Integer, Class<? extends Entity>> trackerIdMap;
  8.  
  9.     public ModEntityHelper() {
  10.         entityMap = new HashMap<Class<? extends Entity>, EntityEntry>();
  11.         trackerIdMap = new HashMap<Integer, Class<? extends Entity>>();
  12.     }
  13.  
  14.     public void registerEntity(EntityEntry entry, int entityId) {
  15.         entityMap.put(entry.entityClass, entry);
  16.         trackerIdMap.put(entry.trackerId, entry.entityClass);
  17.         registerEntity(entry.entityClass, entityId);
  18.     }
  19.  
  20.     public void registerEntity(EntityEntry entry) {
  21.         registerEntity(entry, ModLoader.getUniqueEntityId());
  22.     }
  23.  
  24.     public void registerEntity(EntityEntry entry, int entityId,
  25.             int weighedProb, int min, int max, EnumCreatureType creatureType,
  26.             BiomeGenBase... biome) {
  27.         registerEntity(entry, entityId);
  28.         registerEntity(entry.entityClass, entityId, weighedProb, min, max,
  29.                 creatureType, biome);
  30.     }
  31.  
  32.     public void registerEntity(EntityEntry entry, int weighedProb, int min,
  33.             int max, EnumCreatureType creatureType, BiomeGenBase... biome) {
  34.         registerEntity(entry, ModLoader.getUniqueEntityId(), weighedProb, min,
  35.                 max, creatureType, biome);
  36.     }
  37.  
  38.     public void registerEntity(Class<? extends Entity> entityClass, int entityId) {
  39.         ModLoader.registerEntityID(entityClass, entityClass.getSimpleName(),
  40.                 entityId);
  41.     }
  42.  
  43.     public void registerEntity(Class<? extends Entity> entityClass) {
  44.         registerEntity(entityClass, ModLoader.getUniqueEntityId());
  45.     }
  46.  
  47.     public void registerEntity(Class<? extends Entity> entityClass,
  48.             int entityId, int weighedProb, int min, int max,
  49.             EnumCreatureType creatureType, BiomeGenBase... biome) {
  50.         registerEntity(entityClass, entityId);
  51.         ModLoader.addSpawn(entityClass, weighedProb, min, max, creatureType,
  52.                 biome);
  53.     }
  54.  
  55.     public void registerEntity(Class<? extends Entity> entityClass,
  56.             int weighedProb, int min, int max, EnumCreatureType creatureType,
  57.             BiomeGenBase... biome) {
  58.         registerEntity(entityClass, ModLoader.getUniqueEntityId(), weighedProb,
  59.                 min, max, creatureType, biome);
  60.     }
  61.  
  62.     public void addEntityToTracker(EntityTracker tracker, Entity entity) {
  63.         EntityEntry entry = entityMap.get(entity.getClass());
  64.         if (entry == null)
  65.             return;
  66.  
  67.         tracker.addEntityToTracker(entity, entry.blocksDistanceThreshold,
  68.                 entry.updateFrequency, entry.trackFrequency);
  69.     }
  70.  
  71.     public Packet getPacketForThisEntity(EntityTrackerEntry trackerEntry) {
  72.         EntityEntry entry = entityMap.get(trackerEntry.myEntity.getClass());
  73.         if (entry == null)
  74.             return null;
  75.        
  76.         // if (trackerEntry.myEntity instanceof EntityItemInfo) {
  77.                 // return new Packet23VehicleSpawn(trackerEntry.myEntity,
  78.                 // entry.trackerId);
  79.                 // }
  80.  
  81.         return new Packet23VehicleSpawn(trackerEntry.myEntity, entry.trackerId);
  82.  
  83.     }
  84.  
  85.     public Object handleVehicleSpawn(World worldClient,
  86.             Packet23VehicleSpawn packet, double x, double y, double z) {
  87.         EntityEntry entry = entityMap.get(trackerIdMap.get(packet.type));
  88.         if (entry == null)
  89.             return null;
  90.        
  91.         // if (entry.entityClass == EntityItemInfo.class) {
  92.                 // return new EntityItemInfo(worldClient, x, y, z);
  93.                 // }
  94.  
  95.         try {
  96.             return entry.entityClass.getConstructor(World.class, Double.TYPE,
  97.                     Double.TYPE, Double.TYPE).newInstance(worldClient, x, y, z);
  98.         } catch (NoSuchMethodException e) {
  99.             e.printStackTrace();
  100.         } catch (SecurityException e) {
  101.             e.printStackTrace();
  102.         } catch (InstantiationException e) {
  103.             e.printStackTrace();
  104.         } catch (IllegalAccessException e) {
  105.             e.printStackTrace();
  106.         } catch (IllegalArgumentException e) {
  107.             e.printStackTrace();
  108.         } catch (InvocationTargetException e) {
  109.             e.printStackTrace();
  110.         }
  111.  
  112.         return null;
  113.  
  114.     }
  115.  
  116.     public static class EntityEntry {
  117.         private static int trackerIdIncrement = 100;
  118.  
  119.         public final Class<? extends Entity> entityClass;
  120.         public final int trackerId;
  121.         public final int blocksDistanceThreshold;
  122.         public final int updateFrequency;
  123.         public final boolean trackFrequency;
  124.  
  125.         public EntityEntry(Class<? extends Entity> entityClass,
  126.                 int blocksDistanceThreshold, int updateFrequency,
  127.                 boolean trackFrequency) {
  128.             this.entityClass = entityClass;
  129.             this.blocksDistanceThreshold = blocksDistanceThreshold;
  130.             this.updateFrequency = updateFrequency;
  131.             this.trackFrequency = trackFrequency;
  132.             this.trackerId = trackerIdIncrement++;
  133.         }
  134.  
  135.     }
  136.  
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement