Object serialization implements INBTWritable
This commit is contained in:
@@ -22,7 +22,7 @@ public class BuilderSignEditor extends BuilderData
|
||||
|
||||
for(int x = 0; x < 4; x++)
|
||||
{
|
||||
this.sign[x] = this.registerNBTComponent(new ComponentTag<SignText>("Text" + (x + 1), new SignText(x), SignText::toNBT));
|
||||
this.sign[x] = this.registerNBTComponent(new ComponentTag<SignText>("Text" + (x + 1), new SignText(x), SignText::serialize));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package exopandora.worldhandler.util;
|
||||
|
||||
import exopandora.worldhandler.builder.INBTWritable;
|
||||
import net.minecraft.nbt.INBT;
|
||||
import net.minecraft.nbt.StringNBT;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.StringTextComponent;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
@@ -7,7 +10,7 @@ import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class MutableStringTextComponent extends StringTextComponent
|
||||
public class MutableStringTextComponent extends StringTextComponent implements INBTWritable
|
||||
{
|
||||
private String text;
|
||||
|
||||
@@ -74,7 +77,19 @@ public class MutableStringTextComponent extends StringTextComponent
|
||||
return this.getStyle().getFormattingCode() + string;
|
||||
}
|
||||
|
||||
public String serialize()
|
||||
@Override
|
||||
public INBT serialize()
|
||||
{
|
||||
if(this.getUnformattedComponentText() != null && !this.getUnformattedComponentText().isEmpty())
|
||||
{
|
||||
return StringNBT.valueOf(this.toString());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
MutableStringTextComponent serial = (MutableStringTextComponent) this.deepCopy();
|
||||
serial.setText(MutableStringTextComponent.getSpecialFormattedText(this.getUnformattedComponentText()));
|
||||
|
||||
@@ -2,6 +2,8 @@ package exopandora.worldhandler.util;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import exopandora.worldhandler.builder.INBTWritable;
|
||||
import net.minecraft.nbt.INBT;
|
||||
import net.minecraft.nbt.StringNBT;
|
||||
import net.minecraft.util.text.event.ClickEvent;
|
||||
import net.minecraft.util.text.event.ClickEvent.Action;
|
||||
@@ -9,7 +11,7 @@ import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class SignText
|
||||
public class SignText implements INBTWritable
|
||||
{
|
||||
private MutableStringTextComponent text = new MutableStringTextComponent();
|
||||
private final int line;
|
||||
@@ -62,7 +64,8 @@ public class SignText
|
||||
return this.text.getStyle().getClickEvent() != null && this.text.getStyle().getClickEvent().getAction() == Action.RUN_COMMAND && this.text.getStyle().getClickEvent().getValue() != null;
|
||||
}
|
||||
|
||||
public StringNBT toNBT()
|
||||
@Override
|
||||
public INBT serialize()
|
||||
{
|
||||
return StringNBT.valueOf(this.toString());
|
||||
}
|
||||
@@ -80,6 +83,6 @@ public class SignText
|
||||
return this.text.getFormattedText();
|
||||
}
|
||||
|
||||
return this.text.serialize();
|
||||
return this.text.toString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user