Files
CustomNPC-Plus/src/main/java/kamkeel/npcs/controllers/data/Slot.java
T

114 lines
3.0 KiB
Java
Raw Normal View History

2025-01-29 13:20:04 -05:00
package kamkeel.npcs.controllers.data;
2025-01-23 16:10:01 -05:00
import net.minecraft.nbt.NBTTagCompound;
2025-02-21 17:30:57 -05:00
import noppes.npcs.api.handler.data.ISlot;
2025-01-23 16:10:01 -05:00
2025-02-20 21:39:02 -05:00
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
2025-01-23 16:10:01 -05:00
2025-02-20 21:39:02 -05:00
public class Slot implements ISlot {
2025-01-23 16:10:01 -05:00
private int id;
private String name;
private long lastLoaded;
2025-02-20 21:39:02 -05:00
private boolean temporary;
private Map<String, NBTTagCompound> components = new HashMap<>();
2025-01-23 16:10:01 -05:00
public Slot(int id, String name) {
this.id = id;
this.name = name;
}
2025-02-20 21:39:02 -05:00
public Slot(int id, String name, long lastLoaded, boolean temporary, Map<String, NBTTagCompound> components) {
2025-01-23 16:10:01 -05:00
this.id = id;
this.name = name;
2025-02-20 21:39:02 -05:00
this.lastLoaded = lastLoaded;
2025-02-18 06:25:09 -05:00
this.temporary = temporary;
2025-02-20 21:39:02 -05:00
this.components = components;
2025-01-23 16:10:01 -05:00
}
2025-02-20 21:39:02 -05:00
@Override
2025-01-23 16:10:01 -05:00
public int getId() {
return id;
}
2025-02-20 21:39:02 -05:00
2025-01-23 16:10:01 -05:00
public void setId(int id) {
this.id = id;
}
2025-02-20 21:39:02 -05:00
@Override
2025-01-23 16:10:01 -05:00
public String getName() {
return name;
}
2025-02-20 21:39:02 -05:00
@Override
2025-01-23 16:10:01 -05:00
public void setName(String name) {
this.name = name;
}
2025-02-20 21:39:02 -05:00
@Override
2025-01-23 16:10:01 -05:00
public long getLastLoaded() {
return lastLoaded;
}
2025-02-20 21:39:02 -05:00
@Override
public void setLastLoaded(long time) {
this.lastLoaded = time;
2025-01-23 16:10:01 -05:00
}
2025-02-20 21:39:02 -05:00
@Override
2025-02-18 06:25:09 -05:00
public boolean isTemporary() {
return temporary;
}
2025-02-20 21:39:02 -05:00
@Override
2025-02-18 06:25:09 -05:00
public void setTemporary(boolean temporary) {
this.temporary = temporary;
}
2025-01-23 16:10:01 -05:00
2025-02-20 21:39:02 -05:00
@Override
public Map<String, NBTTagCompound> getComponents() {
return components;
}
@Override
public void setComponentData(String key, NBTTagCompound data) {
components.put(key, data);
}
@Override
public NBTTagCompound getComponentData(String key) {
return components.get(key);
}
@Override
2025-01-23 16:10:01 -05:00
public NBTTagCompound toNBT() {
NBTTagCompound slotNBT = new NBTTagCompound();
slotNBT.setString("Name", name);
slotNBT.setLong("LastLoaded", lastLoaded);
2025-02-18 06:25:09 -05:00
slotNBT.setBoolean("Temporary", temporary);
2025-02-20 21:39:02 -05:00
NBTTagCompound compCompound = new NBTTagCompound();
for (Map.Entry<String, NBTTagCompound> entry : components.entrySet()) {
compCompound.setTag(entry.getKey(), entry.getValue());
}
slotNBT.setTag("Components", compCompound);
2025-01-23 16:10:01 -05:00
return slotNBT;
}
public static Slot fromNBT(int id, NBTTagCompound slotNBT) {
String name = slotNBT.getString("Name");
long lastLoaded = slotNBT.getLong("LastLoaded");
2025-02-20 21:39:02 -05:00
boolean temporary = slotNBT.getBoolean("Temporary");
Slot slot = new Slot(id, name);
slot.setLastLoaded(lastLoaded);
slot.setTemporary(temporary);
if (slotNBT.hasKey("Components")) {
NBTTagCompound compCompound = slotNBT.getCompoundTag("Components");
Set<String> keys = compCompound.func_150296_c();
for (String key : keys) {
slot.setComponentData(key, compCompound.getCompoundTag(key));
}
}
return slot;
2025-01-23 16:10:01 -05:00
}
}