Jump to content

Alexey Malko

Members
  • Posts

    5
  • Joined

  • Last visited

Posts posted by Alexey Malko

  1. No problem. To express your gratitude, use the "Thank you" button in the top of each message. Thats really nice.

    You can also create your own Creative Tabs, adding the following code to your main mod file:

     

    public static CreativeTabs <System name of the Tab> = new CreativeTabs("<System name>") {
    	public ItemStack getIconItemStack() {
    		return new ItemStack(<Block / Item, which texture will be used as Tab icon>, 1, 0);
    	}
    };
    

     

    Then add the name of your tab to @Init method of your mod:

     

    LanguageRegistry.instance().addStringLocalization("itemGroup.<System name>", "en_US", "<The Final name of your Tab>");

     

    You can use "setCreativeTab(<Name of your main class>.<System name of your Custom Tab>)" to add your items and blocks to this tab.

     

    And here you go.

    The result should look like:

     

     

     

    Your main class:

    package mod.exdream;
    
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.Init;
    import net.minecraft.block.*;
    import net.minecraft.block.material.Material;
    import net.minecraft.item.Item;
    import net.minecraft.src.BaseMod;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    
    @Mod(modid="exdream",name="Ex-Dream",version="v.0.1")
    @NetworkMod(clientSideRequired=true,serverSideRequired=false)
    
    public class main extends BaseMod{
    
    public static String version = "v.0.1";
    
    public static Block blok = new blok(500).setUnlocalizedName("test");
    public static Block stem = new blok(501).setUnlocalizedName("stemo");
    public static Block ethox = new blok(502).setUnlocalizedName("ethox");
    
    public static Item recip = new addItem(503).setUnlocalizedName("recip");
    
    public static CreativeTabs tabExDream = new CreativeTabs("tabExDream") {
    	public ItemStack getIconItemStack() {
    		return new ItemStack(Item.eyeOfEnder, 1, 0);
    	}
    };
    
    @Init
    public void load(FMLInitializationEvent event){
    
    	//blok = new blok(500).setUnlocalizedName("test");
    	GameRegistry.registerItem(recip,"recip");
    	LanguageRegistry.addName(recip, "Recipe");	
    
    	GameRegistry.registerBlock(blok,"test");
    	LanguageRegistry.addName(blok, "test");
    
    	GameRegistry.registerBlock(stem,"stem");
    	LanguageRegistry.addName(stem, "stem");
    
    	GameRegistry.registerBlock(ethox,"ethox");
    	LanguageRegistry.addName(ethox, "Ethox");
    
    	LanguageRegistry.instance().addStringLocalization("itemGroup.tabExDream", "en_US", "ExDream Essential");
    
    }
    
    @Override
    public String getVersion() {
    	// TODO Auto-generated method stub
    	return version;
    }
    
    @Override
    public void load() {
    	// TODO Auto-generated method stub
    
    }
    
    
    }
    

     

    And your custom block, for example:

    package mod.exdream;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    
    public class blok extends Block{
    
    public blok(int par1) {
    	super(par1, Material.air);
                    setCreativeTab(main.tabExDream);
    	// TODO Auto-generated constructor stub
    }
    
    }
    

     

     

     

    Good luck!

  2. Thank you for your answer.

    I've never used the packets before, and I couldn't find any guides, which can be useful for me. So could you help me?

     

    According to this common guide - http://www.minecraftforge.net/wiki/Packet_Handling, I added the following code to my GUI:

     

     

     

    /* Button Actions */
    @Override
    public void actionPerformed(GuiButton guibutton) {
    	if (guibutton.id == 0) {					
    		tileEntity.owner = player.getEntityName();
    		tileEntity.name = textfield.getText();
    		tileEntity.stage = 2;
    
                /* Packet Sending*/
    
                ByteArrayOutputStream bos = new ByteArrayOutputStream(64);
                DataOutputStream outputStream = new DataOutputStream(bos);
                try {
                        outputStream.writeInt(tileEntity.stage);
                        outputStream.writeUTF(tileEntity.name);
                        outputStream.writeUTF(tileEntity.owner);
                } catch (Exception ex) {
                        ex.printStackTrace();
                    	System.err.println("[Mekanism] Error while writing tile entity packet.");
                }
               
                Packet250CustomPayload packet = new Packet250CustomPayload();
                packet.channel = "NordWest";
                packet.data = bos.toByteArray();
                packet.length = bos.size();
               
                Side side = FMLCommonHandler.instance().getEffectiveSide();
                if (side == Side.SERVER) {
                        // We're on the server side.
                        EntityPlayerMP MPplayer = (EntityPlayerMP) player;
                } else if (side == Side.CLIENT) {
                        // We're on the client side.
                        EntityClientPlayerMP MPplayer = (EntityClientPlayerMP) player;
                        PacketDispatcher.sendPacketToServer(packet);
                } else {
                        // We're on the Bukkit server.
                }
    		mc.displayGuiScreen(null);
    		//Activation button.
    	}
    
                /* Packet Sending End */
    
    	if (guibutton.id == 1) {
    		mc.displayGuiScreen(null);
    		//Cancel button.
    	}
    }
    

     

    And created this simple Packet Handler:

     

    package mods.nordwest.common;
    
    import java.io.ByteArrayInputStream;
    import java.io.DataInputStream;
    import java.io.IOException;
    
    import com.google.common.io.ByteArrayDataInput;
    import com.google.common.io.ByteStreams;
    
    import mods.nordwest.tileentity.TileEntityAltar;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.player.EntityPlayerMP;
    import net.minecraft.network.INetworkManager;
    import net.minecraft.network.packet.Packet250CustomPayload;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.world.World;
    import cpw.mods.fml.common.FMLLog;
    import cpw.mods.fml.common.network.IPacketHandler;
    import cpw.mods.fml.common.network.Player;
    
    public class PacketHandler implements IPacketHandler {
    
    @Override
    public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
            if (packet.channel.equals("NordWest")) {
                handleAltar(packet);
        }
    }
    
    private void handleAltar(Packet250CustomPayload packet) {
            DataInputStream inputStream = new DataInputStream(new ByteArrayInputStream(packet.data));
           
            int stage;
            String name;
            String owner;
           
            	try {
                    stage = inputStream.readInt();
                    name = inputStream.readUTF();
                    owner = inputStream.readUTF();                
            	} catch (IOException e) {
                    e.printStackTrace();
                    return;
            	}
            /* Debug Console Message */
            System.out.println("Okay, now stage is " + stage + ". And the name - " + name + " by " + owner +".");
    }
    }
    

     

     

     

    Debug message works fine, so I can send and handle the packet, but there is a question - how can I save all this information and use it later? All useful guides are extremely welcome. Thanks in advance.

  3. Hello, as I understand you, the problem is that your custom items and blocks are not available in the Creative Inventory? If so, you should add the following string to the class constructor - "setCreativeTab(CreativeTabs.<Name of the Default Tab>);" For example, "setCreativeTab(CreativeTabs.tabMisc);" You can enter "setCreativeTab(CreativeTabs.)" to view the list of all available tabs.

     

    The result should look like:

     

     

    Your Block:

    package mod.exdream;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    
    public class blok extends Block{
    
    public blok(int par1) {
    	super(par1, Material.air);
                    setCreativeTab(CreativeTabs.tabMisc);
    	// TODO Auto-generated constructor stub
    }
    
    }
    

     

    Your Item:

    package mod.exdream;
    
    import net.minecraft.item.Item;
    
    public class addItem extends Item{
    
    public addItem(int par1) {
    	super(par1);
                    setCreativeTab(CreativeTabs.tabMisc);
    	// TODO Auto-generated constructor stub
    }
    
    }
    

     

     

     

    I hope this helps you.

  4. Hello everyone.

     

    I need your help, I have a problem with TileEntity, it doesn't save any information after logging out. So you can enter string, int (number) or any other information, which can be contained in NBTTagCompound, then click save-button. And all this information will be saved until you relogging. After that all information will be cleared.

     

    I think this is due to the fact that my TileEntity doesn't send new values to the server side, so they cannot be saved. My another assumption is that my TileEntity doesn't get updated properly. Anyway I can't solve this problem by myself, hope for your help.

     

    Source:

     

     

     

    BlockAltar.java:

    package mods.nordwest.blocks;
    
    import java.util.List;
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import mods.nordwest.common.Config;
    import mods.nordwest.common.CustomBlocks;
    import mods.nordwest.common.NordWest;
    import mods.nordwest.tileentity.TileEntityAltar;
    import mods.nordwest.utils.EffectsLibrary;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.util.Icon;
    import net.minecraft.world.World;
    
    public class BlockAltar extends BaseBlock {
    @SideOnly(Side.CLIENT)
    private Icon[] iconArray;
    
    public BlockAltar(int par1) {
    	super(par1, Material.rock);
            this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.75F, 1.0F);
            this.setLightOpacity(0);
            setHardness(2500.0F);
            setResistance(20.0F);
            setCreativeTab(NordWest.tabNW);
    }
    
    @SideOnly(Side.CLIENT)
    @Override
    public void registerIcons(IconRegister par1IconRegister) {
    	this.iconArray = new Icon[3];
    
    	this.iconArray[0] = par1IconRegister.registerIcon("nordwest:" + this.getUnlocalizedName2() + ".side");
    	this.iconArray[1] = par1IconRegister.registerIcon("nordwest:" + this.getUnlocalizedName2() + ".top");
    	this.iconArray[2] = par1IconRegister.registerIcon("nordwest:" + this.getUnlocalizedName2() + ".buttom");
    }
    
        @Override
        public TileEntity createTileEntity(World world, int meta) {
               try
               {
                   return new TileEntityAltar();
               }
               catch (Exception e)
               {
                   throw new RuntimeException(e);
               }
        }
        
        @Override
        public boolean hasTileEntity(int metadata) {
            return true;
        }
        
        public boolean isOpaqueCube()
        {
            return false;
        }
        
        public boolean renderAsNormalBlock()
        {
            return false;
        }
    
    @Override
    public void onBlockAdded(World world, int x, int y, int z) {
    	Random random = new Random();
    	if (world.provider.dimensionId == 1) {
    		int dropChance = random.nextInt(10);
    		world.createExplosion((Entity)null, x, y, z, 2.0F, false);
    		if (dropChance <= 7) {
    		world.destroyBlock(x, y, z, true);
    		} else {
    		world.destroyBlock(x, y, z, false);
    		}
    	} else {
    		world.setBlockTileEntity(x, y, z, createTileEntity(world, world.getBlockMetadata(x, y, z)));
    		boolean onBlockActivated;
    	}
    }
    
    @Override
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int a, float par1, float par2, float par3){
    	ItemStack itemstack = player.inventory.getCurrentItem();
            TileEntityAltar tileEntity = (TileEntityAltar) world.getBlockTileEntity(x, y, z);
    		if (itemstack != null){
    		if (itemstack.itemID == Item.flintAndSteel.itemID ){
                    if (tileEntity == null || player.isSneaking() || tileEntity.stage != 0) {
                    return false;
                    	}
                    	EffectsLibrary.smokeCloud(player, x, y, z, 48);
                    	EffectsLibrary.playSoundOnEntity(player, "fire.ignite");
                    	itemstack.damageItem(3, player);
                    	player.openGui(NordWest.instance, 0, world, x, y, z);
                    	return true;
    				}
    			}
    		return false;
    	}
    
    
    @SideOnly(Side.CLIENT)
    @Override
    public Icon getIcon(int par1, int par2) {
    	if (par1 == 0)
    		return this.iconArray[2];
    	if (par1 == 1)
    		return this.iconArray[1];
    	return this.iconArray[0];
    }
    public int getRenderType() {
    	return Config.AltarRendererID;
    }
    
    @Override
    public void randomDisplayTick(World par1World, int x, int y, int z, Random random) {
    	super.randomDisplayTick(par1World, x, y, z, random);
    	/* Easter Egg */
    	if (testBlock(par1World, x, y, z)) {
    		for (int i = x - 2; i < x + 3; i++) {
    			for (int j = y; j < y + 4; j++) {
    				for (int k = z - 2; k < z + 3; k++) {
    					if (random.nextInt(16) == 0) {
    						par1World.spawnParticle("portal", i + random.nextDouble(), j + random.nextDouble(), k
    								+ random.nextDouble(), 0, 0, 0);
    					}
    				}
    			}
    		}
    	}
    
    }
    
    private boolean testBlock(World world, int x, int y, int z) {
    	int id = world.getBlockId(x, y, z);
    	if (id != CustomBlocks.blockhome.blockID) {
    		return false;
    	} else {
    		boolean test = true;
    		for (int i = 0; i < 4; i++) {
    			test &= world.getBlockId(x + 2, y + i, z + 2) == Block.obsidian.blockID;
    			test &= world.getBlockId(x - 2, y + i, z + 2) == Block.obsidian.blockID;
    			test &= world.getBlockId(x + 2, y + i, z - 2) == Block.obsidian.blockID;
    			test &= world.getBlockId(x - 2, y + i, z - 2) == Block.obsidian.blockID;
    		}
    		return test;
    	}
    }
    }

     

    GuiAltar.java:

    package mods.nordwest.client.gui;
    
    import java.awt.Color;
    import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.util.Random;
    
    import mods.nordwest.blocks.BlockAltar;
    import mods.nordwest.client.renders.BlockCandleRenderer;
    import mods.nordwest.common.NordWest;
    import mods.nordwest.utils.EnumFormatting;
    import mods.nordwest.utils.EffectsLibrary;
    import mods.nordwest.tileentity.TileEntityAltar;
    import net.minecraft.client.gui.GuiButton;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.client.gui.GuiTextField;
    import net.minecraft.client.gui.inventory.GuiContainer;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.network.packet.Packet132TileEntityData;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.util.StringTranslate;
    import net.minecraft.world.World;
    
    import org.lwjgl.input.Keyboard;
    import org.lwjgl.opengl.GL11;
    
    import cpw.mods.fml.common.network.PacketDispatcher;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    
    @SideOnly(Side.CLIENT)
    public class GuiAltar extends GuiScreen {
    public TileEntityAltar tileEntity;
    private static EntityPlayer player;
    private static World world;
    private GuiTextField textfield;
    private int xSize = 176;
    private int ySize = 166;
    
    String doublePoint = ": ";
    Random random = new Random();
    private int variability = random.nextInt(10);
    
    public GuiAltar(TileEntity tileEntity, EntityPlayer entityplayer, World currentworld) {
    	this.tileEntity = (TileEntityAltar) tileEntity;
    	player = entityplayer;
    	world = currentworld;
    }
    
    @Override
    public void initGui() {
    	String DefaultText = LanguageRegistry.instance().getStringLocalization("homing.default") + " " + tileEntity.stage;
    	DefaultText = DefaultText.replaceAll("%p", player.getEntityName());
    
    	buttonList.clear();
    	/* Buttons with their settings! */
    	buttonList.add(new GuiButton(0, width / 2 - 82, height / 2 + 45, 80, 20, LanguageRegistry.instance().getStringLocalization("homing.done")));
    	buttonList.add(new GuiButton(1, width / 2 + 2, height / 2 + 45, 80, 20, LanguageRegistry.instance().getStringLocalization("homing.back")));
    	/* Text field & its settings! */
    	textfield = new GuiTextField(fontRenderer, width / 2 - 72, height / 2 - 37, 105, 20);
    	textfield.setFocused(false);
    	textfield.setCanLoseFocus(true);
    	textfield.setText(DefaultText);
    	textfield.setMaxStringLength(28);
    	textfield.setCursorPosition(0);
    	textfield.setEnableBackgroundDrawing(false);
    }
    
    public void mouseClicked(int i, int j, int k) {
    	super.mouseClicked(i, j, k);
    	textfield.mouseClicked(i, j, k);
    
    	if (j >= height / 2 - 41 && j <= height / 2 - 27 && i >= width / 2 + 30 && i <= width / 2 + 46) {
    		player.playSound("random.click", 0.5F, 1.2F);
    	/* Previous color */
    	} else if (j >= height / 2 - 41 && j <= height / 2 - 27 && i >= width / 2 + 60 && i <= width / 2 + 76) {
    		player.playSound("random.click", 0.5F, 1.2F);
    	/* Next color */
    	}
    }
    
    @Override
    public void onGuiClosed() {
    	player.playSound("random.fizz", 0.5F, 1.2F);
    }
    
    @Override
    public void drawScreen(int i, int j, float f) {
    	/* Background and Title */
    	GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    	mc.renderEngine.bindTexture("/mods/nordwest/textures/gui/GuiAltar.png");
    	drawTexturedModalRect(width / 2 - 88, height / 2 - 80, 0, 0, 176, 166);
    	fontRenderer.drawString(LanguageRegistry.instance().getStringLocalization("homing.title"), width / 2 - 75, height / 2 - 73, 4210752);
    	textfield.drawTextBox();
    	/* General Content */
    	drawString(fontRenderer, LanguageRegistry.instance().getStringLocalization("homing.subtitle") + doublePoint, width / 2 - 75, height / 2 - 52, 0xF0DC82);
    	drawString(fontRenderer, LanguageRegistry.instance().getStringLocalization("homing.remember") + doublePoint, width / 2 - 75, height / 2 - 22, 0xF0DC82);
    	drawString(fontRenderer, LanguageRegistry.instance().getStringLocalization("homing.desc.s1"), width / 2 - 75, height / 2 - 10, 0xF0DC82);
    	drawString(fontRenderer, LanguageRegistry.instance().getStringLocalization("homing.desc.s2"), width / 2 - 75, height / 2, 0xF0DC82);
    	drawString(fontRenderer, LanguageRegistry.instance().getStringLocalization("homing.desc.s3"), width / 2 - 75, height / 2 + 10, 0xF0DC82);
    	if (StringTranslate.getInstance().getCurrentLanguage().equals("ru_RU")) {
    		drawString(fontRenderer, LanguageRegistry.instance().getStringLocalization("homing.desc.s4"), width / 2 - 75, height / 2 + 20, 0xF0DC82);
    	} else {
    		String randomAlert = "Something's wrong!";
    		if (variability <= 3) {
    			randomAlert = LanguageRegistry.instance().getStringLocalization("homing.alert.1");
    		} else if (variability <=  {
    			randomAlert = LanguageRegistry.instance().getStringLocalization("homing.alert.2");
    		} else {
    			randomAlert = LanguageRegistry.instance().getStringLocalization("homing.alert.rare");
    		}
    		drawString(fontRenderer, randomAlert, width / 2 - 75, height / 2 + 25, 0xF0DC82);
    	}
    	super.drawScreen(i, j, f);
    }
    
    @Override
    public void keyTyped(char c, int i) {
    	super.keyTyped(c, i);
    	textfield.textboxKeyTyped(c, i);
    	if (i == 1) {
    		mc.displayGuiScreen(null);
    	}
    }
    
    @Override
    public boolean doesGuiPauseGame() {
    	return false;
    }
    
    @Override
    public void actionPerformed(GuiButton guibutton) {
    	if (guibutton.id == 0) {
    		tileEntity.owner = player.getEntityName();
    		tileEntity.name = textfield.getText();
    		tileEntity.stage = 2;
    		//world.notifyBlockChange(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 2);
    		tileEntity.sendUpdate();
    		mc.displayGuiScreen(null);
    	}
    	if (guibutton.id == 1) {
    		mc.displayGuiScreen(null);
    	}
    }
    
    }

     

    AltarTileEntity.java:

    package mods.nordwest.tileentity;
    
    import java.io.ByteArrayOutputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.network.INetworkManager;
    import net.minecraft.network.packet.Packet;
    import net.minecraft.network.packet.Packet132TileEntityData;
    import net.minecraft.network.packet.Packet250CustomPayload;
    import net.minecraft.tileentity.TileEntity;
    import com.google.common.io.ByteArrayDataInput;
    
    import cpw.mods.fml.common.FMLLog;
    import cpw.mods.fml.common.network.PacketDispatcher;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    
    public class TileEntityAltar extends TileEntity {
    public String owner = "Undefined";
    public String name = "Undefined";
    public int stage = 0;
    
    @Override
    public void readFromNBT(NBTTagCompound tag) {
    	super.readFromNBT(tag);
    	name = tag.getString("name");
    	owner = tag.getString("owner");
    	stage = tag.getInteger("stage");
    }
    
    @Override
    public void writeToNBT(NBTTagCompound tag) {
    	super.writeToNBT(tag);
    	tag.setString("name", name);
    	tag.setString("owner", owner);
    	tag.setInteger("stage", stage);
    }
    
    public void sendUpdate() {
    	worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
    	worldObj.notifyBlockChange(xCoord, yCoord, zCoord, 2);
    }
    
    @Override
    public Packet getDescriptionPacket()
      {
      NBTTagCompound tag = new NBTTagCompound();
      this.writeToNBT(tag);
      return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 0, tag);
      }
    
    @Override
    public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) {
    	super.onDataPacket(net, pkt);
    	NBTTagCompound tag = pkt.customParam1;
    	this.readFromNBT(tag);
    }
    }

     

    ClientProxy.java:

    package mods.nordwest.client;
    
    import cpw.mods.fml.client.registry.ClientRegistry;
    import cpw.mods.fml.client.registry.RenderingRegistry;
    import cpw.mods.fml.common.registry.LanguageRegistry;
    import cpw.mods.fml.common.registry.TickRegistry;
    import cpw.mods.fml.relauncher.Side;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.world.World;
    import net.minecraftforge.client.IItemRenderer;
    import net.minecraftforge.client.MinecraftForgeClient;
    import mods.nordwest.client.gui.GuiAltar;
    import mods.nordwest.client.renders.BlockCandleRenderer;
    import mods.nordwest.client.renders.BlockExtractorRenderer;
    import mods.nordwest.common.CommonProxy;
    
    public class ClientProxy extends CommonProxy {
    
    @Override
    public void registerRenderers() {
    	 RenderingRegistry.registerBlockHandler(new BlockCandleRenderer());
    	 RenderingRegistry.registerBlockHandler(new BlockExtractorRenderer());
    }
    
    @Override
    public GuiScreen getClientGui(int ID, EntityPlayer player, World world, int x, int y, int z) 
    {
    	TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
    
    	switch(ID)
    	{
    		case 0:
    			return new GuiAltar(tileEntity, player, world);
    	}
    	return null;
    }
    
    @Override
    public int addArmor(String armor)
    {
    	return RenderingRegistry.addNewArmourRendererPrefix("../mods/nordwest/textures/armor/"+armor);
    }
    public void registerServerTickHandler()
    {
    	//TickRegistry.registerTickHandler(new ClientTickHandler(), Side.CLIENT);
    }
    public String getStringLocalization(String key){
    	return  LanguageRegistry.instance().getStringLocalization(key);
    }
    }

     

    Part of NordWest.java (Our main class):

    	/** Registering GUI handler */
    	NetworkRegistry.instance().registerGuiHandler(this, new GuiHandler());
    	/** Our TileEntities */
    	GameRegistry.registerTileEntity(TileEntityAltar.class, "tileEntityAltar");
    

     

    GuiHandler.java:

    package mods.nordwest.common;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.world.World;
    import cpw.mods.fml.common.network.IGuiHandler;
    
    /**
    * Client and server GUI hander for our mod. 
    * Uses CommonProxy to get the server GUI and ClientProxy for the client GUI.
    *
    */
    public class GuiHandler implements IGuiHandler
    {
    @Override
    public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) 
    {
    	return NordWest.proxy.getServerGui(ID, player, world, x, y, z);
    }
    
    @Override
    public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) 
    {
    	return NordWest.proxy.getClientGui(ID, player, world, x, y, z);
    }
    }

     

     

     

    Thanks in advance. And sorry for my english.

    With best regards, Alexey.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.