Package com.prupe.mcpatcher.mob

Source Code of com.prupe.mcpatcher.mob.MobRandomizer

package com.prupe.mcpatcher.mob;

import com.prupe.mcpatcher.MCLogger;
import com.prupe.mcpatcher.TexturePackChangeHandler;
import com.prupe.mcpatcher.mob.MobRandomizer$1;
import com.prupe.mcpatcher.mob.MobRandomizer$ExtraInfo;
import java.util.LinkedHashMap;
import net.minecraft.src.Entity;
import net.minecraft.src.EntityLivingBase;
import net.minecraft.src.ResourceLocation;

public class MobRandomizer {
  private static final MCLogger logger = MCLogger.getLogger("Random Mobs");
  private static final LinkedHashMap<String, ResourceLocation> cache = new LinkedHashMap();

  static void init() {}

  public static ResourceLocation randomTexture(EntityLivingBase entity, ResourceLocation texture) {
    if (texture != null && texture.getResourcePath().endsWith(".png")) {
      String key = texture.toString() + ":" + entity.entityId;
      ResourceLocation newTexture = (ResourceLocation)cache.get(key);

      if (newTexture == null) {
        MobRandomizer$ExtraInfo info = MobRandomizer$ExtraInfo.getInfo(entity);
        MobRuleList list = MobRuleList.get(texture);
        newTexture = list.getSkin(MobRandomizer$ExtraInfo.access$100(info), MobRandomizer$ExtraInfo.access$200(info), MobRandomizer$ExtraInfo.access$300(info), MobRandomizer$ExtraInfo.access$400(info), MobRandomizer$ExtraInfo.access$500(info));
        cache.put(key, newTexture);
        logger.finer("entity %s using %s (cache: %d)", new Object[] {entity, newTexture, Integer.valueOf(cache.size())});

        if (cache.size() > 250) {
          while (cache.size() > 200) {
            cache.remove(cache.keySet().iterator().next());
          }
        }
      }

      return newTexture;
    } else {
      return texture;
    }
  }

  public static ResourceLocation randomTexture(Entity entity, ResourceLocation texture) {
    return entity instanceof EntityLivingBase ? randomTexture((EntityLivingBase)entity, texture) : texture;
  }

  static LinkedHashMap access$000() {
    return cache;
  }

  static MCLogger access$600() {
    return logger;
  }

  static {
    TexturePackChangeHandler.register(new MobRandomizer$1("Random Mobs", 2));
  }
}
TOP

Related Classes of com.prupe.mcpatcher.mob.MobRandomizer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.