Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-12-27 03:12:37 +01:00
Added NBT field to BaseEntity.
Dieser Commit ist enthalten in:
Ursprung
33e641d5f2
Commit
19c43a2834
@ -19,8 +19,79 @@
|
|||||||
|
|
||||||
package com.sk89q.worldedit.entity;
|
package com.sk89q.worldedit.entity;
|
||||||
|
|
||||||
|
import com.sk89q.jnbt.CompoundTag;
|
||||||
|
import com.sk89q.jnbt.StringTag;
|
||||||
|
import com.sk89q.jnbt.Tag;
|
||||||
|
import com.sk89q.worldedit.world.DataException;
|
||||||
|
import com.sk89q.worldedit.world.NbtValued;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A snapshot of an entity that can be reused and passed around.
|
* A snapshot of an entity that can be reused and passed around.
|
||||||
*/
|
*/
|
||||||
public class BaseEntity {
|
public class BaseEntity implements NbtValued {
|
||||||
|
|
||||||
|
private CompoundTag nbtData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new entity with the given entity ID.
|
||||||
|
*
|
||||||
|
* @param id the ID of the entity, which determines its type
|
||||||
|
*/
|
||||||
|
public BaseEntity(String id) {
|
||||||
|
checkNotNull(id);
|
||||||
|
Map<String, Tag> map = new HashMap<String, Tag>();
|
||||||
|
map.put("id", new StringTag("id", id));
|
||||||
|
this.nbtData = new CompoundTag("", map);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new entity with the given NBT data.
|
||||||
|
*
|
||||||
|
* @param nbtData the NBT data
|
||||||
|
*/
|
||||||
|
public BaseEntity(CompoundTag nbtData) {
|
||||||
|
checkNotNull(nbtData);
|
||||||
|
this.nbtData = nbtData;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ID of the entity, which determines the type of entity.
|
||||||
|
* An example of an entity ID would be "CaveSpider".
|
||||||
|
*
|
||||||
|
* @return the entity ID, which may be an empty string
|
||||||
|
*/
|
||||||
|
public String getEntityId() {
|
||||||
|
CompoundTag nbtData = getNbtData();
|
||||||
|
if (nbtData == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
Tag idTag = nbtData.getValue().get("id");
|
||||||
|
if (idTag != null && idTag instanceof StringTag) {
|
||||||
|
return ((StringTag) idTag).getValue();
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasNbtData() {
|
||||||
|
return getNbtData() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompoundTag getNbtData() {
|
||||||
|
return nbtData;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNbtData(CompoundTag nbtData) throws DataException {
|
||||||
|
checkNotNull(nbtData);
|
||||||
|
this.nbtData = nbtData;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren