Mostly finished the biome finder, just rendering stuff now
This commit is contained in:
parent
24b2ee3335
commit
247b77c512
|
@ -9,16 +9,17 @@ import net.minecraft.client.particle.EntityBreakingFX;
|
||||||
import net.minecraft.client.particle.EntityFX;
|
import net.minecraft.client.particle.EntityFX;
|
||||||
import net.minecraft.client.renderer.entity.RenderSnowball;
|
import net.minecraft.client.renderer.entity.RenderSnowball;
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraftforge.client.MinecraftForgeClient;
|
||||||
import biomesoplenty.api.BOPItemHelper;
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
import biomesoplenty.client.particles.EntityDandelionFX;
|
import biomesoplenty.client.particles.EntityDandelionFX;
|
||||||
import biomesoplenty.client.particles.EntityMagicTreeFX;
|
import biomesoplenty.client.particles.EntityMagicTreeFX;
|
||||||
import biomesoplenty.client.particles.EntityPixieTrailFX;
|
import biomesoplenty.client.particles.EntityPixieTrailFX;
|
||||||
import biomesoplenty.client.particles.EntitySteamFX;
|
import biomesoplenty.client.particles.EntitySteamFX;
|
||||||
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import biomesoplenty.client.render.blocks.BambooRenderer;
|
import biomesoplenty.client.render.blocks.BambooRenderer;
|
||||||
import biomesoplenty.client.render.blocks.FoliageRenderer;
|
import biomesoplenty.client.render.blocks.FoliageRenderer;
|
||||||
import biomesoplenty.client.render.blocks.GraveRenderer;
|
import biomesoplenty.client.render.blocks.GraveRenderer;
|
||||||
import biomesoplenty.client.render.blocks.PlantsRenderer;
|
import biomesoplenty.client.render.blocks.PlantsRenderer;
|
||||||
import biomesoplenty.client.render.blocks.RenderUtils;
|
|
||||||
import biomesoplenty.client.render.blocks.SmallBlockRenderer;
|
import biomesoplenty.client.render.blocks.SmallBlockRenderer;
|
||||||
import biomesoplenty.client.render.entities.RenderBird;
|
import biomesoplenty.client.render.entities.RenderBird;
|
||||||
import biomesoplenty.client.render.entities.RenderGlob;
|
import biomesoplenty.client.render.entities.RenderGlob;
|
||||||
|
@ -28,6 +29,7 @@ import biomesoplenty.client.render.entities.RenderPixie;
|
||||||
import biomesoplenty.client.render.entities.RenderRosester;
|
import biomesoplenty.client.render.entities.RenderRosester;
|
||||||
import biomesoplenty.client.render.entities.RenderWasp;
|
import biomesoplenty.client.render.entities.RenderWasp;
|
||||||
import biomesoplenty.client.render.entities.projectiles.RenderDart;
|
import biomesoplenty.client.render.entities.projectiles.RenderDart;
|
||||||
|
import biomesoplenty.client.render.items.BiomeFinderRenderer;
|
||||||
import biomesoplenty.common.configuration.BOPConfigurationIDs;
|
import biomesoplenty.common.configuration.BOPConfigurationIDs;
|
||||||
import biomesoplenty.common.entities.EntityBird;
|
import biomesoplenty.common.entities.EntityBird;
|
||||||
import biomesoplenty.common.entities.EntityGlob;
|
import biomesoplenty.common.entities.EntityGlob;
|
||||||
|
@ -91,6 +93,8 @@ public class ClientProxy extends CommonProxy
|
||||||
{
|
{
|
||||||
RenderingRegistry.registerEntityRenderingHandler(EntityPixie.class, new RenderPixie());
|
RenderingRegistry.registerEntityRenderingHandler(EntityPixie.class, new RenderPixie());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MinecraftForgeClient.registerItemRenderer(BOPItemHelper.get("biomeFinder"), new BiomeFinderRenderer());
|
||||||
|
|
||||||
RenderingRegistry.registerBlockHandler(new FoliageRenderer());
|
RenderingRegistry.registerBlockHandler(new FoliageRenderer());
|
||||||
RenderingRegistry.registerBlockHandler(new PlantsRenderer());
|
RenderingRegistry.registerBlockHandler(new PlantsRenderer());
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
package biomesoplenty.client.render;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
|
import net.minecraft.client.renderer.texture.TextureMap;
|
||||||
|
import net.minecraft.util.IIcon;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
public class RenderUtils
|
||||||
|
{
|
||||||
|
public static int foliageModel = -1;
|
||||||
|
public static int plantsModel = -1;
|
||||||
|
public static int bonesModel = -1;
|
||||||
|
public static int graveModel = -1;
|
||||||
|
public static int bambooModel = -1;
|
||||||
|
|
||||||
|
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta)
|
||||||
|
{
|
||||||
|
Tessellator tessellator = Tessellator.instance;
|
||||||
|
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(0.0F, -1F, 0.0F);
|
||||||
|
//TODO: renderFaceYNeg getIcon()
|
||||||
|
renderblocks.func_147768_a(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(0, meta));
|
||||||
|
tessellator.draw();
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(0.0F, 1.0F, 0.0F);
|
||||||
|
//TODO: renderFaceYPos getIcon()
|
||||||
|
renderblocks.func_147806_b(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(1, meta));
|
||||||
|
tessellator.draw();
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(0.0F, 0.0F, -1F);
|
||||||
|
//TODO: renderFaceZNeg getIcon()
|
||||||
|
renderblocks.func_147761_c(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(2, meta));
|
||||||
|
tessellator.draw();
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(0.0F, 0.0F, 1.0F);
|
||||||
|
//TODO: renderFaceZPos getIcon()
|
||||||
|
renderblocks.func_147734_d(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(3, meta));
|
||||||
|
tessellator.draw();
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(-1F, 0.0F, 0.0F);
|
||||||
|
//TODO: renderFaceXNeg getIcon()
|
||||||
|
renderblocks.func_147798_e(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(4, meta));
|
||||||
|
tessellator.draw();
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(1.0F, 0.0F, 0.0F);
|
||||||
|
//TODO: renderFaceXPos getIcon()
|
||||||
|
renderblocks.func_147764_f(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(5, meta));
|
||||||
|
tessellator.draw();
|
||||||
|
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void renderIcon(IIcon icon, double size, double z, float nx, float ny, float nz)
|
||||||
|
{
|
||||||
|
renderIcon(icon, 0.0D, 0.0D, size, size, z, nx, ny, nz);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void renderIcon(IIcon icon, double xStart, double yStart, double xEnd, double yEnd, double z, float nx, float ny, float nz)
|
||||||
|
{
|
||||||
|
if (icon == null) icon = getMissingIcon(TextureMap.locationItemsTexture);
|
||||||
|
|
||||||
|
Tessellator tessellator = Tessellator.instance;
|
||||||
|
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(nx, ny, nz);
|
||||||
|
|
||||||
|
if (nz > 0.0F)
|
||||||
|
{
|
||||||
|
tessellator.addVertexWithUV(xStart, yStart, z, icon.getMinU(), icon.getMinV());
|
||||||
|
tessellator.addVertexWithUV(xEnd, yStart, z, icon.getMaxU(), icon.getMinV());
|
||||||
|
tessellator.addVertexWithUV(xEnd, yEnd, z, icon.getMaxU(), icon.getMaxV());
|
||||||
|
tessellator.addVertexWithUV(xStart, yEnd, z, icon.getMinU(), icon.getMaxV());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tessellator.addVertexWithUV(xStart, yEnd, z, icon.getMinU(), icon.getMaxV());
|
||||||
|
tessellator.addVertexWithUV(xEnd, yEnd, z, icon.getMaxU(), icon.getMaxV());
|
||||||
|
tessellator.addVertexWithUV(xEnd, yStart, z, icon.getMaxU(), icon.getMinV());
|
||||||
|
tessellator.addVertexWithUV(xStart, yStart, z, icon.getMinU(), icon.getMinV());
|
||||||
|
}
|
||||||
|
|
||||||
|
tessellator.draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void renderIcon(int indexX, int indexY, float minU, float maxU, float minV, float maxV, double z)
|
||||||
|
{
|
||||||
|
Tessellator tessellator = Tessellator.instance;
|
||||||
|
|
||||||
|
tessellator.startDrawingQuads();
|
||||||
|
tessellator.setNormal(0.0F, 0.0F, -1.0F);
|
||||||
|
|
||||||
|
//0.5000098 0.5156152 0.71876955 0.74998045
|
||||||
|
|
||||||
|
tessellator.addVertexWithUV(0D, 16D, z, minU, maxV);
|
||||||
|
tessellator.addVertexWithUV(16D, 16D, z, maxU, maxV);
|
||||||
|
tessellator.addVertexWithUV(16D, 0D, z, maxU, minV);
|
||||||
|
tessellator.addVertexWithUV(0D, 0D, z, minU, minV);
|
||||||
|
|
||||||
|
tessellator.draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IIcon getMissingIcon(ResourceLocation textureSheet)
|
||||||
|
{
|
||||||
|
return ((TextureMap)Minecraft.getMinecraft().getTextureManager().getTexture(textureSheet)).getAtlasSprite("missingno");
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package biomesoplenty.client.render.blocks;
|
package biomesoplenty.client.render.blocks;
|
||||||
|
|
||||||
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.EntityRenderer;
|
import net.minecraft.client.renderer.EntityRenderer;
|
||||||
import net.minecraft.client.renderer.RenderBlocks;
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import biomesoplenty.common.blocks.BlockBOPFoliage;
|
import biomesoplenty.common.blocks.BlockBOPFoliage;
|
||||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package biomesoplenty.client.render.blocks;
|
package biomesoplenty.client.render.blocks;
|
||||||
|
|
||||||
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.RenderBlocks;
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
|
|
@ -7,6 +7,7 @@ import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import biomesoplenty.common.blocks.BlockBOPPlant;
|
import biomesoplenty.common.blocks.BlockBOPPlant;
|
||||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||||
|
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
package biomesoplenty.client.render.blocks;
|
|
||||||
|
|
||||||
import javax.swing.Icon;
|
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.renderer.EntityRenderer;
|
|
||||||
import net.minecraft.client.renderer.RenderBlocks;
|
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
|
||||||
import net.minecraft.init.Blocks;
|
|
||||||
import net.minecraft.util.IIcon;
|
|
||||||
import net.minecraft.world.IBlockAccess;
|
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
|
||||||
|
|
||||||
public class RenderUtils
|
|
||||||
{
|
|
||||||
public static int foliageModel = -1;
|
|
||||||
public static int plantsModel = -1;
|
|
||||||
public static int bonesModel = -1;
|
|
||||||
public static int graveModel = -1;
|
|
||||||
public static int bambooModel = -1;
|
|
||||||
|
|
||||||
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta)
|
|
||||||
{
|
|
||||||
Tessellator tessellator = Tessellator.instance;
|
|
||||||
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
|
||||||
tessellator.startDrawingQuads();
|
|
||||||
tessellator.setNormal(0.0F, -1F, 0.0F);
|
|
||||||
//TODO: renderFaceYNeg getIcon()
|
|
||||||
renderblocks.func_147768_a(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(0, meta));
|
|
||||||
tessellator.draw();
|
|
||||||
tessellator.startDrawingQuads();
|
|
||||||
tessellator.setNormal(0.0F, 1.0F, 0.0F);
|
|
||||||
//TODO: renderFaceYPos getIcon()
|
|
||||||
renderblocks.func_147806_b(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(1, meta));
|
|
||||||
tessellator.draw();
|
|
||||||
tessellator.startDrawingQuads();
|
|
||||||
tessellator.setNormal(0.0F, 0.0F, -1F);
|
|
||||||
//TODO: renderFaceZNeg getIcon()
|
|
||||||
renderblocks.func_147761_c(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(2, meta));
|
|
||||||
tessellator.draw();
|
|
||||||
tessellator.startDrawingQuads();
|
|
||||||
tessellator.setNormal(0.0F, 0.0F, 1.0F);
|
|
||||||
//TODO: renderFaceZPos getIcon()
|
|
||||||
renderblocks.func_147734_d(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(3, meta));
|
|
||||||
tessellator.draw();
|
|
||||||
tessellator.startDrawingQuads();
|
|
||||||
tessellator.setNormal(-1F, 0.0F, 0.0F);
|
|
||||||
//TODO: renderFaceXNeg getIcon()
|
|
||||||
renderblocks.func_147798_e(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(4, meta));
|
|
||||||
tessellator.draw();
|
|
||||||
tessellator.startDrawingQuads();
|
|
||||||
tessellator.setNormal(1.0F, 0.0F, 0.0F);
|
|
||||||
//TODO: renderFaceXPos getIcon()
|
|
||||||
renderblocks.func_147764_f(block, 0.0D, 0.0D, 0.0D, block.func_149691_a(5, meta));
|
|
||||||
tessellator.draw();
|
|
||||||
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +1,6 @@
|
||||||
package biomesoplenty.client.render.blocks;
|
package biomesoplenty.client.render.blocks;
|
||||||
|
|
||||||
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.RenderBlocks;
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
|
|
|
@ -0,0 +1,169 @@
|
||||||
|
package biomesoplenty.client.render.items;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.ItemRenderer;
|
||||||
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
|
import net.minecraft.client.renderer.texture.TextureManager;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.IIcon;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.client.ForgeHooksClient;
|
||||||
|
import net.minecraftforge.client.IItemRenderer;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
import org.lwjgl.opengl.GL12;
|
||||||
|
|
||||||
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
|
import biomesoplenty.common.items.ItemBiomeFinder;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
public class BiomeFinderRenderer implements IItemRenderer
|
||||||
|
{
|
||||||
|
private int tickCount = 0;
|
||||||
|
private int loopIndex = 0;
|
||||||
|
|
||||||
|
private static ResourceLocation radarLocation = new ResourceLocation("biomesoplenty:textures/items/biomeradarstatic.png");
|
||||||
|
|
||||||
|
public double currentAngle;
|
||||||
|
public double angleDelta;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public boolean handleRenderType(ItemStack item, ItemRenderType type)
|
||||||
|
{
|
||||||
|
return (type.equals(IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON)) || (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) || (type.equals(IItemRenderer.ItemRenderType.EQUIPPED)) || (type.equals(IItemRenderer.ItemRenderType.ENTITY));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||||
|
{
|
||||||
|
return type == IItemRenderer.ItemRenderType.ENTITY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void renderItem(ItemRenderType type, ItemStack item, Object... data)
|
||||||
|
{
|
||||||
|
Tessellator tessellator = Tessellator.instance;
|
||||||
|
|
||||||
|
IIcon radarIcon = ((ItemBiomeFinder)BOPItemHelper.get("biomeFinder")).radarIcon;
|
||||||
|
|
||||||
|
int index = getIconIndexFacingBiome(item);
|
||||||
|
|
||||||
|
GL11.glEnable(3042);
|
||||||
|
|
||||||
|
if (type.equals(IItemRenderer.ItemRenderType.ENTITY))
|
||||||
|
{
|
||||||
|
GL11.glTranslated(-0.5D, -0.1D, 0.0D);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager();
|
||||||
|
texturemanager.bindTexture(texturemanager.getResourceLocation(item.getItemSpriteNumber()));
|
||||||
|
|
||||||
|
float f = (float)(0.01D / radarIcon.getIconWidth());
|
||||||
|
// (originX )
|
||||||
|
float minU = ((index * 15F) / radarIcon.getIconWidth() + f) / 2;
|
||||||
|
float maxU = (((index * 15F) + 16F) / radarIcon.getIconWidth() - f) / 2;
|
||||||
|
float minV = ((0 * 15F) / radarIcon.getIconHeight() + f);
|
||||||
|
float maxV = (((0 * 15F) + 16F) / radarIcon.getIconHeight() - f);
|
||||||
|
|
||||||
|
GL11.glBlendFunc(770, 771);
|
||||||
|
|
||||||
|
if (type.equals(IItemRenderer.ItemRenderType.INVENTORY))
|
||||||
|
{
|
||||||
|
RenderUtils.renderIcon(index, 0, minU, maxU, minV, maxV, 0.001D);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ItemRenderer.renderItemIn2D(tessellator, maxU, minV, minU, maxV, radarIcon.getIconWidth(), radarIcon.getIconHeight(), 0.0625F);
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glDisable(3042);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getIconIndexFacingBiome(ItemStack itemStack)
|
||||||
|
{
|
||||||
|
Minecraft minecraft = Minecraft.getMinecraft();
|
||||||
|
World world = minecraft.theWorld;
|
||||||
|
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||||
|
|
||||||
|
NBTTagCompound stackCompound = itemStack != null ? itemStack.getTagCompound() : null;
|
||||||
|
boolean foundBiome = stackCompound != null ? stackCompound.getBoolean("foundBiome") : false;
|
||||||
|
NBTTagCompound biomePositionCompound = stackCompound != null ? stackCompound.getCompoundTag("biomePosition") : null;
|
||||||
|
|
||||||
|
if (foundBiome)
|
||||||
|
{
|
||||||
|
double playerPosX = player.posX;
|
||||||
|
double playerPosZ = player.posZ;
|
||||||
|
int biomePosX = biomePositionCompound.getInteger("x");
|
||||||
|
int biomePosZ = biomePositionCompound.getInteger("z");
|
||||||
|
|
||||||
|
double d3 = 0.0D;
|
||||||
|
|
||||||
|
if (world != null)
|
||||||
|
{
|
||||||
|
double d4 = (double)biomePosX - playerPosX;
|
||||||
|
double d5 = (double)biomePosZ - playerPosZ;
|
||||||
|
player.rotationYaw %= 360.0D;
|
||||||
|
d3 = -((player.rotationYaw - 90.0D) * Math.PI / 180.0D - Math.atan2(d5, d4));
|
||||||
|
}
|
||||||
|
|
||||||
|
double d6;
|
||||||
|
|
||||||
|
for (d6 = d3 - this.currentAngle; d6 < -Math.PI; d6 += (Math.PI * 2D))
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (d6 >= Math.PI)
|
||||||
|
{
|
||||||
|
d6 -= (Math.PI * 2D);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (d6 < -1.0D)
|
||||||
|
{
|
||||||
|
d6 = -1.0D;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (d6 > 1.0D)
|
||||||
|
{
|
||||||
|
d6 = 1.0D;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.angleDelta += d6 * 0.1D;
|
||||||
|
this.angleDelta *= 0.8D;
|
||||||
|
this.currentAngle += this.angleDelta;
|
||||||
|
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = (int)((this.currentAngle / (Math.PI * 2D) + 1.0D) * (double)32) % 32; i < 0; i = (i + 32) % 32)
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (tickCount++ > 3)
|
||||||
|
{
|
||||||
|
if (loopIndex++ < 31)
|
||||||
|
{
|
||||||
|
tickCount = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
loopIndex = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return loopIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,7 +22,7 @@ import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
import biomesoplenty.client.render.blocks.RenderUtils;
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import biomesoplenty.common.blocks.templates.BOPBlockWorldDecor;
|
import biomesoplenty.common.blocks.templates.BOPBlockWorldDecor;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
|
@ -32,7 +32,7 @@ import net.minecraftforge.common.util.FakePlayer;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
import biomesoplenty.api.BOPItemHelper;
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
import biomesoplenty.client.render.blocks.RenderUtils;
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ import net.minecraftforge.common.IShearable;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
import biomesoplenty.api.BOPBlockHelper;
|
import biomesoplenty.api.BOPBlockHelper;
|
||||||
import biomesoplenty.api.BOPItemHelper;
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
import biomesoplenty.client.render.blocks.RenderUtils;
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
import biomesoplenty.common.blocks.templates.BOPBlockWorldDecor;
|
import biomesoplenty.common.blocks.templates.BOPBlockWorldDecor;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
|
@ -13,7 +13,7 @@ import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
import biomesoplenty.client.render.blocks.RenderUtils;
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
|
|
||||||
public class BlockBamboo extends Block
|
public class BlockBamboo extends Block
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@ import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
import biomesoplenty.client.render.blocks.RenderUtils;
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
|
|
||||||
public class BlockBones extends Block
|
public class BlockBones extends Block
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,7 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
import biomesoplenty.client.render.blocks.RenderUtils;
|
import biomesoplenty.client.render.RenderUtils;
|
||||||
|
|
||||||
public class BlockGrave extends Block
|
public class BlockGrave extends Block
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package biomesoplenty.common.core;
|
package biomesoplenty.common.core;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -19,6 +17,7 @@ import biomesoplenty.api.BOPBlockHelper;
|
||||||
import biomesoplenty.api.BOPItemHelper;
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
import biomesoplenty.common.configuration.BOPConfigurationMisc;
|
import biomesoplenty.common.configuration.BOPConfigurationMisc;
|
||||||
import biomesoplenty.common.handlers.FurnaceFuelHandler;
|
import biomesoplenty.common.handlers.FurnaceFuelHandler;
|
||||||
|
import biomesoplenty.common.recipes.BiomeEssenceRecipe;
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
|
|
||||||
public class BOPCrafting
|
public class BOPCrafting
|
||||||
|
@ -265,6 +264,7 @@ public class BOPCrafting
|
||||||
|
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(BOPItemHelper.get("biomeFinder"), 1, 0), new Object[] {" E ", "ERE", " E ", 'E', new ItemStack(Items.emerald, 1, 0), 'R', new ItemStack(Items.redstone, 1, 0)});
|
GameRegistry.addRecipe(new ItemStack(BOPItemHelper.get("biomeFinder"), 1, 0), new Object[] {" E ", "ERE", " E ", 'E', new ItemStack(Items.emerald, 1, 0), 'R', new ItemStack(Items.redstone, 1, 0)});
|
||||||
|
GameRegistry.addRecipe(new BiomeEssenceRecipe());
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(BOPBlockHelper.get("planks"), 1, 10), new Object[] {"##", "##", '#', BOPBlockHelper.get("bamboo")});
|
GameRegistry.addRecipe(new ItemStack(BOPBlockHelper.get("planks"), 1, 10), new Object[] {"##", "##", '#', BOPBlockHelper.get("bamboo")});
|
||||||
GameRegistry.addRecipe(new ItemStack(BOPItemHelper.get("jarEmpty"), 3, 0), new Object[] {"# #", "# #", "###", '#', Blocks.glass});
|
GameRegistry.addRecipe(new ItemStack(BOPItemHelper.get("jarEmpty"), 3, 0), new Object[] {"# #", "# #", "###", '#', Blocks.glass});
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class BOPVanillaCompat
|
||||||
ItemStack biomeEssence = new ItemStack(BOPItemHelper.get("biomeEssence"));
|
ItemStack biomeEssence = new ItemStack(BOPItemHelper.get("biomeEssence"));
|
||||||
|
|
||||||
biomeEssence.setTagCompound(new NBTTagCompound());
|
biomeEssence.setTagCompound(new NBTTagCompound());
|
||||||
biomeEssence.getTagCompound().setString("biome", biome.biomeName);
|
biomeEssence.getTagCompound().setInteger("biomeID", biome.biomeID);
|
||||||
|
|
||||||
desertTemple.addItem(new WeightedRandomChestContent(biomeEssence, 1, 1, 3));
|
desertTemple.addItem(new WeightedRandomChestContent(biomeEssence, 1, 1, 3));
|
||||||
dungeon.addItem(new WeightedRandomChestContent(biomeEssence, 1, 1, 3));
|
dungeon.addItem(new WeightedRandomChestContent(biomeEssence, 1, 1, 3));
|
||||||
|
|
|
@ -2,8 +2,10 @@ package biomesoplenty.common.eventhandler.network;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
import biomesoplenty.common.network.packet.PacketBiomePosition;
|
import biomesoplenty.common.network.packet.PacketBiomePosition;
|
||||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||||
import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
|
import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
|
||||||
|
@ -14,14 +16,5 @@ public class ConnectionEventHandler
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onPlayerLoggedIn(PlayerLoggedInEvent event)
|
public void onPlayerLoggedIn(PlayerLoggedInEvent event)
|
||||||
{
|
{
|
||||||
EntityPlayer player = (EntityPlayer)event.player;
|
|
||||||
|
|
||||||
NBTTagCompound biomeToFindCompound = player.getEntityData().getCompoundTag("biomePosition");
|
|
||||||
boolean foundBiome = player.getEntityData().getBoolean("foundBiome");
|
|
||||||
|
|
||||||
if (biomeToFindCompound != null)
|
|
||||||
{
|
|
||||||
BiomesOPlenty.packetPipeline.sendTo(new PacketBiomePosition(biomeToFindCompound.getInteger("x"), biomeToFindCompound.getInteger("z"), foundBiome), (EntityPlayerMP)player);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
import net.minecraft.world.biome.BiomeGenBase;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
|
|
||||||
public class ItemBOPBiomeEssence extends Item
|
public class ItemBOPBiomeEssence extends Item
|
||||||
|
@ -19,6 +20,18 @@ public class ItemBOPBiomeEssence extends Item
|
||||||
this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty);
|
this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasContainerItem(ItemStack itemStack)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getContainerItem(ItemStack itemStack)
|
||||||
|
{
|
||||||
|
return itemStack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerIcons(IIconRegister iconRegister)
|
public void registerIcons(IIconRegister iconRegister)
|
||||||
{
|
{
|
||||||
|
@ -30,10 +43,18 @@ public class ItemBOPBiomeEssence extends Item
|
||||||
{
|
{
|
||||||
if (itemStack.hasTagCompound())
|
if (itemStack.hasTagCompound())
|
||||||
{
|
{
|
||||||
if (itemStack.getTagCompound().hasKey("biome")) infoList.add(itemStack.getTagCompound().getString("biome"));
|
if (itemStack.getTagCompound().hasKey("biomeID"))
|
||||||
|
{
|
||||||
|
BiomeGenBase biome = BiomeGenBase.func_150565_n()[itemStack.getTagCompound().getInteger("biomeID")];
|
||||||
|
|
||||||
|
if (biome != null)
|
||||||
|
{
|
||||||
|
infoList.add(biome.biomeName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasEffect(ItemStack itemStack, int pass)
|
public boolean hasEffect(ItemStack itemStack, int pass)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,27 +1,28 @@
|
||||||
package biomesoplenty.common.items;
|
package biomesoplenty.common.items;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
|
||||||
import net.minecraft.client.renderer.texture.TextureMap;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
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.util.EnumChatFormatting;
|
||||||
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.ChunkPosition;
|
import net.minecraft.world.ChunkPosition;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.biome.BiomeGenBase;
|
import net.minecraft.world.biome.BiomeGenBase;
|
||||||
import net.minecraft.world.biome.WorldChunkManager;
|
import net.minecraft.world.biome.WorldChunkManager;
|
||||||
import biomesoplenty.BiomesOPlenty;
|
import biomesoplenty.BiomesOPlenty;
|
||||||
import biomesoplenty.api.BOPBiomeHelper;
|
|
||||||
import biomesoplenty.client.textures.TextureBiomeFinder;
|
|
||||||
import biomesoplenty.common.network.packet.PacketBiomePosition;
|
import biomesoplenty.common.network.packet.PacketBiomePosition;
|
||||||
|
|
||||||
public class ItemBiomeFinder extends Item
|
public class ItemBiomeFinder extends Item
|
||||||
{
|
{
|
||||||
|
public IIcon radarIcon;
|
||||||
|
|
||||||
public ItemBiomeFinder()
|
public ItemBiomeFinder()
|
||||||
{
|
{
|
||||||
this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty);
|
this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty);
|
||||||
|
@ -32,14 +33,12 @@ public class ItemBiomeFinder extends Item
|
||||||
{
|
{
|
||||||
if (!itemStack.hasTagCompound()) itemStack.setTagCompound(new NBTTagCompound());
|
if (!itemStack.hasTagCompound()) itemStack.setTagCompound(new NBTTagCompound());
|
||||||
|
|
||||||
itemStack.getTagCompound().setInteger("biomeIdToFind", BOPBiomeHelper.getBOPBiome("lavenderFields").biomeID);
|
int biomeIDToFind = itemStack.getTagCompound().getInteger("biomeIDToFind");
|
||||||
|
|
||||||
int biomeIdToFind = itemStack.getTagCompound().getInteger("biomeIdToFind");
|
if (!world.isRemote && !itemStack.getTagCompound().getBoolean("foundBiome"))
|
||||||
|
|
||||||
if (!world.isRemote && !player.getEntityData().getBoolean("foundBiome"))
|
|
||||||
{
|
{
|
||||||
//TODO: getBiomeGenArray()
|
//TODO: getBiomeGenArray()
|
||||||
BiomeGenBase biomeToFind = BiomeGenBase.func_150565_n()[biomeIdToFind];
|
BiomeGenBase biomeToFind = BiomeGenBase.func_150565_n()[biomeIDToFind];
|
||||||
|
|
||||||
if (biomeToFind != null)
|
if (biomeToFind != null)
|
||||||
{
|
{
|
||||||
|
@ -115,8 +114,8 @@ public class ItemBiomeFinder extends Item
|
||||||
biomeCompound.setInteger("x", biomePosition.field_151329_a);
|
biomeCompound.setInteger("x", biomePosition.field_151329_a);
|
||||||
biomeCompound.setInteger("z", biomePosition.field_151328_c);
|
biomeCompound.setInteger("z", biomePosition.field_151328_c);
|
||||||
|
|
||||||
player.getEntityData().setTag("biomePosition", biomeCompound);
|
itemStack.getTagCompound().setTag("biomePosition", biomeCompound);
|
||||||
player.getEntityData().setBoolean("foundBiome", true);
|
itemStack.getTagCompound().setBoolean("foundBiome", true);
|
||||||
|
|
||||||
BiomesOPlenty.packetPipeline.sendTo(new PacketBiomePosition(biomePosition.field_151329_a, biomePosition.field_151328_c, true), (EntityPlayerMP)player);
|
BiomesOPlenty.packetPipeline.sendTo(new PacketBiomePosition(biomePosition.field_151329_a, biomePosition.field_151328_c, true), (EntityPlayerMP)player);
|
||||||
}
|
}
|
||||||
|
@ -131,17 +130,31 @@ public class ItemBiomeFinder extends Item
|
||||||
@Override
|
@Override
|
||||||
public void registerIcons(IIconRegister iconRegister)
|
public void registerIcons(IIconRegister iconRegister)
|
||||||
{
|
{
|
||||||
if (iconRegister instanceof TextureMap)
|
radarIcon = iconRegister.registerIcon("biomesoplenty:biomeradar");
|
||||||
{
|
|
||||||
TextureAtlasSprite texture = new TextureBiomeFinder("biomesoplenty:biomefinder");
|
|
||||||
((TextureMap)iconRegister).setTextureEntry("biomesoplenty:biomefinder", texture);
|
|
||||||
this.itemIcon = texture;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@Override
|
@Override
|
||||||
public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean advancedItemTooltips)
|
public void addInformation(ItemStack itemStack, EntityPlayer player, List infoList, boolean advancedItemTooltips)
|
||||||
{
|
{
|
||||||
if (!itemStack.hasTagCompound()) itemStack.setTagCompound(new NBTTagCompound());
|
if (itemStack.hasTagCompound())
|
||||||
}*/
|
{
|
||||||
|
if (itemStack.getTagCompound().hasKey("biomeIDToFind"))
|
||||||
|
{
|
||||||
|
BiomeGenBase biome = BiomeGenBase.func_150565_n()[itemStack.getTagCompound().getInteger("biomeIDToFind")];
|
||||||
|
|
||||||
|
if (biome != null)
|
||||||
|
{
|
||||||
|
infoList.add(biome.biomeName);
|
||||||
|
|
||||||
|
if (itemStack.getTagCompound().hasKey("foundBiome"))
|
||||||
|
{
|
||||||
|
boolean foundBiome = itemStack.getTagCompound().getBoolean("foundBiome");
|
||||||
|
|
||||||
|
if (foundBiome) infoList.add(EnumChatFormatting.RED + "Found biome");
|
||||||
|
else infoList.add("Right Click to Find Biome");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
package biomesoplenty.common.network.packet;
|
package biomesoplenty.common.network.packet;
|
||||||
|
|
||||||
import cpw.mods.fml.common.network.ByteBufUtils;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
import biomesoplenty.common.network.AbstractPacket;
|
import biomesoplenty.common.network.AbstractPacket;
|
||||||
|
|
||||||
public class PacketBiomePosition extends AbstractPacket
|
public class PacketBiomePosition extends AbstractPacket
|
||||||
|
@ -45,9 +46,16 @@ public class PacketBiomePosition extends AbstractPacket
|
||||||
|
|
||||||
biomeCompound.setInteger("x", x);
|
biomeCompound.setInteger("x", x);
|
||||||
biomeCompound.setInteger("z", z);
|
biomeCompound.setInteger("z", z);
|
||||||
|
|
||||||
player.getEntityData().setTag("biomePosition", biomeCompound);
|
ItemStack currentItem = player.getCurrentEquippedItem();
|
||||||
player.getEntityData().setBoolean("foundBiome", foundBiome);
|
|
||||||
|
if (currentItem.getItem() == BOPItemHelper.get("biomeFinder"))
|
||||||
|
{
|
||||||
|
if (!currentItem.hasTagCompound()) currentItem.setTagCompound(new NBTTagCompound());
|
||||||
|
|
||||||
|
currentItem.getTagCompound().setBoolean("foundBiome", foundBiome);
|
||||||
|
currentItem.getTagCompound().setTag("biomePosition", biomeCompound);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
package biomesoplenty.common.recipes;
|
||||||
|
|
||||||
|
import net.minecraft.inventory.InventoryCrafting;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.item.crafting.IRecipe;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import biomesoplenty.api.BOPItemHelper;
|
||||||
|
|
||||||
|
public class BiomeEssenceRecipe implements IRecipe
|
||||||
|
{
|
||||||
|
private ItemStack recipeOutput;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matches(InventoryCrafting inventoryCrafting, World world)
|
||||||
|
{
|
||||||
|
ItemStack biomeRadar = null;
|
||||||
|
ItemStack biomeEssence = null;
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < 3; ++j)
|
||||||
|
{
|
||||||
|
ItemStack itemstack = inventoryCrafting.getStackInRowAndColumn(j, i);
|
||||||
|
|
||||||
|
if (itemstack != null)
|
||||||
|
{
|
||||||
|
if (itemstack.getItem() == BOPItemHelper.get("biomeFinder")) biomeRadar = itemstack.copy();
|
||||||
|
else if (itemstack.getItem() == BOPItemHelper.get("biomeEssence")) biomeEssence = itemstack.copy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (biomeRadar != null && biomeEssence != null)
|
||||||
|
{
|
||||||
|
if (!biomeEssence.hasTagCompound() || !biomeEssence.getTagCompound().hasKey("biomeID")) return false;
|
||||||
|
|
||||||
|
int biomeID = biomeEssence.getTagCompound().getInteger("biomeID");
|
||||||
|
|
||||||
|
if (!biomeRadar.hasTagCompound()) biomeRadar.setTagCompound(new NBTTagCompound());
|
||||||
|
|
||||||
|
biomeRadar.getTagCompound().setInteger("biomeIDToFind", biomeID);
|
||||||
|
biomeRadar.getTagCompound().setBoolean("foundBiome", false);
|
||||||
|
|
||||||
|
recipeOutput = biomeRadar;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRecipeSize()
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getCraftingResult(InventoryCrafting var1)
|
||||||
|
{
|
||||||
|
return recipeOutput.copy();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getRecipeOutput()
|
||||||
|
{
|
||||||
|
return recipeOutput;
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 2.8 KiB |
Loading…
Reference in New Issue