Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
11년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
12 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
686 행
복사
6 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
682 행
복사
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
// Decompiler options: packimports(3)
// Source File Name: TFC_Core.java
// Source File Name: TFC_Core.java
package com.bioxx.tfc.Core;
package com.bioxx.tfc.Core;
import com.bioxx.tfc.Blocks.BlockSlab;
import com.bioxx.tfc.Blocks.BlockSlab;
import com.bioxx.tfc.Chunkdata.ChunkData;
import com.bioxx.tfc.Chunkdata.ChunkData;
import com.bioxx.tfc.Chunkdata.ChunkDataManager;
import com.bioxx.tfc.Chunkdata.ChunkDataManager;
import com.bioxx.tfc.CommonProxy;
import com.bioxx.tfc.CommonProxy;
import com.bioxx.tfc.Core.Player.BodyTempStats;
import com.bioxx.tfc.Core.Player.BodyTempStats;
import com.bioxx.tfc.Core.Player.FoodStatsTFC;
import com.bioxx.tfc.Core.Player.FoodStatsTFC;
import com.bioxx.tfc.Core.Player.InventoryPlayerTFC;
import com.bioxx.tfc.Core.Player.InventoryPlayerTFC;
import com.bioxx.tfc.Core.Player.SkillStats;
import com.bioxx.tfc.Core.Player.SkillStats;
import com.bioxx.tfc.Food.ItemFoodTFC;
import com.bioxx.tfc.Food.ItemFoodTFC;
import com.bioxx.tfc.Items.ItemBlocks.ItemTerraBlock;
import com.bioxx.tfc.Items.ItemBlocks.ItemTerraBlock;
import com.bioxx.tfc.Items.ItemOre;
import com.bioxx.tfc.Items.ItemOre;
import com.bioxx.tfc.Items.ItemTerra;
import com.bioxx.tfc.Items.ItemTerra;
import com.bioxx.tfc.TerraFirmaCraft;
import com.bioxx.tfc.TerraFirmaCraft;
import com.bioxx.tfc.TileEntities.TEMetalSheet;
import com.bioxx.tfc.TileEntities.TEMetalSheet;
import com.bioxx.tfc.TileEntities.TEPartial;
import com.bioxx.tfc.TileEntities.TEPartial;
import com.bioxx.tfc.WorldGen.TFCBiome;
import com.bioxx.tfc.WorldGen.TFCBiome;
import com.bioxx.tfc.WorldGen.WorldCacheManager;
import com.bioxx.tfc.WorldGen.WorldCacheManager;
import com.bioxx.tfc.api.Constant.Global;
import com.bioxx.tfc.api.Constant.Global;
import com.bioxx.tfc.api.Entities.IAnimal;
import com.bioxx.tfc.api.Entities.IAnimal;
import com.bioxx.tfc.api.Enums.EnumFuelMaterial;
import com.bioxx.tfc.api.Enums.EnumFuelMaterial;
import com.bioxx.tfc.api.Food;
import com.bioxx.tfc.api.Food;
import com.bioxx.tfc.api.Interfaces.IFood;
import com.bioxx.tfc.api.Interfaces.IFood;
import com.bioxx.tfc.api.*;
import com.bioxx.tfc.api.*;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.Side;
import java.nio.ByteBuffer;
import java.nio.ByteBuffer;
import java.util.*;
import java.util.*;
import net.minecraft.block.Block;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFire;
import net.minecraft.block.BlockFire;
import net.minecraft.block.material.Material;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.entity.*;
import net.minecraft.entity.*;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.*;
import net.minecraft.util.*;
import net.minecraft.world.*;
import net.minecraft.world.*;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.storage.WorldInfo;
import net.minecraft.world.storage.WorldInfo;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.common.util.ForgeDirection;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.input.Mouse;
// Referenced classes of package com.bioxx.tfc.Core:
// Referenced classes of package com.bioxx.tfc.Core:
// Recipes, TFC_Time, TFC_Climate
// Recipes, TFC_Time, TFC_Climate
public class TFC_Core
public class TFC_Core
{
{
public TFC_Core()
public TFC_Core()
{
{
}
}
public static ChunkDataManager getCDM(World world)
public static ChunkDataManager getCDM(World world)
{
{
int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g;
int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g;
return (ChunkDataManager)cdmMap.get(Integer.valueOf(key));
return (ChunkDataManager)cdmMap.get(Integer.valueOf(key));
}
}
public static ChunkDataManager addCDM(World world)
public static ChunkDataManager addCDM(World world)
{
{
int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g;
int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g;
if(!cdmMap.containsKey(Integer.valueOf(key)))
if(!cdmMap.containsKey(Integer.valueOf(key)))
return (ChunkDataManager)cdmMap.put(Integer.valueOf(key), new ChunkDataManager(world));
return (ChunkDataManager)cdmMap.put(Integer.valueOf(key), new ChunkDataManager(world));
else
else
return (ChunkDataManager)cdmMap.get(Integer.valueOf(key));
return (ChunkDataManager)cdmMap.get(Integer.valueOf(key));
}
}
public static ChunkDataManager removeCDM(World world)
public static ChunkDataManager removeCDM(World world)
{
{
int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g;
int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g;
return (ChunkDataManager)cdmMap.remove(Integer.valueOf(key));
return (ChunkDataManager)cdmMap.remove(Integer.valueOf(key));
}
}
public static int getMouseX()
public static int getMouseX()
{
{
ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d);
ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d);
int i = scaledresolution.func_78326_a();
int i = scaledresolution.func_78326_a();
int k = (Mouse.getX() * i) / Minecraft.func_71410_x().field_71443_c;
int k = (Mouse.getX() * i) / Minecraft.func_71410_x().field_71443_c;
return k;
return k;
}
}
public static int getMouseY()
public static int getMouseY()
{
{
ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d);
ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d);
int j = scaledresolution.func_78328_b();
int j = scaledresolution.func_78328_b();
int l = j - (Mouse.getY() * j) / Minecraft.func_71410_x().field_71440_d - 1;
int l = j - (Mouse.getY() * j) / Minecraft.func_71410_x().field_71440_d - 1;
return l;
return l;
}
}
static Boolean isBlockAboveSolid(IBlockAccess blockAccess, int i, int j, int k)
static Boolean isBlockAboveSolid(IBlockAccess blockAccess, int i, int j, int k)
{
{
if(TerraFirmaCraft.proxy.getCurrentWorld().func_147439_a(i, j + 1, k).func_149662_c())
if(TerraFirmaCraft.proxy.getCurrentWorld().func_147439_a(i, j + 1, k).func_149662_c())
return Boolean.valueOf(true);
return Boolean.valueOf(true);
else
else
return Boolean.valueOf(false);
return Boolean.valueOf(false);
}
}
public static int getExtraEquipInventorySize()
public static int getExtraEquipInventorySize()
{
{
return 1;
return 1;
}
}
public static InventoryPlayer getNewInventory(EntityPlayer player)
public static InventoryPlayer getNewInventory(EntityPlayer player)
{
{
InventoryPlayer ip = player.field_71071_by;
InventoryPlayer ip = player.field_71071_by;
NBTTagList nbt = new NBTTagList();
NBTTagList nbt = new NBTTagList();
nbt = player.field_71071_by.func_70442_a(nbt);
nbt = player.field_71071_by.func_70442_a(nbt);
ip = new InventoryPlayerTFC(player);
ip = new InventoryPlayerTFC(player);
ip.func_70443_b(nbt);
ip.func_70443_b(nbt);
return ip;
return ip;
}
}
public static ItemStack RandomGem(Random random, int rockType)
public static ItemStack RandomGem(Random random, int rockType)
{
{
ItemStack is = null;
ItemStack is = null;
if(random.nextInt(500) == 0)
if(random.nextInt(500) == 0)
{
{
ArrayList items = new ArrayList();
ArrayList items = new ArrayList();
items.add(new ItemStack(TFCItems.GemAgate, 1, 0));
items.add(new ItemStack(TFCItems.GemAgate, 1, 0));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 0));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 0));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 0));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 0));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 0));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 0));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 0));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 0));
items.add(new ItemStack(TFCItems.GemJade, 1, 0));
items.add(new ItemStack(TFCItems.GemJade, 1, 0));
items.add(new ItemStack(TFCItems.GemJasper, 1, 0));
items.add(new ItemStack(TFCItems.GemJasper, 1, 0));
items.add(new ItemStack(TFCItems.GemOpal, 1, 0));
items.add(new ItemStack(TFCItems.GemOpal, 1, 0));
items.add(new ItemStack(TFCItems.GemRuby, 1, 0));
items.add(new ItemStack(TFCItems.GemRuby, 1, 0));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 0));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 0));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 0));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 0));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 0));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 0));
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
} else
} else
if(random.nextInt(1000) == 0)
if(random.nextInt(1000) == 0)
{
{
ArrayList items = new ArrayList();
ArrayList items = new ArrayList();
items.add(new ItemStack(TFCItems.GemAgate, 1, 1));
items.add(new ItemStack(TFCItems.GemAgate, 1, 1));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 1));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 1));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 1));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 1));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 1));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 1));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 1));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 1));
items.add(new ItemStack(TFCItems.GemJade, 1, 1));
items.add(new ItemStack(TFCItems.GemJade, 1, 1));
items.add(new ItemStack(TFCItems.GemJasper, 1, 1));
items.add(new ItemStack(TFCItems.GemJasper, 1, 1));
items.add(new ItemStack(TFCItems.GemOpal, 1, 1));
items.add(new ItemStack(TFCItems.GemOpal, 1, 1));
items.add(new ItemStack(TFCItems.GemRuby, 1, 1));
items.add(new ItemStack(TFCItems.GemRuby, 1, 1));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 1));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 1));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 1));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 1));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 1));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 1));
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
} else
} else
if(random.nextInt(2000) == 0)
if(random.nextInt(2000) == 0)
{
{
ArrayList items = new ArrayList();
ArrayList items = new ArrayList();
items.add(new ItemStack(TFCItems.GemAgate, 1, 2));
items.add(new ItemStack(TFCItems.GemAgate, 1, 2));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 2));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 2));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 2));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 2));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 2));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 2));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 2));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 2));
items.add(new ItemStack(TFCItems.GemJade, 1, 2));
items.add(new ItemStack(TFCItems.GemJade, 1, 2));
items.add(new ItemStack(TFCItems.GemJasper, 1, 2));
items.add(new ItemStack(TFCItems.GemJasper, 1, 2));
items.add(new ItemStack(TFCItems.GemOpal, 1, 2));
items.add(new ItemStack(TFCItems.GemOpal, 1, 2));
items.add(new ItemStack(TFCItems.GemRuby, 1, 2));
items.add(new ItemStack(TFCItems.GemRuby, 1, 2));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 2));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 2));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 2));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 2));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 2));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 2));
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
} else
} else
if(random.nextInt(4000) == 0)
if(random.nextInt(4000) == 0)
{
{
ArrayList items = new ArrayList();
ArrayList items = new ArrayList();
items.add(new ItemStack(TFCItems.GemAgate, 1, 3));
items.add(new ItemStack(TFCItems.GemAgate, 1, 3));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 3));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 3));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 3));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 3));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 3));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 3));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 3));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 3));
items.add(new ItemStack(TFCItems.GemJade, 1, 3));
items.add(new ItemStack(TFCItems.GemJade, 1, 3));
items.add(new ItemStack(TFCItems.GemJasper, 1, 3));
items.add(new ItemStack(TFCItems.GemJasper, 1, 3));
items.add(new ItemStack(TFCItems.GemOpal, 1, 3));
items.add(new ItemStack(TFCItems.GemOpal, 1, 3));
items.add(new ItemStack(TFCItems.GemRuby, 1, 3));
items.add(new ItemStack(TFCItems.GemRuby, 1, 3));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 3));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 3));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 3));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 3));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 3));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 3));
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
} else
} else
if(random.nextInt(8000) == 0)
if(random.nextInt(8000) == 0)
{
{
ArrayList items = new ArrayList();
ArrayList items = new ArrayList();
items.add(new ItemStack(TFCItems.GemAgate, 1, 4));
items.add(new ItemStack(TFCItems.GemAgate, 1, 4));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 4));
items.add(new ItemStack(TFCItems.GemAmethyst, 1, 4));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 4));
items.add(new ItemStack(TFCItems.GemBeryl, 1, 4));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 4));
items.add(new ItemStack(TFCItems.GemEmerald, 1, 4));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 4));
items.add(new ItemStack(TFCItems.GemGarnet, 1, 4));
items.add(new ItemStack(TFCItems.GemJade, 1, 4));
items.add(new ItemStack(TFCItems.GemJade, 1, 4));
items.add(new ItemStack(TFCItems.GemJasper, 1, 4));
items.add(new ItemStack(TFCItems.GemJasper, 1, 4));
items.add(new ItemStack(TFCItems.GemOpal, 1, 4));
items.add(new ItemStack(TFCItems.GemOpal, 1, 4));
items.add(new ItemStack(TFCItems.GemRuby, 1, 4));
items.add(new ItemStack(TFCItems.GemRuby, 1, 4));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 4));
items.add(new ItemStack(TFCItems.GemSapphire, 1, 4));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 4));
items.add(new ItemStack(TFCItems.GemTourmaline, 1, 4));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 4));
items.add(new ItemStack(TFCItems.GemTopaz, 1, 4));
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)];
}
}
return is;
return is;
}
}
public static void SurroundWithLeaves(World world, int i, int j, int k, int meta, Random R)
public static void SurroundWithLeaves(World world, int i, int j, int k, int meta, Random R)
{
{
for(int y = 2; y >= -2; y--)
for(int y = 2; y >= -2; y--)
{
{
for(int x = 2; x >= -2; x--)
for(int x = 2; x >= -2; x--)
{
{
for(int z = 2; z >= -2; z--)
for(int z = 2; z >= -2; z--)
if(world.func_147437_c(i + x, j + y, k + z))
if(world.func_147437_c(i + x, j + y, k + z))
world.func_147465_d(i + x, j + y, k + z, TFCBlocks.Leaves, meta, 2);
world.func_147465_d(i + x, j + y, k + z, TFCBlocks.Leaves, meta, 2);
}
}
}
}
}
}
public static void SetupWorld(World world)
public static void SetupWorld(World world)
{
{
long seed = world.func_72905_C();
long seed = world.func_72905_C();
Random R = new Random(seed);
Random R = new Random(seed);
world.field_73011_w.func_76558_a(world);
world.field_73011_w.func_76558_a(world);
Recipes.registerAnvilRecipes(R, world);
Recipes.registerAnvilRecipes(R, world);
}
}
public static void SetupWorld(World w, long seed)
public static void SetupWorld(World w, long seed)
{
{
try
try
{
{
ReflectionHelper.setPrivateValue(net/minecraft/world/storage/WorldInfo, w.func_72912_H(), Long.valueOf(seed), 0);
ReflectionHelper.setPrivateValue(net/minecraft/world/storage/WorldInfo, w.func_72912_H(), Long.valueOf(seed), 0);
SetupWorld(w);
SetupWorld(w);
}
}
catch(Exception exception) { }
catch(Exception exception) { }
}
}
public static boolean isRawStone(World world, int x, int y, int z)
public static boolean isRawStone(World world, int x, int y, int z)
{
{
Block block = world.func_147439_a(x, y, z);
Block block = world.func_147439_a(x, y, z);
return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM;
return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM;
}
}
public static boolean isSmoothStone(World world, int x, int y, int z)
public static boolean isSmoothStone(World world, int x, int y, int z)
{
{
Block block = world.func_147439_a(x, y, z);
Block block = world.func_147439_a(x, y, z);
return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth;
return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth;
}
}
public static boolean isSmoothStone(Block block)
public static boolean isSmoothStone(Block block)
{
{
return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth;
return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth;
}
}
public static boolean isBrickStone(Block block)
public static boolean isBrickStone(Block block)
{
{
return block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.StoneMMBrick;
return block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.StoneMMBrick;
}
}
public static boolean isRawStone(Block block)
public static boolean isRawStone(Block block)
{
{
return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM;
return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM;
}
}
public static boolean isOreStone(Block block)
public static boolean isOreStone(Block block)
{
{
return block == TFCBlocks.Ore || block == TFCBlocks.Ore2 || block == TFCBlocks.Ore3;
return block == TFCBlocks.Ore || block == TFCBlocks.Ore2 || block == TFCBlocks.Ore3;
}
}
public static boolean isNaturalStone(Block block)
public static boolean isNaturalStone(Block block)
{
{
return isRawStone(block) || isOreStone(block);
return isRawStone(block) || isOreStone(block);
}
}
public static boolean isCobbleStone(Block block)
public static boolean isCobbleStone(Block block)
{
{
return block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneMMCobble;
return block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneMMCobble;
}
}
public static boolean isStoneIgEx(Block block)
public static boolean isStoneIgEx(Block block)
{
{
return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.WallRawIgEx || block == TFCBlocks.WallCobbleIgEx || block == TFCBlocks.WallBrickIgEx || block == TFCBlocks.WallSmoothIgEx;
return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.WallRawIgEx || block == TFCBlocks.WallCobbleIgEx || block == TFCBlocks.WallBrickIgEx || block == TFCBlocks.WallSmoothIgEx;
}
}
public static boolean isStoneIgIn(Block block)
public static boolean isStoneIgIn(Block block)
{
{
return block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.WallRawIgIn || block == TFCBlocks.WallCobbleIgIn || block == TFCBlocks.WallBrickIgIn || block == TFCBlocks.WallSmoothIgIn;
return block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.WallRawIgIn || block == TFCBlocks.WallCobbleIgIn || block == TFCBlocks.WallBrickIgIn || block == TFCBlocks.WallSmoothIgIn;
}
}
public static boolean isStoneSed(Block block)
public static boolean isStoneSed(Block block)
{
{
return block == TFCBlocks.StoneSed || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.WallRawSed || block == TFCBlocks.WallCobbleSed || block == TFCBlocks.WallBrickSed || block == TFCBlocks.WallSmoothSed;
return block == TFCBlocks.StoneSed || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.WallRawSed || block == TFCBlocks.WallCobbleSed || block == TFCBlocks.WallBrickSed || block == TFCBlocks.WallSmoothSed;
}
}
public static boolean isStoneMM(Block block)
public static boolean isStoneMM(Block block)
{
{
return block == TFCBlocks.StoneMM || block == TFCBlocks.StoneMMCobble || block == TFCBlocks.StoneMMSmooth || block == TFCBlocks.StoneMMBrick || block == TFCBlocks.WallRawMM || block == TFCBlocks.WallCobbleMM || block == TFCBlocks.WallBrickMM || block == TFCBlocks.WallSmoothMM;
return block == TFCBlocks.StoneMM || block == TFCBlocks.StoneMMCobble || block == TFCBlocks.StoneMMSmooth || block == TFCBlocks.StoneMMBrick || block == TFCBlocks.WallRawMM || block == TFCBlocks.WallCobbleMM || block == TFCBlocks.WallBrickMM || block == TFCBlocks.WallSmoothMM;
}
}
public static boolean isDirt(Block block)
public static boolean isDirt(Block block)
{
{
return block == TFCBlocks.Dirt || block == TFCBlocks.Dirt2;
return block == TFCBlocks.Dirt || block == TFCBlocks.Dirt2;
}
}
public static boolean isFarmland(Block block)
public static boolean isFarmland(Block block)
{
{
return block == TFCBlocks.tilledSoil || block == TFCBlocks.tilledSoil2;
return block == TFCBlocks.tilledSoil || block == TFCBlocks.tilledSoil2;
}
}
public static boolean isGrass(Block block)
public static boolean isGrass(Block block)
{
{
return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass || block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2;
return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass || block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2;
}
}
public static boolean isGrassNormal(Block block)
public static boolean isGrassNormal(Block block)
{
{
return block == TFCBlocks.Grass || block == TFCBlocks.Grass2;
return block == TFCBlocks.Grass || block == TFCBlocks.Grass2;
}
}
public static boolean isLushGrass(Block block)
public static boolean isLushGrass(Block block)
{
{
return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass;
return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass;
}
}
public static boolean isClayGrass(Block block)
public static boolean isClayGrass(Block block)
{
{
return block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2;
return block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2;
}
}
public static boolean isPeatGrass(Block block)
public static boolean isPeatGrass(Block block)
{
{
return block == TFCBlocks.PeatGrass;
return block == TFCBlocks.PeatGrass;
}
}
public static boolean isDryGrass(Block block)
public static boolean isDryGrass(Block block)
{
{
return block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2;
return block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2;
}
}
public static boolean isGrassType1(Block block)
public static boolean isGrassType1(Block block)
{
{
return block == TFCBlocks.Grass || block == TFCBlocks.ClayGrass || block == TFCBlocks.DryGrass;
return block == TFCBlocks.Grass || block == TFCBlocks.ClayGrass || block == TFCBlocks.DryGrass;
}
}
public static boolean isGrassType2(Block block)
public static boolean isGrassType2(Block block)
{
{
return block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.DryGrass2;
return block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.DryGrass2;
}
}
public static boolean isClay(Block block)
public static boolean isClay(Block block)
{
{
return block == TFCBlocks.Clay || block == TFCBlocks.Clay2;
return block == TFCBlocks.Clay || block == TFCBlocks.Clay2;
}
}
public static boolean isSand(Block block)
public static boolean isSand(Block block)
{
{
return block == TFCBlocks.Sand || block == TFCBlocks.Sand2;
return block == TFCBlocks.Sand || block == TFCBlocks.Sand2;
}
}
public static boolean isPeat(Block block)
public static boolean isPeat(Block block)
{
{
return block == TFCBlocks.Peat;
return block == TFCBlocks.Peat;
}
}
복사
복사됨
복사
복사됨
public static boolean isNotWater(Block block)
{
return !isSaltWater(block) || !isFreshWater(block) || !isHotWater(block);
}
public static boolean isHotWater(Block block)
public static boolean isHotWater(Block block)
{
{
복사
복사됨
복사
복사됨
return block == TFCBlocks.HotWater
|| block == TFCBlocks.HotWaterStationary
;
return block == TFCBlocks.HotWater
;
}
}
public static boolean isWater(Block block)
public static boolean isWater(Block block)
{
{
return isSaltWater(block) || isFreshWater(block);
return isSaltWater(block) || isFreshWater(block);
}
}
public static boolean isWaterFlowing(Block block)
public static boolean isWaterFlowing(Block block)
{
{
복사
복사됨
복사
복사됨
return block == TFCBlocks.SaltWater || block == TFCBlocks.FreshWater
;
return block == TFCBlocks.SaltWater || block == TFCBlocks.FreshWater
|| block == TFCBlocks.HotWater
;
}
}
public static boolean isSaltWater(Block block)
public static boolean isSaltWater(Block block)
{
{
return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary;
return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary;
}
}
public static boolean isSaltWaterIncludeIce(Block block, int meta, Material mat)
public static boolean isSaltWaterIncludeIce(Block block, int meta, Material mat)
{
{
return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary || mat == Material.field_151588_w && meta == 0;
return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary || mat == Material.field_151588_w && meta == 0;
}
}
public static boolean isFreshWater(Block block)
public static boolean isFreshWater(Block block)
{
{
return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary;
return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary;
}
}
public static boolean isFreshWaterIncludeIce(Block block, int meta)
public static boolean isFreshWaterIncludeIce(Block block, int meta)
{
{
return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || block == TFCBlocks.Ice && meta != 0;
return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || block == TFCBlocks.Ice && meta != 0;
}
}
public static boolean isFreshWaterIncludeIce(Block block, int meta, Material mat)
public static boolean isFreshWaterIncludeIce(Block block, int meta, Material mat)
{
{
return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || mat == Material.field_151588_w && meta != 0;
return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || mat == Material.field_151588_w && meta != 0;
}
}
public static boolean isSoil(Block block)
public static boolean isSoil(Block block)
{
{
return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block);
return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block);
}
}
public static boolean isSoilOrGravel(Block block)
public static boolean isSoilOrGravel(Block block)
{
{
return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block) || isGravel(block);
return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block) || isGravel(block);
}
}
public static boolean isGravel(Block block)
public static boolean isGravel(Block block)
{
{
return block == TFCBlocks.Gravel || block == TFCBlocks.Gravel2;
return block == TFCBlocks.Gravel || block == TFCBlocks.Gravel2;
}
}
public static boolean isGround(Block block)
public static boolean isGround(Block block)
{
{
return isSoilOrGravel(block) || isRawStone(block) || isSand(block);
return isSoilOrGravel(block) || isRawStone(block) || isSand(block);
}
}
복사
복사됨
복사
복사됨
public static boolean isGroundType1(Block block)
public static boolean isGroundType1(Block block)
{
{
복사
복사됨
복사
복사됨
return isGrassType1(block) || block == TFCBlocks.Dirt || block == TFCBlocks.Gravel || block == TFCBlocks.Sand;
return isGrassType1(block) || block == TFCBlocks.Dirt || block == TFCBlocks.Gravel || block == TFCBlocks.Sand;
}
}
public static boolean isSoilWAILA(Block block)
public static boolean isSoilWAILA(Block block)
{
{
return isDirt(block) || isGravel(block) || isSand(block) || isGrassNormal(block) || isDryGrass(block);
return isDirt(block) || isGravel(block) || isSand(block) || isGrassNormal(block) || isDryGrass(block);
}
}
public static int getSoilMetaFromStone(Block inBlock, int inMeta)
public static int getSoilMetaFromStone(Block inBlock, int inMeta)
{
{
if(inBlock == TFCBlocks.StoneIgIn)
if(inBlock == TFCBlocks.StoneIgIn)
return inMeta;
return inMeta;
if(inBlock == TFCBlocks.StoneSed)
if(inBlock == TFCBlocks.StoneSed)
return inMeta + 3;
return inMeta + 3;
if(inBlock == TFCBlocks.StoneIgEx)
if(inBlock == TFCBlocks.StoneIgEx)
return inMeta + 11;
return inMeta + 11;
if(inMeta == 0)
if(inMeta == 0)
return inMeta + 15;
return inMeta + 15;
else
else
return inMeta - 1;
return inMeta - 1;
}
}
public static int getSoilMeta(int inMeta)
public static int getSoilMeta(int inMeta)
{
{
return inMeta & 0xf;
return inMeta & 0xf;
}
}
public static int getItemMetaFromStone(Block inBlock, int inMeta)
public static int getItemMetaFromStone(Block inBlock, int inMeta)
{
{
if(inBlock == TFCBlocks.StoneIgIn)
if(inBlock == TFCBlocks.StoneIgIn)
return inMeta;
return inMeta;
if(inBlock == TFCBlocks.StoneSed)
if(inBlock == TFCBlocks.StoneSed)
return inMeta + 3;
return inMeta + 3;
if(inBlock == TFCBlocks.StoneIgEx)
if(inBlock == TFCBlocks.StoneIgEx)
return inMeta + 11;
return inMeta + 11;
if(inBlock == TFCBlocks.StoneMM)
if(inBlock == TFCBlocks.StoneMM)
return inMeta + 15;
return inMeta + 15;
else
else
return 0;
return 0;
}
}
public static Block getTypeForGrassWithRain(int inMeta, float rain)
public static Block getTypeForGrassWithRain(int inMeta, float rain)
{
{
if(rain >= 500F)
if(rain >= 500F)
return getTypeForGrass(inMeta);
return getTypeForGrass(inMeta);
else
else
return getTypeForDryGrass(inMeta);
return getTypeForDryGrass(inMeta);
}
}
public static Block getTypeForGrassWithRainByBlock(Block block, float rain)
public static Block getTypeForGrassWithRainByBlock(Block block, float rain)
{
{
if(rain >= 500F)
if(rain >= 500F)
return getTypeForGrassFromSoil(block);
return getTypeForGrassFromSoil(block);
else
else
return getTypeForDryGrassFromSoil(block);
return getTypeForDryGrassFromSoil(block);
}
}
public static Block getTypeForGrass(int inMeta)
public static Block getTypeForGrass(int inMeta)
{
{
if(inMeta < 16)
if(inMeta < 16)
return TFCBlocks.Grass;
return TFCBlocks.Grass;
else
else
return TFCBlocks.Grass2;
return TFCBlocks.Grass2;
}
}
public static Block getTypeForGrassFromDirt(Block block)
public static Block getTypeForGrassFromDirt(Block block)
{
{
if(block == TFCBlocks.Dirt)
if(block == TFCBlocks.Dirt)
return TFCBlocks.Grass;
return TFCBlocks.Grass;
else
else
return TFCBlocks.Grass2;
return TFCBlocks.Grass2;
}
}
public static Block getTypeForDryGrass(int inMeta)
public static Block getTypeForDryGrass(int inMeta)
{
{
if(inMeta < 16)
if(inMeta < 16)
return TFCBlocks.DryGrass;
return TFCBlocks.DryGrass;
else
else
return TFCBlocks.DryGrass2;
return TFCBlocks.DryGrass2;
}
}
public static Block getTypeForDryGrassFromSoil(Block block)
public static Block getTypeForDryGrassFromSoil(Block block)
{
{
if(block == TFCBlocks.Grass)
if(block == TFCBlocks.Grass)
return TFCBlocks.DryGrass;
return TFCBlocks.DryGrass;
if(block == TFCBlocks.Dirt)
if(block == TFCBlocks.Dirt)
return TFCBlocks.DryGrass;
return TFCBlocks.DryGrass;
else
else
return TFCBlocks.DryGrass2;
return TFCBlocks.DryGrass2;
}
}
public static Block getTypeForGrassFromSoil(Block block)
public static Block getTypeForGrassFromSoil(Block block)
{
{
if(block == TFCBlocks.DryGrass)
if(block == TFCBlocks.DryGrass)
return TFCBlocks.Grass;
return TFCBlocks.Grass;
if(block == TFCBlocks.DryGrass2)
if(block == TFCBlocks.DryGrass2)
return TFCBlocks.Grass2;
return TFCBlocks.Grass2;
if(block == TFCBlocks.Dirt)
if(block == TFCBlocks.Dirt)
return TFCBlocks.Grass;
return TFCBlocks.Grass;
else
else
return TFCBlocks.Grass2;
return TFCBlocks.Grass2;
}
}
public static Block getTypeForClayGrass(int inMeta)
public static Block getTypeForClayGrass(int inMeta)
{
{
if(inMeta < 16)
if(inMeta < 16)
return TFCBlocks.ClayGrass;
return TFCBlocks.ClayGrass;
else
else
return TFCBlocks.ClayGrass2;
return TFCBlocks.ClayGrass2;
}
}
복사
복사됨
복사
복사됨
public static Block getTypeForClayGrass(Block block)
public static Block getTypeForClayGrass(Block block)
{
{
if(isGroundType1(block))
if(isGroundType1(block))
return TFCBlocks.ClayGrass;
return TFCBlocks.ClayGrass;
else
else
return TFCBlocks.ClayGrass2;
return TFCBlocks.ClayGrass2;
}
}
복사
복사됨
복사
복사됨
public static Block getTypeForDirt(int inMeta)
public static Block getTypeForDirt(int inMeta)
{
{
if(inMeta < 16)
if(inMeta < 16)
return TFCBlocks.Dirt;
return TFCBlocks.Dirt;
else
else
return TFCBlocks.Dirt2;
return TFCBlocks.Dirt2;
}
}
public static Block getTypeForDirtFromGrass(Block block)
public static Block getTypeForDirtFromGrass(Block block)
{
{
if(isDirt(block))
if(isDirt(block))
return block;
return block;
if(block == TFCBlocks.Grass || block == TFCBlocks.DryGrass)
if(block == TFCBlocks.Grass || block == TFCBlocks.DryGrass)
return TFCBlocks.Dirt;
return TFCBlocks.Dirt;
else
else
return TFCBlocks.Dirt2;
return TFCBlocks.Dirt2;
}
}
public static Block getTypeForClay(int inMeta)
public static Block getTypeForClay(int inMeta)
{
{
if(inMeta < 16)
if(inMeta < 16)
return TFCBlocks.Clay;
return TFCBlocks.Clay;
else
else
return TFCBlocks.Clay2;
return TFCBlocks.Clay2;
}
}
복사
복사됨
복사
복사됨
public static Block getTypeForClay(Block block)
public static Block getTypeForClay(Block block)
{
{
if(isGroundType1(block))
if(isGroundType1(block))
return TFCBlocks.Clay;
return TFCBlocks.Clay;
else
else
return TFCBlocks.Clay2;
return TFCBlocks.Clay2;
}
}
복사
복사됨
복사
복사됨
public static Block getTypeForSand(int inMeta)
public static Block getTypeForSand(int inMeta)
{
{
if(inMeta < 16)
if(inMeta < 16)
return TFCBlocks.Sand;
return TFCBlocks.Sand;
else
else
return TFCBlocks.Sand2;
return TFCBlocks.Sand2;
}
}
public static Block getTypeForGravel(int inMeta)
public static Block getTypeForGravel(int inMeta)
{
{
if(inMeta < 16)
if(inMeta < 16)
return TFCBlocks.Gravel;
return TFCBlocks.Gravel;
else
else
return TFCBlocks.Gravel2;
return TFCBlocks.Gravel2;
}
}
public static int getRockLayerFromHeight(World world, int x, int y, int z)
public static int getRockLayerFromHeight(World world, int x, int y, int z)
{
{
ChunkData cd = getCDM(world).getData(x >> 4, z >> 4);
ChunkData cd = getCDM(world).getData(x >> 4, z >> 4);
if(cd != null)
if(cd != null)
{
{
int hm[] = cd.heightmap;
int hm[] = cd.heightmap;
int localX = x & 0xf;
int localX = x & 0xf;
int localZ = z & 0xf;
int localZ = z & 0xf;
int localY = localX + localZ * 16;
int localY = localX + localZ * 16;
if(y <= TFCOptions.RockLayer3Height + hm[localY])
if(y <= TFCOptions.RockLayer3Height + hm[localY])
return 2;
return 2;
return y > TFCOptions.RockLayer2Height + hm[localY] ? 0 : 1;
return y > TFCOptions.RockLayer2Height + hm[localY] ? 0 : 1;
} else
} else
{
{
return 0;
return 0;
}
}
}
}
public static boolean convertGrassToDirt(World world, int i, int j, int k)
public static boolean convertGrassToDirt(World world, int i, int j, int k)
{
{
Block block = world.func_147439_a(i, j, k);
Block block = world.func_147439_a(i, j, k);
int meta = world.func_72805_g(i, j, k);
int meta = world.func_72805_g(i, j, k);
if(isGrass(block))
if(isGrass(block))
{
{
if(isGrassType1(block))
if(isGrassType1(block))
{
{
world.func_147465_d(i, j, k, TFCBlocks.Dirt, meta, 2);
world.func_147465_d(i, j, k, TFCBlocks.Dirt, meta, 2);
return true;
return true;
}
}
if(isGrassType2(block))
if(isGrassType2(block))
{
{
world.func_147465_d(i, j, k, TFCBlocks.Dirt2, meta, 2);
world.func_147465_d(i, j, k, TFCBlocks.Dirt2, meta, 2);
return true;
return true;
}
}
}
}
return false;
return false;
}
}
public static EnumFuelMaterial getFuelMaterial(ItemStack is)
public static EnumFuelMaterial getFuelMaterial(ItemStack is)
{
{
if(is.func_77973_b() == Item.func_150898_a(TFCBlocks.Peat))
if(is.func_77973_b() == Item.func_150898_a(TFCBlocks.Peat))
return EnumFuelMaterial.PEAT;
return EnumFuelMaterial.PEAT;
if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 0)
if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 0)
return EnumFuelMaterial.COAL;
return EnumFuelMaterial.COAL;
if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 1)
if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 1)
return EnumFuelMaterial.CHARCOAL;
return EnumFuelMaterial.CHARCOAL;
if(is.func_77960_j() == 0)
if(is.func_77960_j() == 0)
return EnumFuelMaterial.ASH;
return EnumFuelMaterial.ASH;
if(is.func_77960_j() == 1)
if(is.func_77960_j() == 1)
return EnumFuelMaterial.ASPEN;
return EnumFuelMaterial.ASPEN;
if(is.func_77960_j() == 2)
if(is.func_77960_j() == 2)
return EnumFuelMaterial.BIRCH;
return EnumFuelMaterial.BIRCH;
if(is.func_77960_j() == 3)
if(is.func_77960_j() == 3)
return EnumFuelMaterial.CHESTNUT;
return EnumFuelMaterial.CHESTNUT;
if(is.func_77960_j() == 4)
if(is.func_77960_j() == 4)
return EnumFuelMaterial.DOUGLASFIR;
return EnumFuelMaterial.DOUGLASFIR;
if(is.func_77960_j() == 5)
if(is.func_77960_j() == 5)
return EnumFuelMaterial.HICKORY;
return EnumFuelMaterial.HICKORY;
if(is.func_77960_j() == 6)
if(is.func_77960_j() == 6)
return EnumFuelMaterial.MAPLE;
return EnumFuelMaterial.MAPLE;
if(is.func_77960_j() == 7)
if(is.func_77960_j() == 7)
return EnumFuelMaterial.OAK;
return EnumFuelMaterial.OAK;
if(is.func_77960_j() == 8)
if(is.func_77960_j() == 8)
return EnumFuelMaterial.PINE;
return EnumFuelMaterial.PINE;
if(is.func_77960_j() == 9)
if(is.func_77960_j() == 9)
return EnumFuelMaterial.REDWOOD;
return EnumFuelMaterial.REDWOOD;
if(is.func_77960_j() == 10)
if(is.func_77960_j() == 10)
return EnumFuelMaterial.SPRUCE;
return EnumFuelMaterial.SPRUCE;
if(is.func_77960_j() == 11)
if(is.func_77960_j() == 11)
복사
복사됨
복사
복사됨
return EnumFuelMaterial.SYCAMORE;
if(is.func_77960_j() == 12)
return EnumFuelMaterial.WHITECEDAR;
저장된 비교 결과
원본
파일 열기
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) // Source File Name: TFC_Core.java package com.bioxx.tfc.Core; import com.bioxx.tfc.Blocks.BlockSlab; import com.bioxx.tfc.Chunkdata.ChunkData; import com.bioxx.tfc.Chunkdata.ChunkDataManager; import com.bioxx.tfc.CommonProxy; import com.bioxx.tfc.Core.Player.BodyTempStats; import com.bioxx.tfc.Core.Player.FoodStatsTFC; import com.bioxx.tfc.Core.Player.InventoryPlayerTFC; import com.bioxx.tfc.Core.Player.SkillStats; import com.bioxx.tfc.Food.ItemFoodTFC; import com.bioxx.tfc.Items.ItemBlocks.ItemTerraBlock; import com.bioxx.tfc.Items.ItemOre; import com.bioxx.tfc.Items.ItemTerra; import com.bioxx.tfc.TerraFirmaCraft; import com.bioxx.tfc.TileEntities.TEMetalSheet; import com.bioxx.tfc.TileEntities.TEPartial; import com.bioxx.tfc.WorldGen.TFCBiome; import com.bioxx.tfc.WorldGen.WorldCacheManager; import com.bioxx.tfc.api.Constant.Global; import com.bioxx.tfc.api.Entities.IAnimal; import com.bioxx.tfc.api.Enums.EnumFuelMaterial; import com.bioxx.tfc.api.Food; import com.bioxx.tfc.api.Interfaces.IFood; import com.bioxx.tfc.api.*; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import java.nio.ByteBuffer; import java.util.*; import net.minecraft.block.Block; import net.minecraft.block.BlockFire; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.*; import net.minecraft.entity.ai.attributes.IAttributeInstance; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.*; import net.minecraft.world.*; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; // Referenced classes of package com.bioxx.tfc.Core: // Recipes, TFC_Time, TFC_Climate public class TFC_Core { public TFC_Core() { } public static ChunkDataManager getCDM(World world) { int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g; return (ChunkDataManager)cdmMap.get(Integer.valueOf(key)); } public static ChunkDataManager addCDM(World world) { int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g; if(!cdmMap.containsKey(Integer.valueOf(key))) return (ChunkDataManager)cdmMap.put(Integer.valueOf(key), new ChunkDataManager(world)); else return (ChunkDataManager)cdmMap.get(Integer.valueOf(key)); } public static ChunkDataManager removeCDM(World world) { int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g; return (ChunkDataManager)cdmMap.remove(Integer.valueOf(key)); } public static int getMouseX() { ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d); int i = scaledresolution.func_78326_a(); int k = (Mouse.getX() * i) / Minecraft.func_71410_x().field_71443_c; return k; } public static int getMouseY() { ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d); int j = scaledresolution.func_78328_b(); int l = j - (Mouse.getY() * j) / Minecraft.func_71410_x().field_71440_d - 1; return l; } static Boolean isBlockAboveSolid(IBlockAccess blockAccess, int i, int j, int k) { if(TerraFirmaCraft.proxy.getCurrentWorld().func_147439_a(i, j + 1, k).func_149662_c()) return Boolean.valueOf(true); else return Boolean.valueOf(false); } public static int getExtraEquipInventorySize() { return 1; } public static InventoryPlayer getNewInventory(EntityPlayer player) { InventoryPlayer ip = player.field_71071_by; NBTTagList nbt = new NBTTagList(); nbt = player.field_71071_by.func_70442_a(nbt); ip = new InventoryPlayerTFC(player); ip.func_70443_b(nbt); return ip; } public static ItemStack RandomGem(Random random, int rockType) { ItemStack is = null; if(random.nextInt(500) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 0)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 0)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 0)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 0)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 0)); items.add(new ItemStack(TFCItems.GemJade, 1, 0)); items.add(new ItemStack(TFCItems.GemJasper, 1, 0)); items.add(new ItemStack(TFCItems.GemOpal, 1, 0)); items.add(new ItemStack(TFCItems.GemRuby, 1, 0)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 0)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 0)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 0)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(1000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 1)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 1)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 1)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 1)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 1)); items.add(new ItemStack(TFCItems.GemJade, 1, 1)); items.add(new ItemStack(TFCItems.GemJasper, 1, 1)); items.add(new ItemStack(TFCItems.GemOpal, 1, 1)); items.add(new ItemStack(TFCItems.GemRuby, 1, 1)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 1)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 1)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 1)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(2000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 2)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 2)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 2)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 2)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 2)); items.add(new ItemStack(TFCItems.GemJade, 1, 2)); items.add(new ItemStack(TFCItems.GemJasper, 1, 2)); items.add(new ItemStack(TFCItems.GemOpal, 1, 2)); items.add(new ItemStack(TFCItems.GemRuby, 1, 2)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 2)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 2)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 2)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(4000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 3)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 3)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 3)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 3)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 3)); items.add(new ItemStack(TFCItems.GemJade, 1, 3)); items.add(new ItemStack(TFCItems.GemJasper, 1, 3)); items.add(new ItemStack(TFCItems.GemOpal, 1, 3)); items.add(new ItemStack(TFCItems.GemRuby, 1, 3)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 3)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 3)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 3)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(8000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 4)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 4)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 4)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 4)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 4)); items.add(new ItemStack(TFCItems.GemJade, 1, 4)); items.add(new ItemStack(TFCItems.GemJasper, 1, 4)); items.add(new ItemStack(TFCItems.GemOpal, 1, 4)); items.add(new ItemStack(TFCItems.GemRuby, 1, 4)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 4)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 4)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 4)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } return is; } public static void SurroundWithLeaves(World world, int i, int j, int k, int meta, Random R) { for(int y = 2; y >= -2; y--) { for(int x = 2; x >= -2; x--) { for(int z = 2; z >= -2; z--) if(world.func_147437_c(i + x, j + y, k + z)) world.func_147465_d(i + x, j + y, k + z, TFCBlocks.Leaves, meta, 2); } } } public static void SetupWorld(World world) { long seed = world.func_72905_C(); Random R = new Random(seed); world.field_73011_w.func_76558_a(world); Recipes.registerAnvilRecipes(R, world); } public static void SetupWorld(World w, long seed) { try { ReflectionHelper.setPrivateValue(net/minecraft/world/storage/WorldInfo, w.func_72912_H(), Long.valueOf(seed), 0); SetupWorld(w); } catch(Exception exception) { } } public static boolean isRawStone(World world, int x, int y, int z) { Block block = world.func_147439_a(x, y, z); return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM; } public static boolean isSmoothStone(World world, int x, int y, int z) { Block block = world.func_147439_a(x, y, z); return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth; } public static boolean isSmoothStone(Block block) { return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth; } public static boolean isBrickStone(Block block) { return block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.StoneMMBrick; } public static boolean isRawStone(Block block) { return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM; } public static boolean isOreStone(Block block) { return block == TFCBlocks.Ore || block == TFCBlocks.Ore2 || block == TFCBlocks.Ore3; } public static boolean isNaturalStone(Block block) { return isRawStone(block) || isOreStone(block); } public static boolean isCobbleStone(Block block) { return block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneMMCobble; } public static boolean isStoneIgEx(Block block) { return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.WallRawIgEx || block == TFCBlocks.WallCobbleIgEx || block == TFCBlocks.WallBrickIgEx || block == TFCBlocks.WallSmoothIgEx; } public static boolean isStoneIgIn(Block block) { return block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.WallRawIgIn || block == TFCBlocks.WallCobbleIgIn || block == TFCBlocks.WallBrickIgIn || block == TFCBlocks.WallSmoothIgIn; } public static boolean isStoneSed(Block block) { return block == TFCBlocks.StoneSed || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.WallRawSed || block == TFCBlocks.WallCobbleSed || block == TFCBlocks.WallBrickSed || block == TFCBlocks.WallSmoothSed; } public static boolean isStoneMM(Block block) { return block == TFCBlocks.StoneMM || block == TFCBlocks.StoneMMCobble || block == TFCBlocks.StoneMMSmooth || block == TFCBlocks.StoneMMBrick || block == TFCBlocks.WallRawMM || block == TFCBlocks.WallCobbleMM || block == TFCBlocks.WallBrickMM || block == TFCBlocks.WallSmoothMM; } public static boolean isDirt(Block block) { return block == TFCBlocks.Dirt || block == TFCBlocks.Dirt2; } public static boolean isFarmland(Block block) { return block == TFCBlocks.tilledSoil || block == TFCBlocks.tilledSoil2; } public static boolean isGrass(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass || block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2; } public static boolean isGrassNormal(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.Grass2; } public static boolean isLushGrass(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass; } public static boolean isClayGrass(Block block) { return block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2; } public static boolean isPeatGrass(Block block) { return block == TFCBlocks.PeatGrass; } public static boolean isDryGrass(Block block) { return block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2; } public static boolean isGrassType1(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.ClayGrass || block == TFCBlocks.DryGrass; } public static boolean isGrassType2(Block block) { return block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.DryGrass2; } public static boolean isClay(Block block) { return block == TFCBlocks.Clay || block == TFCBlocks.Clay2; } public static boolean isSand(Block block) { return block == TFCBlocks.Sand || block == TFCBlocks.Sand2; } public static boolean isPeat(Block block) { return block == TFCBlocks.Peat; } public static boolean isHotWater(Block block) { return block == TFCBlocks.HotWater || block == TFCBlocks.HotWaterStationary; } public static boolean isWater(Block block) { return isSaltWater(block) || isFreshWater(block); } public static boolean isWaterFlowing(Block block) { return block == TFCBlocks.SaltWater || block == TFCBlocks.FreshWater; } public static boolean isSaltWater(Block block) { return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary; } public static boolean isSaltWaterIncludeIce(Block block, int meta, Material mat) { return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary || mat == Material.field_151588_w && meta == 0; } public static boolean isFreshWater(Block block) { return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary; } public static boolean isFreshWaterIncludeIce(Block block, int meta) { return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || block == TFCBlocks.Ice && meta != 0; } public static boolean isFreshWaterIncludeIce(Block block, int meta, Material mat) { return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || mat == Material.field_151588_w && meta != 0; } public static boolean isSoil(Block block) { return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block); } public static boolean isSoilOrGravel(Block block) { return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block) || isGravel(block); } public static boolean isGravel(Block block) { return block == TFCBlocks.Gravel || block == TFCBlocks.Gravel2; } public static boolean isGround(Block block) { return isSoilOrGravel(block) || isRawStone(block) || isSand(block); } public static boolean isGroundType1(Block block) { return isGrassType1(block) || block == TFCBlocks.Dirt || block == TFCBlocks.Gravel || block == TFCBlocks.Sand; } public static boolean isSoilWAILA(Block block) { return isDirt(block) || isGravel(block) || isSand(block) || isGrassNormal(block) || isDryGrass(block); } public static int getSoilMetaFromStone(Block inBlock, int inMeta) { if(inBlock == TFCBlocks.StoneIgIn) return inMeta; if(inBlock == TFCBlocks.StoneSed) return inMeta + 3; if(inBlock == TFCBlocks.StoneIgEx) return inMeta + 11; if(inMeta == 0) return inMeta + 15; else return inMeta - 1; } public static int getSoilMeta(int inMeta) { return inMeta & 0xf; } public static int getItemMetaFromStone(Block inBlock, int inMeta) { if(inBlock == TFCBlocks.StoneIgIn) return inMeta; if(inBlock == TFCBlocks.StoneSed) return inMeta + 3; if(inBlock == TFCBlocks.StoneIgEx) return inMeta + 11; if(inBlock == TFCBlocks.StoneMM) return inMeta + 15; else return 0; } public static Block getTypeForGrassWithRain(int inMeta, float rain) { if(rain >= 500F) return getTypeForGrass(inMeta); else return getTypeForDryGrass(inMeta); } public static Block getTypeForGrassWithRainByBlock(Block block, float rain) { if(rain >= 500F) return getTypeForGrassFromSoil(block); else return getTypeForDryGrassFromSoil(block); } public static Block getTypeForGrass(int inMeta) { if(inMeta < 16) return TFCBlocks.Grass; else return TFCBlocks.Grass2; } public static Block getTypeForGrassFromDirt(Block block) { if(block == TFCBlocks.Dirt) return TFCBlocks.Grass; else return TFCBlocks.Grass2; } public static Block getTypeForDryGrass(int inMeta) { if(inMeta < 16) return TFCBlocks.DryGrass; else return TFCBlocks.DryGrass2; } public static Block getTypeForDryGrassFromSoil(Block block) { if(block == TFCBlocks.Grass) return TFCBlocks.DryGrass; if(block == TFCBlocks.Dirt) return TFCBlocks.DryGrass; else return TFCBlocks.DryGrass2; } public static Block getTypeForGrassFromSoil(Block block) { if(block == TFCBlocks.DryGrass) return TFCBlocks.Grass; if(block == TFCBlocks.DryGrass2) return TFCBlocks.Grass2; if(block == TFCBlocks.Dirt) return TFCBlocks.Grass; else return TFCBlocks.Grass2; } public static Block getTypeForClayGrass(int inMeta) { if(inMeta < 16) return TFCBlocks.ClayGrass; else return TFCBlocks.ClayGrass2; } public static Block getTypeForClayGrass(Block block) { if(isGroundType1(block)) return TFCBlocks.ClayGrass; else return TFCBlocks.ClayGrass2; } public static Block getTypeForDirt(int inMeta) { if(inMeta < 16) return TFCBlocks.Dirt; else return TFCBlocks.Dirt2; } public static Block getTypeForDirtFromGrass(Block block) { if(isDirt(block)) return block; if(block == TFCBlocks.Grass || block == TFCBlocks.DryGrass) return TFCBlocks.Dirt; else return TFCBlocks.Dirt2; } public static Block getTypeForClay(int inMeta) { if(inMeta < 16) return TFCBlocks.Clay; else return TFCBlocks.Clay2; } public static Block getTypeForClay(Block block) { if(isGroundType1(block)) return TFCBlocks.Clay; else return TFCBlocks.Clay2; } public static Block getTypeForSand(int inMeta) { if(inMeta < 16) return TFCBlocks.Sand; else return TFCBlocks.Sand2; } public static Block getTypeForGravel(int inMeta) { if(inMeta < 16) return TFCBlocks.Gravel; else return TFCBlocks.Gravel2; } public static int getRockLayerFromHeight(World world, int x, int y, int z) { ChunkData cd = getCDM(world).getData(x >> 4, z >> 4); if(cd != null) { int hm[] = cd.heightmap; int localX = x & 0xf; int localZ = z & 0xf; int localY = localX + localZ * 16; if(y <= TFCOptions.RockLayer3Height + hm[localY]) return 2; return y > TFCOptions.RockLayer2Height + hm[localY] ? 0 : 1; } else { return 0; } } public static boolean convertGrassToDirt(World world, int i, int j, int k) { Block block = world.func_147439_a(i, j, k); int meta = world.func_72805_g(i, j, k); if(isGrass(block)) { if(isGrassType1(block)) { world.func_147465_d(i, j, k, TFCBlocks.Dirt, meta, 2); return true; } if(isGrassType2(block)) { world.func_147465_d(i, j, k, TFCBlocks.Dirt2, meta, 2); return true; } } return false; } public static EnumFuelMaterial getFuelMaterial(ItemStack is) { if(is.func_77973_b() == Item.func_150898_a(TFCBlocks.Peat)) return EnumFuelMaterial.PEAT; if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 0) return EnumFuelMaterial.COAL; if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 1) return EnumFuelMaterial.CHARCOAL; if(is.func_77960_j() == 0) return EnumFuelMaterial.ASH; if(is.func_77960_j() == 1) return EnumFuelMaterial.ASPEN; if(is.func_77960_j() == 2) return EnumFuelMaterial.BIRCH; if(is.func_77960_j() == 3) return EnumFuelMaterial.CHESTNUT; if(is.func_77960_j() == 4) return EnumFuelMaterial.DOUGLASFIR; if(is.func_77960_j() == 5) return EnumFuelMaterial.HICKORY; if(is.func_77960_j() == 6) return EnumFuelMaterial.MAPLE; if(is.func_77960_j() == 7) return EnumFuelMaterial.OAK; if(is.func_77960_j() == 8) return EnumFuelMaterial.PINE; if(is.func_77960_j() == 9) return EnumFuelMaterial.REDWOOD; if(is.func_77960_j() == 10) return EnumFuelMaterial.SPRUCE; if(is.func_77960_j() == 11) return EnumFuelMaterial.SYCAMORE; if(is.func_77960_j() == 12) return EnumFuelMaterial.WHITECEDAR; if(is.func_77960_j() == 13) return EnumFuelMaterial.WHITEELM; if(is.func_77960_j() == 14) return EnumFuelMaterial.WILLOW; if(is.func_77960_j() == 15) return EnumFuelMaterial.KAPOK; if(is.func_77960_j() == 16) return EnumFuelMaterial.ACACIA; else return EnumFuelMaterial.ASPEN; } public static boolean showShiftInformation() { return FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && Keyboard.isKeyDown(42); } public static boolean showCtrlInformation() { return FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && Keyboard.isKeyDown(29); } public static FoodStatsTFC getPlayerFoodStats(EntityPlayer player) { FoodStatsTFC foodstats = new FoodStatsTFC(player); foodstats.readNBT(player.getEntityData()); return foodstats; } public static void setPlayerFoodStats(EntityPlayer player, FoodStatsTFC foodstats) { foodstats.writeNBT(player.getEntityData()); } public static BodyTempStats getBodyTempStats(EntityPlayer player) { BodyTempStats body = new BodyTempStats(); body.readNBT(player.getEntityData()); return body; } public static void setBodyTempStats(EntityPlayer player, BodyTempStats tempStats) { tempStats.writeNBT(player.getEntityData()); } public static SkillStats getSkillStats(EntityPlayer player) { SkillStats skills = new SkillStats(player); skills.readNBT(player.getEntityData()); return skills; } public static void setSkillStats(EntityPlayer player, SkillStats skills) { skills.writeNBT(player.getEntityData()); } public static boolean isTopFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getTopChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.TopExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.UP); } public static boolean isBottomFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getBottomChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.BottomExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.DOWN); } public static boolean isNorthFaceSolid(World world, int x, int y, int z) { Block bid = world.func_147439_a(x, y, z); if(bid.func_149721_r()) return true; if(bid == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getNorthChiselLevel(te.extraData) == 0; } if(bid == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.NorthExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.NORTH); } public static boolean isSouthFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getSouthChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.SouthExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.SOUTH); } public static boolean isEastFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); if(BlockSlab.getEastChiselLevel(te.extraData) != 0) return true; } else if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.EastExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.EAST); } public static boolean isWestFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getWestChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.WestExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.WEST); } public static boolean isOreIron(ItemStack is) { return (is.func_77973_b() instanceof ItemOre) && ((ItemOre)is.func_77973_b()).GetMetalType(is) == Global.PIGIRON; } public static float getEntityMaxHealth(EntityLivingBase entity) { return (float)entity.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111126_e(); } public static float getPercentGrown(IAnimal animal) { float birth = animal.getBirthDay(); float time = TFC_Time.getTotalDays(); float percent = (time - birth) / (float)animal.getNumberOfDaysToAdult(); return Math.min(percent, 1.0F); } public static void bindTexture(ResourceLocation texture) { Minecraft.func_71410_x().func_110434_K().func_110577_a(texture); } public static boolean isPlayerInDebugMode(EntityPlayer player) { return TFCOptions.enableDebugMode; } public static void addPlayerExhaustion(EntityPlayer player, float exhaustion) { FoodStatsTFC foodstats = getPlayerFoodStats(player); foodstats.addFoodExhaustion(exhaustion); foodstats.addWaterExhaustion(exhaustion); setPlayerFoodStats(player, foodstats); } public static float getEnvironmentalDecay(float temp) { if(temp > 0.0F) { float tempFactor = 1.0F - 15F / (15F + temp); return tempFactor * 2.0F; } else { return 0.0F; } } public static void handleItemTicking(IInventory iinv, World world, int x, int y, int z) { handleItemTicking(iinv, world, x, y, z, 1.0F); } public static void handleItemTicking(ItemStack iinv[], World world, int x, int y, int z) { handleItemTicking(iinv, world, x, y, z, 1.0F); } public static void handleItemTicking(IInventory iinv, World world, int x, int y, int z, float environmentalDecayFactor) { for(int i = 0; !world.field_72995_K && i < iinv.func_70302_i_(); i++) { ItemStack is = iinv.func_70301_a(i); if(is != null && iinv.func_70301_a(i).field_77994_a <= 0) iinv.func_70299_a(i, null); if(is == null) continue; if(is.field_77994_a == 0) { iinv.func_70299_a(i, null); continue; } if((is.func_77973_b() instanceof ItemTerra) && ((ItemTerra)is.func_77973_b()).onUpdate(is, world, x, y, z) || (is.func_77973_b() instanceof ItemTerraBlock) && ((ItemTerraBlock)is.func_77973_b()).onUpdate(is, world, x, y, z)) continue; is = tickDecay(is, world, x, y, z, environmentalDecayFactor, 1.0F); if(is != null) TFC_ItemHeat.HandleItemHeat(is); iinv.func_70299_a(i, is); } } public static byte getByteFromSmallFloat(float f) { MathHelper.func_76131_a(f, 0.5F, 1.5F); return (byte)(Float.floatToIntBits(f) >> 16 & 0xff); } public static float getSmallFloatFromByte(byte b) { return ByteBuffer.wrap(new byte[] { 63, b, 0, 0 }).getFloat(); } public static void handleItemTicking(IInventory iinv, World world, int x, int y, int z, float environmentalDecayFactor, float baseDecayMod) { for(int i = 0; !world.field_72995_K && i < iinv.func_70302_i_(); i++) { ItemStack is = iinv.func_70301_a(i); if(is != null && iinv.func_70301_a(i).field_77994_a <= 0) iinv.func_70299_a(i, null); if(is == null || (is.func_77973_b() instanceof ItemTerra) && ((ItemTerra)is.func_77973_b()).onUpdate(is, world, x, y, z) || (is.func_77973_b() instanceof ItemTerraBlock) && ((ItemTerraBlock)is.func_77973_b()).onUpdate(is, world, x, y, z)) continue; is = tickDecay(is, world, x, y, z, environmentalDecayFactor, baseDecayMod); if(is != null) TFC_ItemHeat.HandleItemHeat(is); iinv.func_70299_a(i, is); } } public static void handleItemTicking(ItemStack iinv[], World world, int x, int y, int z, float environmentalDecayFactor) { for(int i = 0; !world.field_72995_K && i < iinv.length; i++) { ItemStack is = iinv[i]; if(is != null && iinv[i].field_77994_a <= 0) iinv[i] = null; if(is == null || (is.func_77973_b() instanceof ItemTerra) && ((ItemTerra)is.func_77973_b()).onUpdate(is, world, x, y, z) || (is.func_77973_b() instanceof ItemTerraBlock) && ((ItemTerraBlock)is.func_77973_b()).onUpdate(is, world, x, y, z)) continue; is = tickDecay(is, world, x, y, z, environmentalDecayFactor, 1.0F); if(is != null) TFC_ItemHeat.HandleItemHeat(is); iinv[i] = is; } } private static ItemStack tickDecay(ItemStack is, World world, int x, int y, int z, float environmentalDecayFactor, float baseDecayMod) { NBTTagCompound nbt = is.func_77978_p(); if(nbt == null || !nbt.func_74764_b("foodWeight") || !nbt.func_74764_b("foodDecay")) return is; if((long)nbt.func_74762_e("decayTimer") < TFC_Time.getTotalHours()) { int timeDiff = (int)(TFC_Time.getTotalHours() - (long)nbt.func_74762_e("decayTimer")); float protMult = 1.0F; if(TFCOptions.useDecayProtection) if(timeDiff > TFCOptions.decayProtectionDays * 24) nbt.func_74768_a("decayTimer", (int)TFC_Time.getTotalHours() - 24); else if(timeDiff > 24) protMult = 1 - timeDiff / (TFCOptions.decayProtectionDays * 24); float decay = nbt.func_74760_g("foodDecay"); float thisDecayRate = 1.0F; if(is.func_77973_b() instanceof IFood) thisDecayRate = ((IFood)is.func_77973_b()).getDecayRate(is); if(nbt.func_74764_b("decayRate")) thisDecayRate = nbt.func_74760_g("decayRate"); float temp = getCachedTemp(world, x, y, z, nbt.func_74762_e("decayTimer")); float environmentalDecay = getEnvironmentalDecay(temp) * environmentalDecayFactor; if(decay < 0.0F) { float d = 1.0F * (thisDecayRate * baseDecayMod * environmentalDecay); if(decay + d < 0.0F) decay += d; else decay = 0.0F; } else if(decay == 0.0F) { decay = nbt.func_74760_g("foodWeight") * (world.field_73012_v.nextFloat() * 0.005F) * TFCOptions.decayMultiplier; } else { double fdr = Global.FOOD_DECAY_RATE - 1.0D; fdr *= thisDecayRate * baseDecayMod * environmentalDecay * protMult * TFCOptions.decayMultiplier; decay = (float)((double)decay * (1.0D + fdr)); } nbt.func_74768_a("decayTimer", nbt.func_74762_e("decayTimer") + 1); nbt.func_74776_a("foodDecay", decay); } if(nbt.func_74760_g("foodDecay") / nbt.func_74760_g("foodWeight") > 0.9F) { if(is.func_77973_b() instanceof IFood) is = ((IFood)is.func_77973_b()).onDecayed(is, world, x, y, z); else is.field_77994_a = 0; } else { is.func_77982_d(nbt); } return is; } public static float getCachedTemp(World world, int x, int y, int z, int th) { float cacheTemp = TFC_Climate.getCacheManager(world).getTemp(x, z, th); if(cacheTemp != 1.401298E-45F) { return cacheTemp; } else { float temp = TFC_Climate.getHeightAdjustedTempSpecificDay(world, TFC_Time.getDayFromTotalHours(th), TFC_Time.getHourOfDayFromTotalHours(th), x, y, z); addCachedTemp(world, x, z, th, temp); return temp; } } public static void addCachedTemp(World world, int x, int z, int th, float temp) { TFC_Climate.getCacheManager(world).addTemp(x, z, th, temp); } public static void animalDropMeat(Entity e, Item i, float foodWeight) { ItemStack is = ItemFoodTFC.createTag(new ItemStack(i, 1), foodWeight); Random r = new Random(e.func_110124_au().getLeastSignificantBits() + e.func_110124_au().getMostSignificantBits()); Food.adjustFlavor(is, r); e.capturedDrops.add(new EntityItem(e.field_70170_p, e.field_70165_t, e.field_70163_u, e.field_70161_v, is)); } public static Vec3 getEntityPos(Entity e) { return Vec3.func_72443_a(e.field_70165_t, e.field_70163_u, e.field_70161_v); } public static void giveItemToPlayer(ItemStack is, EntityPlayer player) { if(player.field_70170_p.field_72995_K) { return; } else { EntityItem ei = player.func_70099_a(is, 1.0F); ei.field_145804_b = 0; return; } } public static boolean isFence(Block b) { return b == TFCBlocks.Fence || b == TFCBlocks.Fence2; } public static boolean isVertSupport(Block b) { return b == TFCBlocks.WoodSupportV || b == TFCBlocks.WoodSupportV2; } public static boolean isHorizSupport(Block b) { return b == TFCBlocks.WoodSupportH || b == TFCBlocks.WoodSupportH2; } public static boolean isOceanicBiome(int id) { return id == TFCBiome.ocean.field_76756_M || id == TFCBiome.DeepOcean.field_76756_M; } public static boolean isMountainBiome(int id) { return id == TFCBiome.Mountains.field_76756_M || id == TFCBiome.MountainsEdge.field_76756_M; } public static boolean isBeachBiome(int id) { return id == TFCBiome.beach.field_76756_M || id == TFCBiome.gravelbeach.field_76756_M; } public static boolean isValidCharcoalPitCover(Block block) { if(Blocks.field_150480_ab.getFlammability(block) > 0 && block != TFCBlocks.LogPile) return false; else return block == TFCBlocks.LogPile || isCobbleStone(block) || isBrickStone(block) || isSmoothStone(block) || isGround(block) || block == Blocks.field_150359_w || block == Blocks.field_150399_cn || block == TFCBlocks.MetalTrapDoor || block == Blocks.field_150454_av || block.func_149662_c(); } public static void writeInventoryToNBT(NBTTagCompound nbt, ItemStack storage[]) { writeInventoryToNBT(nbt, storage, "Items"); } public static void writeInventoryToNBT(NBTTagCompound nbt, ItemStack storage[], String name) { NBTTagList nbttaglist = new NBTTagList(); for(int i = 0; i < storage.length; i++) if(storage[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.func_74774_a("Slot", (byte)i); storage[i].func_77955_b(nbttagcompound1); nbttaglist.func_74742_a(nbttagcompound1); } nbt.func_74782_a(name, nbttaglist); } public static void readInventoryFromNBT(NBTTagCompound nbt, ItemStack storage[]) { readInventoryFromNBT(nbt, storage, "Items"); } public static void readInventoryFromNBT(NBTTagCompound nbt, ItemStack storage[], String name) { NBTTagList nbttaglist = nbt.func_150295_c(name, 10); for(int i = 0; i < nbttaglist.func_74745_c(); i++) { NBTTagCompound nbttagcompound1 = nbttaglist.func_150305_b(i); byte byte0 = nbttagcompound1.func_74771_c("Slot"); if(byte0 >= 0 && byte0 < storage.length) storage[byte0] = ItemStack.func_77949_a(nbttagcompound1); } } public static ItemStack getItemInInventory(Item item, IInventory iinv) { for(int i = 0; i < iinv.func_70302_i_(); i++) { iinv.func_70301_a(i); if(iinv.func_70301_a(i) != null && iinv.func_70301_a(i).func_77973_b() == item) return iinv.func_70301_a(i); } return null; } public static void DestroyBlock(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z) != Blocks.field_150350_a) { world.func_147439_a(x, y, z).func_149697_b(world, x, y, z, world.func_72805_g(x, y, z), 0); world.func_147468_f(x, y, z); } } public static boolean areItemsEqual(ItemStack is1, ItemStack is2) { Item i1 = null; int d1 = 0; Item i2 = null; int d2 = 0; if(is1 != null) { i1 = is1.func_77973_b(); d1 = is1.func_77960_j(); } if(is2 != null) { i2 = is2.func_77973_b(); d2 = is2.func_77960_j(); } return i1 == i2 && d1 == d2; } public static boolean setBlockWithDrops(World world, int x, int y, int z, Block b, int meta) { Block block = world.func_147439_a(x, y, z); if(block.func_149688_o() != Material.field_151579_a) { int l = world.func_72805_g(x, y, z); world.func_72926_e(2001, x, y, z, Block.func_149682_b(block) + (l << 12)); block.func_149697_b(world, x, y, z, l, 0); } return world.func_147465_d(x, y, z, b, meta, 3); } public static boolean setBlockToAirWithDrops(World world, int x, int y, int z) { return world.func_147480_a(x, y, z, true); } public static boolean isWaterBiome(BiomeGenBase b) { return isBeachBiome(b.field_76756_M) || isOceanicBiome(b.field_76756_M) || b == TFCBiome.lake || b == TFCBiome.river; } public static String translate(String s) { return StatCollector.func_74838_a(s); } public static void sendInfoMessage(EntityPlayer player, IChatComponent text) { text.func_150256_b().func_150238_a(EnumChatFormatting.GRAY).func_150217_b(Boolean.valueOf(true)); player.func_146105_b(text); } public static long getSuperSeed(World w) { return w.func_72905_C() + w.func_72912_H().func_76066_a().func_74763_f("superseed"); } private static HashMap cdmMap = new HashMap(); public static boolean PreventEntityDataUpdate = false; }
수정본
파일 열기
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) // Source File Name: TFC_Core.java package com.bioxx.tfc.Core; import com.bioxx.tfc.Blocks.BlockSlab; import com.bioxx.tfc.Chunkdata.ChunkData; import com.bioxx.tfc.Chunkdata.ChunkDataManager; import com.bioxx.tfc.CommonProxy; import com.bioxx.tfc.Core.Player.BodyTempStats; import com.bioxx.tfc.Core.Player.FoodStatsTFC; import com.bioxx.tfc.Core.Player.InventoryPlayerTFC; import com.bioxx.tfc.Core.Player.SkillStats; import com.bioxx.tfc.Food.ItemFoodTFC; import com.bioxx.tfc.Items.ItemBlocks.ItemTerraBlock; import com.bioxx.tfc.Items.ItemOre; import com.bioxx.tfc.Items.ItemTerra; import com.bioxx.tfc.TerraFirmaCraft; import com.bioxx.tfc.TileEntities.TEMetalSheet; import com.bioxx.tfc.TileEntities.TEPartial; import com.bioxx.tfc.WorldGen.TFCBiome; import com.bioxx.tfc.WorldGen.WorldCacheManager; import com.bioxx.tfc.api.Constant.Global; import com.bioxx.tfc.api.Entities.IAnimal; import com.bioxx.tfc.api.Enums.EnumFuelMaterial; import com.bioxx.tfc.api.Food; import com.bioxx.tfc.api.Interfaces.IFood; import com.bioxx.tfc.api.*; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; import java.nio.ByteBuffer; import java.util.*; import net.minecraft.block.Block; import net.minecraft.block.BlockFire; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.entity.*; import net.minecraft.entity.ai.attributes.IAttributeInstance; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.*; import net.minecraft.world.*; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; // Referenced classes of package com.bioxx.tfc.Core: // Recipes, TFC_Time, TFC_Climate public class TFC_Core { public TFC_Core() { } public static ChunkDataManager getCDM(World world) { int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g; return (ChunkDataManager)cdmMap.get(Integer.valueOf(key)); } public static ChunkDataManager addCDM(World world) { int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g; if(!cdmMap.containsKey(Integer.valueOf(key))) return (ChunkDataManager)cdmMap.put(Integer.valueOf(key), new ChunkDataManager(world)); else return (ChunkDataManager)cdmMap.get(Integer.valueOf(key)); } public static ChunkDataManager removeCDM(World world) { int key = world.field_72995_K ? 0x80 | world.field_73011_w.field_76574_g : world.field_73011_w.field_76574_g; return (ChunkDataManager)cdmMap.remove(Integer.valueOf(key)); } public static int getMouseX() { ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d); int i = scaledresolution.func_78326_a(); int k = (Mouse.getX() * i) / Minecraft.func_71410_x().field_71443_c; return k; } public static int getMouseY() { ScaledResolution scaledresolution = new ScaledResolution(Minecraft.func_71410_x(), Minecraft.func_71410_x().field_71443_c, Minecraft.func_71410_x().field_71440_d); int j = scaledresolution.func_78328_b(); int l = j - (Mouse.getY() * j) / Minecraft.func_71410_x().field_71440_d - 1; return l; } static Boolean isBlockAboveSolid(IBlockAccess blockAccess, int i, int j, int k) { if(TerraFirmaCraft.proxy.getCurrentWorld().func_147439_a(i, j + 1, k).func_149662_c()) return Boolean.valueOf(true); else return Boolean.valueOf(false); } public static int getExtraEquipInventorySize() { return 1; } public static InventoryPlayer getNewInventory(EntityPlayer player) { InventoryPlayer ip = player.field_71071_by; NBTTagList nbt = new NBTTagList(); nbt = player.field_71071_by.func_70442_a(nbt); ip = new InventoryPlayerTFC(player); ip.func_70443_b(nbt); return ip; } public static ItemStack RandomGem(Random random, int rockType) { ItemStack is = null; if(random.nextInt(500) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 0)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 0)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 0)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 0)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 0)); items.add(new ItemStack(TFCItems.GemJade, 1, 0)); items.add(new ItemStack(TFCItems.GemJasper, 1, 0)); items.add(new ItemStack(TFCItems.GemOpal, 1, 0)); items.add(new ItemStack(TFCItems.GemRuby, 1, 0)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 0)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 0)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 0)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(1000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 1)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 1)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 1)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 1)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 1)); items.add(new ItemStack(TFCItems.GemJade, 1, 1)); items.add(new ItemStack(TFCItems.GemJasper, 1, 1)); items.add(new ItemStack(TFCItems.GemOpal, 1, 1)); items.add(new ItemStack(TFCItems.GemRuby, 1, 1)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 1)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 1)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 1)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(2000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 2)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 2)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 2)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 2)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 2)); items.add(new ItemStack(TFCItems.GemJade, 1, 2)); items.add(new ItemStack(TFCItems.GemJasper, 1, 2)); items.add(new ItemStack(TFCItems.GemOpal, 1, 2)); items.add(new ItemStack(TFCItems.GemRuby, 1, 2)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 2)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 2)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 2)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(4000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 3)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 3)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 3)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 3)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 3)); items.add(new ItemStack(TFCItems.GemJade, 1, 3)); items.add(new ItemStack(TFCItems.GemJasper, 1, 3)); items.add(new ItemStack(TFCItems.GemOpal, 1, 3)); items.add(new ItemStack(TFCItems.GemRuby, 1, 3)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 3)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 3)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 3)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } else if(random.nextInt(8000) == 0) { ArrayList items = new ArrayList(); items.add(new ItemStack(TFCItems.GemAgate, 1, 4)); items.add(new ItemStack(TFCItems.GemAmethyst, 1, 4)); items.add(new ItemStack(TFCItems.GemBeryl, 1, 4)); items.add(new ItemStack(TFCItems.GemEmerald, 1, 4)); items.add(new ItemStack(TFCItems.GemGarnet, 1, 4)); items.add(new ItemStack(TFCItems.GemJade, 1, 4)); items.add(new ItemStack(TFCItems.GemJasper, 1, 4)); items.add(new ItemStack(TFCItems.GemOpal, 1, 4)); items.add(new ItemStack(TFCItems.GemRuby, 1, 4)); items.add(new ItemStack(TFCItems.GemSapphire, 1, 4)); items.add(new ItemStack(TFCItems.GemTourmaline, 1, 4)); items.add(new ItemStack(TFCItems.GemTopaz, 1, 4)); is = (ItemStack)items.toArray()[random.nextInt(items.toArray().length)]; } return is; } public static void SurroundWithLeaves(World world, int i, int j, int k, int meta, Random R) { for(int y = 2; y >= -2; y--) { for(int x = 2; x >= -2; x--) { for(int z = 2; z >= -2; z--) if(world.func_147437_c(i + x, j + y, k + z)) world.func_147465_d(i + x, j + y, k + z, TFCBlocks.Leaves, meta, 2); } } } public static void SetupWorld(World world) { long seed = world.func_72905_C(); Random R = new Random(seed); world.field_73011_w.func_76558_a(world); Recipes.registerAnvilRecipes(R, world); } public static void SetupWorld(World w, long seed) { try { ReflectionHelper.setPrivateValue(net/minecraft/world/storage/WorldInfo, w.func_72912_H(), Long.valueOf(seed), 0); SetupWorld(w); } catch(Exception exception) { } } public static boolean isRawStone(World world, int x, int y, int z) { Block block = world.func_147439_a(x, y, z); return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM; } public static boolean isSmoothStone(World world, int x, int y, int z) { Block block = world.func_147439_a(x, y, z); return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth; } public static boolean isSmoothStone(Block block) { return block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneMMSmooth; } public static boolean isBrickStone(Block block) { return block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.StoneMMBrick; } public static boolean isRawStone(Block block) { return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneSed || block == TFCBlocks.StoneMM; } public static boolean isOreStone(Block block) { return block == TFCBlocks.Ore || block == TFCBlocks.Ore2 || block == TFCBlocks.Ore3; } public static boolean isNaturalStone(Block block) { return isRawStone(block) || isOreStone(block); } public static boolean isCobbleStone(Block block) { return block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneMMCobble; } public static boolean isStoneIgEx(Block block) { return block == TFCBlocks.StoneIgEx || block == TFCBlocks.StoneIgExCobble || block == TFCBlocks.StoneIgExSmooth || block == TFCBlocks.StoneIgExBrick || block == TFCBlocks.WallRawIgEx || block == TFCBlocks.WallCobbleIgEx || block == TFCBlocks.WallBrickIgEx || block == TFCBlocks.WallSmoothIgEx; } public static boolean isStoneIgIn(Block block) { return block == TFCBlocks.StoneIgIn || block == TFCBlocks.StoneIgInCobble || block == TFCBlocks.StoneIgInSmooth || block == TFCBlocks.StoneIgInBrick || block == TFCBlocks.WallRawIgIn || block == TFCBlocks.WallCobbleIgIn || block == TFCBlocks.WallBrickIgIn || block == TFCBlocks.WallSmoothIgIn; } public static boolean isStoneSed(Block block) { return block == TFCBlocks.StoneSed || block == TFCBlocks.StoneSedCobble || block == TFCBlocks.StoneSedSmooth || block == TFCBlocks.StoneSedBrick || block == TFCBlocks.WallRawSed || block == TFCBlocks.WallCobbleSed || block == TFCBlocks.WallBrickSed || block == TFCBlocks.WallSmoothSed; } public static boolean isStoneMM(Block block) { return block == TFCBlocks.StoneMM || block == TFCBlocks.StoneMMCobble || block == TFCBlocks.StoneMMSmooth || block == TFCBlocks.StoneMMBrick || block == TFCBlocks.WallRawMM || block == TFCBlocks.WallCobbleMM || block == TFCBlocks.WallBrickMM || block == TFCBlocks.WallSmoothMM; } public static boolean isDirt(Block block) { return block == TFCBlocks.Dirt || block == TFCBlocks.Dirt2; } public static boolean isFarmland(Block block) { return block == TFCBlocks.tilledSoil || block == TFCBlocks.tilledSoil2; } public static boolean isGrass(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass || block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2; } public static boolean isGrassNormal(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.Grass2; } public static boolean isLushGrass(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.PeatGrass; } public static boolean isClayGrass(Block block) { return block == TFCBlocks.ClayGrass || block == TFCBlocks.ClayGrass2; } public static boolean isPeatGrass(Block block) { return block == TFCBlocks.PeatGrass; } public static boolean isDryGrass(Block block) { return block == TFCBlocks.DryGrass || block == TFCBlocks.DryGrass2; } public static boolean isGrassType1(Block block) { return block == TFCBlocks.Grass || block == TFCBlocks.ClayGrass || block == TFCBlocks.DryGrass; } public static boolean isGrassType2(Block block) { return block == TFCBlocks.Grass2 || block == TFCBlocks.ClayGrass2 || block == TFCBlocks.DryGrass2; } public static boolean isClay(Block block) { return block == TFCBlocks.Clay || block == TFCBlocks.Clay2; } public static boolean isSand(Block block) { return block == TFCBlocks.Sand || block == TFCBlocks.Sand2; } public static boolean isPeat(Block block) { return block == TFCBlocks.Peat; } public static boolean isNotWater(Block block) { return !isSaltWater(block) || !isFreshWater(block) || !isHotWater(block); } public static boolean isHotWater(Block block) { return block == TFCBlocks.HotWater; } public static boolean isWater(Block block) { return isSaltWater(block) || isFreshWater(block); } public static boolean isWaterFlowing(Block block) { return block == TFCBlocks.SaltWater || block == TFCBlocks.FreshWater || block == TFCBlocks.HotWater; } public static boolean isSaltWater(Block block) { return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary; } public static boolean isSaltWaterIncludeIce(Block block, int meta, Material mat) { return block == TFCBlocks.SaltWater || block == TFCBlocks.SaltWaterStationary || mat == Material.field_151588_w && meta == 0; } public static boolean isFreshWater(Block block) { return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary; } public static boolean isFreshWaterIncludeIce(Block block, int meta) { return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || block == TFCBlocks.Ice && meta != 0; } public static boolean isFreshWaterIncludeIce(Block block, int meta, Material mat) { return block == TFCBlocks.FreshWater || block == TFCBlocks.FreshWaterStationary || mat == Material.field_151588_w && meta != 0; } public static boolean isSoil(Block block) { return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block); } public static boolean isSoilOrGravel(Block block) { return isGrass(block) || isDirt(block) || isClay(block) || isPeat(block) || isGravel(block); } public static boolean isGravel(Block block) { return block == TFCBlocks.Gravel || block == TFCBlocks.Gravel2; } public static boolean isGround(Block block) { return isSoilOrGravel(block) || isRawStone(block) || isSand(block); } public static boolean isGroundType1(Block block) { return isGrassType1(block) || block == TFCBlocks.Dirt || block == TFCBlocks.Gravel || block == TFCBlocks.Sand;} public static boolean isSoilWAILA(Block block) { return isDirt(block) || isGravel(block) || isSand(block) || isGrassNormal(block) || isDryGrass(block); } public static int getSoilMetaFromStone(Block inBlock, int inMeta) { if(inBlock == TFCBlocks.StoneIgIn) return inMeta; if(inBlock == TFCBlocks.StoneSed) return inMeta + 3; if(inBlock == TFCBlocks.StoneIgEx) return inMeta + 11; if(inMeta == 0) return inMeta + 15; else return inMeta - 1; } public static int getSoilMeta(int inMeta) { return inMeta & 0xf; } public static int getItemMetaFromStone(Block inBlock, int inMeta) { if(inBlock == TFCBlocks.StoneIgIn) return inMeta; if(inBlock == TFCBlocks.StoneSed) return inMeta + 3; if(inBlock == TFCBlocks.StoneIgEx) return inMeta + 11; if(inBlock == TFCBlocks.StoneMM) return inMeta + 15; else return 0; } public static Block getTypeForGrassWithRain(int inMeta, float rain) { if(rain >= 500F) return getTypeForGrass(inMeta); else return getTypeForDryGrass(inMeta); } public static Block getTypeForGrassWithRainByBlock(Block block, float rain) { if(rain >= 500F) return getTypeForGrassFromSoil(block); else return getTypeForDryGrassFromSoil(block); } public static Block getTypeForGrass(int inMeta) { if(inMeta < 16) return TFCBlocks.Grass; else return TFCBlocks.Grass2; } public static Block getTypeForGrassFromDirt(Block block) { if(block == TFCBlocks.Dirt) return TFCBlocks.Grass; else return TFCBlocks.Grass2; } public static Block getTypeForDryGrass(int inMeta) { if(inMeta < 16) return TFCBlocks.DryGrass; else return TFCBlocks.DryGrass2; } public static Block getTypeForDryGrassFromSoil(Block block) { if(block == TFCBlocks.Grass) return TFCBlocks.DryGrass; if(block == TFCBlocks.Dirt) return TFCBlocks.DryGrass; else return TFCBlocks.DryGrass2; } public static Block getTypeForGrassFromSoil(Block block) { if(block == TFCBlocks.DryGrass) return TFCBlocks.Grass; if(block == TFCBlocks.DryGrass2) return TFCBlocks.Grass2; if(block == TFCBlocks.Dirt) return TFCBlocks.Grass; else return TFCBlocks.Grass2; } public static Block getTypeForClayGrass(int inMeta) { if(inMeta < 16) return TFCBlocks.ClayGrass; else return TFCBlocks.ClayGrass2; } public static Block getTypeForClayGrass(Block block) { if(isGroundType1(block)) return TFCBlocks.ClayGrass; else return TFCBlocks.ClayGrass2; } public static Block getTypeForDirt(int inMeta) { if(inMeta < 16) return TFCBlocks.Dirt; else return TFCBlocks.Dirt2; } public static Block getTypeForDirtFromGrass(Block block) { if(isDirt(block)) return block; if(block == TFCBlocks.Grass || block == TFCBlocks.DryGrass) return TFCBlocks.Dirt; else return TFCBlocks.Dirt2; } public static Block getTypeForClay(int inMeta) { if(inMeta < 16) return TFCBlocks.Clay; else return TFCBlocks.Clay2; } public static Block getTypeForClay(Block block) { if(isGroundType1(block)) return TFCBlocks.Clay; else return TFCBlocks.Clay2; } public static Block getTypeForSand(int inMeta) { if(inMeta < 16) return TFCBlocks.Sand; else return TFCBlocks.Sand2; } public static Block getTypeForGravel(int inMeta) { if(inMeta < 16) return TFCBlocks.Gravel; else return TFCBlocks.Gravel2; } public static int getRockLayerFromHeight(World world, int x, int y, int z) { ChunkData cd = getCDM(world).getData(x >> 4, z >> 4); if(cd != null) { int hm[] = cd.heightmap; int localX = x & 0xf; int localZ = z & 0xf; int localY = localX + localZ * 16; if(y <= TFCOptions.RockLayer3Height + hm[localY]) return 2; return y > TFCOptions.RockLayer2Height + hm[localY] ? 0 : 1; } else { return 0; } } public static boolean convertGrassToDirt(World world, int i, int j, int k) { Block block = world.func_147439_a(i, j, k); int meta = world.func_72805_g(i, j, k); if(isGrass(block)) { if(isGrassType1(block)) { world.func_147465_d(i, j, k, TFCBlocks.Dirt, meta, 2); return true; } if(isGrassType2(block)) { world.func_147465_d(i, j, k, TFCBlocks.Dirt2, meta, 2); return true; } } return false; } public static EnumFuelMaterial getFuelMaterial(ItemStack is) { if(is.func_77973_b() == Item.func_150898_a(TFCBlocks.Peat)) return EnumFuelMaterial.PEAT; if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 0) return EnumFuelMaterial.COAL; if(is.func_77973_b() == TFCItems.Coal && is.func_77960_j() == 1) return EnumFuelMaterial.CHARCOAL; if(is.func_77960_j() == 0) return EnumFuelMaterial.ASH; if(is.func_77960_j() == 1) return EnumFuelMaterial.ASPEN; if(is.func_77960_j() == 2) return EnumFuelMaterial.BIRCH; if(is.func_77960_j() == 3) return EnumFuelMaterial.CHESTNUT; if(is.func_77960_j() == 4) return EnumFuelMaterial.DOUGLASFIR; if(is.func_77960_j() == 5) return EnumFuelMaterial.HICKORY; if(is.func_77960_j() == 6) return EnumFuelMaterial.MAPLE; if(is.func_77960_j() == 7) return EnumFuelMaterial.OAK; if(is.func_77960_j() == 8) return EnumFuelMaterial.PINE; if(is.func_77960_j() == 9) return EnumFuelMaterial.REDWOOD; if(is.func_77960_j() == 10) return EnumFuelMaterial.SPRUCE; if(is.func_77960_j() == 11) return EnumFuelMaterial.SYCAMORE; if(is.func_77960_j() == 12) return EnumFuelMaterial.WHITECEDAR; if(is.func_77960_j() == 13) return EnumFuelMaterial.WHITEELM; if(is.func_77960_j() == 14) return EnumFuelMaterial.WILLOW; if(is.func_77960_j() == 15) return EnumFuelMaterial.KAPOK; if(is.func_77960_j() == 16) return EnumFuelMaterial.ACACIA; else return EnumFuelMaterial.ASPEN; } public static boolean showShiftInformation() { return FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && Keyboard.isKeyDown(42); } public static boolean showCtrlInformation() { return FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && Keyboard.isKeyDown(29); } public static FoodStatsTFC getPlayerFoodStats(EntityPlayer player) { FoodStatsTFC foodstats = new FoodStatsTFC(player); foodstats.readNBT(player.getEntityData()); return foodstats; } public static void setPlayerFoodStats(EntityPlayer player, FoodStatsTFC foodstats) { foodstats.writeNBT(player.getEntityData()); } public static BodyTempStats getBodyTempStats(EntityPlayer player) { BodyTempStats body = new BodyTempStats(); body.readNBT(player.getEntityData()); return body; } public static void setBodyTempStats(EntityPlayer player, BodyTempStats tempStats) { tempStats.writeNBT(player.getEntityData()); } public static SkillStats getSkillStats(EntityPlayer player) { SkillStats skills = new SkillStats(player); skills.readNBT(player.getEntityData()); return skills; } public static void setSkillStats(EntityPlayer player, SkillStats skills) { skills.writeNBT(player.getEntityData()); } public static boolean isTopFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getTopChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.TopExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.UP); } public static boolean isBottomFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getBottomChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.BottomExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.DOWN); } public static boolean isNorthFaceSolid(World world, int x, int y, int z) { Block bid = world.func_147439_a(x, y, z); if(bid.func_149721_r()) return true; if(bid == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getNorthChiselLevel(te.extraData) == 0; } if(bid == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.NorthExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.NORTH); } public static boolean isSouthFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getSouthChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.SouthExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.SOUTH); } public static boolean isEastFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); if(BlockSlab.getEastChiselLevel(te.extraData) != 0) return true; } else if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.EastExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.EAST); } public static boolean isWestFaceSolid(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z).func_149721_r()) return true; if(world.func_147439_a(x, y, z) == TFCBlocks.stoneSlabs) { TEPartial te = (TEPartial)world.func_147438_o(x, y, z); return BlockSlab.getWestChiselLevel(te.extraData) == 0; } if(world.func_147439_a(x, y, z) == TFCBlocks.MetalSheet) { TEMetalSheet te = (TEMetalSheet)world.func_147438_o(x, y, z); if(te.WestExists()) return true; } return world.func_147439_a(x, y, z).isSideSolid(world, x, y, z, ForgeDirection.WEST); } public static boolean isOreIron(ItemStack is) { return (is.func_77973_b() instanceof ItemOre) && ((ItemOre)is.func_77973_b()).GetMetalType(is) == Global.PIGIRON; } public static float getEntityMaxHealth(EntityLivingBase entity) { return (float)entity.func_110148_a(SharedMonsterAttributes.field_111267_a).func_111126_e(); } public static float getPercentGrown(IAnimal animal) { float birth = animal.getBirthDay(); float time = TFC_Time.getTotalDays(); float percent = (time - birth) / (float)animal.getNumberOfDaysToAdult(); return Math.min(percent, 1.0F); } public static void bindTexture(ResourceLocation texture) { Minecraft.func_71410_x().func_110434_K().func_110577_a(texture); } public static boolean isPlayerInDebugMode(EntityPlayer player) { return TFCOptions.enableDebugMode; } public static void addPlayerExhaustion(EntityPlayer player, float exhaustion) { FoodStatsTFC foodstats = getPlayerFoodStats(player); foodstats.addFoodExhaustion(exhaustion); foodstats.addWaterExhaustion(exhaustion); setPlayerFoodStats(player, foodstats); } public static float getEnvironmentalDecay(float temp) { if(temp > 0.0F) { float tempFactor = 1.0F - 15F / (15F + temp); return tempFactor * 2.0F; } else { return 0.0F; } } public static void handleItemTicking(IInventory iinv, World world, int x, int y, int z) { handleItemTicking(iinv, world, x, y, z, 1.0F); } public static void handleItemTicking(ItemStack iinv[], World world, int x, int y, int z) { handleItemTicking(iinv, world, x, y, z, 1.0F); } public static void handleItemTickingNoProtect(ItemStack iinv[], World world, int x, int y, int z) { handleItemTicking(iinv, world, x, y, z, -1F); } public static void handleItemTicking(IInventory iinv, World world, int x, int y, int z, float environmentalDecayFactor) { for(int i = 0; !world.field_72995_K && i < iinv.func_70302_i_(); i++) { ItemStack is = iinv.func_70301_a(i); if(is != null && iinv.func_70301_a(i).field_77994_a <= 0) iinv.func_70299_a(i, null); if(is == null) continue; if(is.field_77994_a == 0) { iinv.func_70299_a(i, null); continue; } if((is.func_77973_b() instanceof ItemTerra) && ((ItemTerra)is.func_77973_b()).onUpdate(is, world, x, y, z) || (is.func_77973_b() instanceof ItemTerraBlock) && ((ItemTerraBlock)is.func_77973_b()).onUpdate(is, world, x, y, z)) continue; is = tickDecay(is, world, x, y, z, environmentalDecayFactor, 1.0F); if(is != null) TFC_ItemHeat.HandleItemHeat(is); iinv.func_70299_a(i, is); } } public static byte getByteFromSmallFloat(float f) { MathHelper.func_76131_a(f, 0.5F, 1.5F); return (byte)(Float.floatToIntBits(f) >> 16 & 0xff); } public static float getSmallFloatFromByte(byte b) { return ByteBuffer.wrap(new byte[] { 63, b, 0, 0 }).getFloat(); } public static void handleItemTicking(IInventory iinv, World world, int x, int y, int z, float environmentalDecayFactor, float baseDecayMod) { for(int i = 0; !world.field_72995_K && i < iinv.func_70302_i_(); i++) { ItemStack is = iinv.func_70301_a(i); if(is != null && iinv.func_70301_a(i).field_77994_a <= 0) iinv.func_70299_a(i, null); if(is == null || (is.func_77973_b() instanceof ItemTerra) && ((ItemTerra)is.func_77973_b()).onUpdate(is, world, x, y, z) || (is.func_77973_b() instanceof ItemTerraBlock) && ((ItemTerraBlock)is.func_77973_b()).onUpdate(is, world, x, y, z)) continue; is = tickDecay(is, world, x, y, z, environmentalDecayFactor, baseDecayMod); if(is != null) TFC_ItemHeat.HandleItemHeat(is); iinv.func_70299_a(i, is); } } public static void handleItemTicking(ItemStack iinv[], World world, int x, int y, int z, float environmentalDecayFactor) { for(int i = 0; !world.field_72995_K && i < iinv.length; i++) { ItemStack is = iinv[i]; if(is != null && iinv[i].field_77994_a <= 0) iinv[i] = null; if(is == null || (is.func_77973_b() instanceof ItemTerra) && ((ItemTerra)is.func_77973_b()).onUpdate(is, world, x, y, z) || (is.func_77973_b() instanceof ItemTerraBlock) && ((ItemTerraBlock)is.func_77973_b()).onUpdate(is, world, x, y, z)) continue; is = tickDecay(is, world, x, y, z, environmentalDecayFactor, 1.0F); if(is != null) TFC_ItemHeat.HandleItemHeat(is); iinv[i] = is; } } private static ItemStack tickDecay(ItemStack is, World world, int x, int y, int z, float environmentalDecayFactor, float baseDecayMod) { NBTTagCompound nbt = is.func_77978_p(); if(nbt == null || !nbt.func_74764_b("foodWeight") || !nbt.func_74764_b("foodDecay")) return is; boolean def = true; if(environmentalDecayFactor < 0.0F) { environmentalDecayFactor *= -1F; def = false; } if((long)nbt.func_74762_e("decayTimer") < TFC_Time.getTotalHours()) { int timeDiff = (int)(TFC_Time.getTotalHours() - (long)nbt.func_74762_e("decayTimer")); float protMult = 1.0F; if(TFCOptions.useDecayProtection & def) if(timeDiff > TFCOptions.decayProtectionDays * 24) nbt.func_74768_a("decayTimer", (int)TFC_Time.getTotalHours() - 24); else if(timeDiff > 24) protMult = 1 - timeDiff / (TFCOptions.decayProtectionDays * 24); float decay = nbt.func_74760_g("foodDecay"); float thisDecayRate = 1.0F; if(is.func_77973_b() instanceof IFood) thisDecayRate = ((IFood)is.func_77973_b()).getDecayRate(is); if(nbt.func_74764_b("decayRate")) thisDecayRate = nbt.func_74760_g("decayRate"); float temp = getCachedTemp(world, x, y, z, nbt.func_74762_e("decayTimer")); float environmentalDecay = getEnvironmentalDecay(temp) * environmentalDecayFactor; if(decay < 0.0F) { float d = 1.0F * (thisDecayRate * baseDecayMod * environmentalDecay); if(decay + d < 0.0F) decay += d; else decay = 0.0F; } else if(decay == 0.0F) { decay = nbt.func_74760_g("foodWeight") * (world.field_73012_v.nextFloat() * 0.005F) * TFCOptions.decayMultiplier; } else { double fdr = Global.FOOD_DECAY_RATE - 1.0D; fdr *= thisDecayRate * baseDecayMod * environmentalDecay * protMult * TFCOptions.decayMultiplier; decay = (float)((double)decay * (1.0D + fdr)); } nbt.func_74768_a("decayTimer", nbt.func_74762_e("decayTimer") + 1); nbt.func_74776_a("foodDecay", decay); if(timeDiff > 200) { nbt.func_74768_a("decayTimer", nbt.func_74762_e("decayTimer") + 10); nbt.func_74776_a("foodDecay", decay + 5F); } } if(nbt.func_74760_g("foodDecay") / nbt.func_74760_g("foodWeight") > 0.9F) { if(is.func_77973_b() instanceof IFood) is = ((IFood)is.func_77973_b()).onDecayed(is, world, x, y, z); else is.field_77994_a = 0; } else { is.func_77982_d(nbt); } return is; } public static float getCachedTemp(World world, int x, int y, int z, int th) { float cacheTemp = TFC_Climate.getCacheManager(world).getTemp(x, z, th); if(cacheTemp != 1.401298E-45F) { return cacheTemp; } else { float temp = TFC_Climate.getHeightAdjustedTempSpecificDay(world, TFC_Time.getDayFromTotalHours(th), TFC_Time.getHourOfDayFromTotalHours(th), x, y, z); addCachedTemp(world, x, z, th, temp); return temp; } } public static void addCachedTemp(World world, int x, int z, int th, float temp) { TFC_Climate.getCacheManager(world).addTemp(x, z, th, temp); } public static void animalDropMeat(Entity e, Item i, float foodWeight) { ItemStack is = ItemFoodTFC.createTag(new ItemStack(i, 1), foodWeight); Random r = new Random(e.func_110124_au().getLeastSignificantBits() + e.func_110124_au().getMostSignificantBits()); Food.adjustFlavor(is, r); e.capturedDrops.add(new EntityItem(e.field_70170_p, e.field_70165_t, e.field_70163_u, e.field_70161_v, is)); } public static Vec3 getEntityPos(Entity e) { return Vec3.func_72443_a(e.field_70165_t, e.field_70163_u, e.field_70161_v); } public static void giveItemToPlayer(ItemStack is, EntityPlayer player) { if(player.field_70170_p.field_72995_K) { return; } else { EntityItem ei = player.func_70099_a(is, 1.0F); ei.field_145804_b = 0; return; } } public static boolean isFence(Block b) { return b == TFCBlocks.Fence || b == TFCBlocks.Fence2; } public static boolean isVertSupport(Block b) { return b == TFCBlocks.WoodSupportV || b == TFCBlocks.WoodSupportV2; } public static boolean isHorizSupport(Block b) { return b == TFCBlocks.WoodSupportH || b == TFCBlocks.WoodSupportH2; } public static boolean isOceanicBiome(int id) { return id == TFCBiome.ocean.field_76756_M || id == TFCBiome.DeepOcean.field_76756_M; } public static boolean isMountainBiome(int id) { return id == TFCBiome.Mountains.field_76756_M || id == TFCBiome.MountainsEdge.field_76756_M; } public static boolean isBeachBiome(int id) { return id == TFCBiome.beach.field_76756_M || id == TFCBiome.gravelbeach.field_76756_M; } public static boolean isValidCharcoalPitCover(Block block) { if(Blocks.field_150480_ab.getFlammability(block) > 0 && block != TFCBlocks.LogPile) return false; else return block == TFCBlocks.LogPile || isCobbleStone(block) || isBrickStone(block) || isSmoothStone(block) || isGround(block) || block == Blocks.field_150359_w || block == Blocks.field_150399_cn || block == TFCBlocks.MetalTrapDoor || block == Blocks.field_150454_av || block.func_149662_c(); } public static void writeInventoryToNBT(NBTTagCompound nbt, ItemStack storage[]) { writeInventoryToNBT(nbt, storage, "Items"); } public static void writeInventoryToNBT(NBTTagCompound nbt, ItemStack storage[], String name) { NBTTagList nbttaglist = new NBTTagList(); for(int i = 0; i < storage.length; i++) if(storage[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.func_74774_a("Slot", (byte)i); storage[i].func_77955_b(nbttagcompound1); nbttaglist.func_74742_a(nbttagcompound1); } nbt.func_74782_a(name, nbttaglist); } public static void readInventoryFromNBT(NBTTagCompound nbt, ItemStack storage[]) { readInventoryFromNBT(nbt, storage, "Items"); } public static void readInventoryFromNBT(NBTTagCompound nbt, ItemStack storage[], String name) { NBTTagList nbttaglist = nbt.func_150295_c(name, 10); for(int i = 0; i < nbttaglist.func_74745_c(); i++) { NBTTagCompound nbttagcompound1 = nbttaglist.func_150305_b(i); byte byte0 = nbttagcompound1.func_74771_c("Slot"); if(byte0 >= 0 && byte0 < storage.length) storage[byte0] = ItemStack.func_77949_a(nbttagcompound1); } } public static ItemStack getItemInInventory(Item item, IInventory iinv) { for(int i = 0; i < iinv.func_70302_i_(); i++) { iinv.func_70301_a(i); if(iinv.func_70301_a(i) != null && iinv.func_70301_a(i).func_77973_b() == item) return iinv.func_70301_a(i); } return null; } public static void DestroyBlock(World world, int x, int y, int z) { if(world.func_147439_a(x, y, z) != Blocks.field_150350_a) { world.func_147439_a(x, y, z).func_149697_b(world, x, y, z, world.func_72805_g(x, y, z), 0); world.func_147468_f(x, y, z); } } public static boolean areItemsEqual(ItemStack is1, ItemStack is2) { Item i1 = null; int d1 = 0; Item i2 = null; int d2 = 0; if(is1 != null) { i1 = is1.func_77973_b(); d1 = is1.func_77960_j(); } if(is2 != null) { i2 = is2.func_77973_b(); d2 = is2.func_77960_j(); } return i1 == i2 && d1 == d2; } public static boolean setBlockWithDrops(World world, int x, int y, int z, Block b, int meta) { Block block = world.func_147439_a(x, y, z); if(block.func_149688_o() != Material.field_151579_a) { int l = world.func_72805_g(x, y, z); world.func_72926_e(2001, x, y, z, Block.func_149682_b(block) + (l << 12)); block.func_149697_b(world, x, y, z, l, 0); } return world.func_147465_d(x, y, z, b, meta, 3); } public static boolean setBlockToAirWithDrops(World world, int x, int y, int z) { return world.func_147480_a(x, y, z, true); } public static boolean isWaterBiome(BiomeGenBase b) { return isBeachBiome(b.field_76756_M) || isOceanicBiome(b.field_76756_M) || b == TFCBiome.lake || b == TFCBiome.river; } public static String translate(String s) { return StatCollector.func_74838_a(s); } public static void sendInfoMessage(EntityPlayer player, IChatComponent text) { text.func_150256_b().func_150238_a(EnumChatFormatting.GRAY).func_150217_b(Boolean.valueOf(true)); player.func_146105_b(text); } public static long getSuperSeed(World w) { return w.func_72905_C() + w.func_72912_H().func_76066_a().func_74763_f("superseed"); } private static HashMap cdmMap = new HashMap(); public static boolean PreventEntityDataUpdate = false; }
비교하기