2014-05-22 35 views
1

我想更新世界紋理中的特定塊而不替換塊或註冊多個塊。我正在使用Forge版本1.7.2,推薦版本。有沒有辦法在初始化後動態更新塊紋理?

+0

注意到,學習布特說。 – SSBlur

+0

這將是非常艱難的,只是一個頭... –

+0

我注意到,香草爐做到了。研究這一點。編輯:Nvm,它改變塊。 – SSBlur

回答

1

你可以做的是在你的紋理目錄中有多個紋理,並將它們全部註冊到你的registerBlockIcons(IIconRegister register)方法中。 例子:

package com.example.examplemod; 

import net.minecraft.block.Block; 
import net.minecraft.block.material.Material; 
import net.minecraft.client.renderer.texture.IIconRegister; 
import net.minecraft.util.IIcon; 
import cpw.mods.fml.relauncher.Side; 
import cpw.mods.fml.relauncher.SideOnly; 

public class BlockMultiTextureDemo extends Block { 

//Save state to NBT at the world save time. 
private int state = 0; 

private final int DONE = 0; 
private final int WORKING = 1; 
private final int NOPOWER = 2; 
private final int MACHINEBROKE = 3; 


@SideOnly(Side.CLIENT) 
public static IIcon doneIcon; 
@SideOnly(Side.CLIENT) 
public static IIcon workIcon; 
@SideOnly(Side.CLIENT) 
public static IIcon nopowerIcon; 
@SideOnly(Side.CLIENT) 
public static IIcon brokeIcon; 
@SideOnly(Side.CLIENT) 
public static IIcon topIcon; 

protected BlockMultiTextureDemo(Material material) { 
    super(material); 
} 

@Override 
public void registerBlockIcons(IIconRegister register) { 
    super.registerBlockIcons(register); 
    doneIcon = register.registerIcon("MODID:" + getUnlocalizedName() 
      + "_DONE"); 
    workIcon = register.registerIcon("MODID:" + getUnlocalizedName() 
      + "_WORKING"); 
    nopowerIcon = register.registerIcon("MODID:" + getUnlocalizedName() 
      + "_NOPOWER"); 
    brokeIcon = register.registerIcon("MODID:" + getUnlocalizedName() 
      + "_BROKE"); 
    topIcon = register.registerIcon("MODID:" + getUnlocalizedName() 
      + "_TOP"); 

} 

@Override 
protected String getTextureName() { 
    return super.getTextureName(); 
} 

@Override 
public IIcon getIcon(int side, int meta) { 
    switch (meta) { 
    case DONE: 
     return doneIcon; 
    case WORKING: 
     return workIcon; 
    case NOPOWER: 
     return nopowerIcon; 
    case MACHINEBROKE: 
     return brokeIcon; 
    default: 
     return topIcon; 
    } 
    } 
} 

希望這是你在找什麼!

相關問題