public float DE, DE_MAX;
@Override
public void readFromNBT(NBTTagCompound tag) {
super.readFromNBT(tag);
DE = tag.getFloat("modid_de");
DE_MAX = tag.getFloat("modid_de_max");
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
super.writeToNBT(tag);
tag.setFloat("modid_de", DE);
tag.setFloat("modid_de_max", DE_MAX);
return compound;
}
Ты тайл зарегистрировал?
package zarak.DarkKnowledge.init;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.fml.common.registry.GameRegistry;
import zarak.DarkKnowledge.References;
import zarak.DarkKnowledge.tile.TileAltar0;
public class ModTileEntity {
public static final Class<? extends TileEntity> ALTAR = TileAltar0.class;
public static void register() {
setRegister(ALTAR, "BLOCK_ALTAR");
}
private static void setRegister(Class<? extends TileEntity> tileClass, String name) {
GameRegistry.registerTileEntity(tileClass, References.MODID + ":" + name);
}
}
package zarak.DarkKnowledge.proxy;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import zarak.DarkKnowledge.api.DkCrafting;
import zarak.DarkKnowledge.generators.OreGenerator;
import zarak.DarkKnowledge.hungler.Events;
import zarak.DarkKnowledge.hungler.PotionEvents;
import zarak.DarkKnowledge.init.*;
public class CommonProxy {
public void preInit(FMLPreInitializationEvent event) {
ModBlock.register();
ModItem.register();
ModEntities.register();
ModPotion.register();
ModTileEntity.register();
MinecraftForge.EVENT_BUS.register(new Events());
MinecraftForge.EVENT_BUS.register(new PotionEvents());
}
public void init(FMLInitializationEvent event)
{
DkCrafting.crafting();
DkCrafting.smelting();
GameRegistry.registerWorldGenerator(new OreGenerator(), 0);
}
public void postInit(FMLPostInitializationEvent event) {
}
}
Не очень понял.Попробуй создать пустой конструктор в тайлэнтити, может поможет...
public TileAltar0(){}
Так у меня есть такой уже, и я сделал , как хочешь ты но, ничего, даже хужеДобавь в свой тайл
Java:public TileAltar0(){}
Какой у тебя конструктор в тайле?
public TileAltar0(){
checkDE(this,15000);
}
public static void checkDE(TileEntity tileEntity,float max) {
if(!tileEntity.getTileData().hasKey("DE")){
NBTTagCompound tag = tileEntity.getTileData();
tag.setFloat("DE",0);
}
if(!tileEntity.getTileData().hasKey("MAX_DE")){
NBTTagCompound tag = tileEntity.getTileData();
tag.setFloat("MAX_DE",max);
}
}
@Override
public void readFromNBT(NBTTagCompound compound) {
super.readFromNBT(compound);
burntime=compound.getInteger(TileEntityConstants.burnName);
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound compound) {
super.writeToNBT(compound);
compound.setInteger(TileEntityConstants.burnName, burntime);
return compound;
}
Мне так проще(ибо толком не могу понять , как write and read to nbt юзатьЗачем дату дергать, если у тебя свой тайл? Ты шо, ебобо?
Мне так проще(ибо толком не могу понять , как write and read to nbt юзать
Чего тут непонятного?Вот пример:
Java:@Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); burntime=compound.getInteger("name"); } @Override public NBTTagCompound writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); compound.setInteger("name", burntime); return compound; }
Как этим на практике пользоваться, как записать значение вне основного класса.Чего тут непонятного?
Можно примеры?Ну у тебя есть переменная burntime, делаешь сеттер и меняешь себе сколько хочешь, в чем проблема
class MyTile extends ... implements ...{
private int value;
public int getValue(){
return this.value;
}
public void setValue(int v){
this.value = v;
}
//там дальше код для записи и чтению из нбт что уже показывали
}
MyTile myTile = (MyTile)world.getTileEnntity(...);
myTile.setValue(10);
public int value;
myTile.value = 10;
public float DE, DE_MAX;
@Override
public void readFromNBT(NBTTagCompound tag) {
super.readFromNBT(tag);
DE = tag.getFloat("modid_de");
DE_MAX = tag.getFloat("modid_de_max");
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
super.writeToNBT(tag);
tag.setFloat("modid_de", DE);
tag.setFloat("modid_de_max", DE_MAX);
return compound;
}