1
我想更新世界紋理中的特定塊而不替換塊或註冊多個塊。我正在使用Forge版本1.7.2,推薦版本。有沒有辦法在初始化後動態更新塊紋理?
我想更新世界紋理中的特定塊而不替換塊或註冊多個塊。我正在使用Forge版本1.7.2,推薦版本。有沒有辦法在初始化後動態更新塊紋理?
你可以做的是在你的紋理目錄中有多個紋理,並將它們全部註冊到你的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;
}
}
}
希望這是你在找什麼!
注意到,學習布特說。 – SSBlur
這將是非常艱難的,只是一個頭... –
我注意到,香草爐做到了。研究這一點。編輯:Nvm,它改變塊。 – SSBlur