/** * Gets the energy stored in the item. Energy is stored using item NBT */ @Override public float getElectricityStored(ItemStack itemStack) { if (itemStack.getTagCompound() == null) { itemStack.setTagCompound(new NBTTagCompound()); } float energyStored = 0f; if (itemStack.getTagCompound().hasKey("electricity")) { NBTBase obj = itemStack.getTagCompound().getTag("electricity"); if (obj instanceof NBTTagDouble) { energyStored = ((NBTTagDouble) obj).func_150288_h(); } else if (obj instanceof NBTTagFloat) { energyStored = ((NBTTagFloat) obj).func_150288_h(); } } /** Sets the damage as a percentage to render the bar properly. */ itemStack.setItemDamage((int) (100 - energyStored / this.getMaxElectricityStored(itemStack) * 100)); return energyStored; }
private static void asJson(NBTBase tag, StringBuilder builder) { switch(tag.getId()) { case NBT.TAG_BYTE: builder.append(((NBTTagByte)tag).getByte()).append('b'); break; case NBT.TAG_SHORT: builder.append(((NBTTagShort)tag).getByte()).append('b'); break; case NBT.TAG_INT: builder.append(((NBTTagInt)tag).getInt()); break; case NBT.TAG_LONG: builder.append(((NBTTagLong)tag).getByte()).append('l'); break; case NBT.TAG_FLOAT: builder.append(((NBTTagFloat)tag).getFloat()).append('f'); break; case NBT.TAG_DOUBLE: builder.append(((NBTTagDouble)tag).getDouble()).append('d'); break; case NBT.TAG_STRING: builder.append('"').append(((NBTTagString)tag).getString()).append('"'); break; case NBT.TAG_BYTE_ARRAY: builder.append(Arrays.toString(((NBTTagByteArray)tag).getByteArray())); break; case NBT.TAG_INT_ARRAY: builder.append(Arrays.toString(((NBTTagIntArray)tag).getIntArray())); break; case NBT.TAG_COMPOUND: asJson((NBTTagCompound) tag, builder); break; case NBT.TAG_LIST: asJson((NBTTagList) tag, builder); break; } }
private static StringBuilder any(StringBuilder sb, NBTBase nbt) { switch (nbt.getId()) { case Constants.NBT.TAG_COMPOUND: return compound(sb, (NBTTagCompound) nbt); case Constants.NBT.TAG_LIST: return list(sb, (NBTTagList) nbt); case Constants.NBT.TAG_INT_ARRAY: return intArray(sb, (NBTTagIntArray) nbt); case Constants.NBT.TAG_STRING: return string(sb, (NBTTagString) nbt); case Constants.NBT.TAG_DOUBLE: return _double(sb, (NBTTagDouble) nbt); case Constants.NBT.TAG_FLOAT: return _float(sb, (NBTTagFloat) nbt); default: return other(sb, nbt); } }
/** Creates and returns a primitive NBT tag from a value. * If the value already is an NBT tag, it is returned instead. */ public static NBTBase createTag(Object value) { if (value == null) throw new IllegalArgumentException("value is null"); if (value instanceof NBTBase) return (NBTBase)value; if (value instanceof Byte) return new NBTTagByte((Byte)value); if (value instanceof Short) return new NBTTagShort((Short)value); if (value instanceof Integer) return new NBTTagInt((Integer)value); if (value instanceof Long) return new NBTTagLong((Long)value); if (value instanceof Float) return new NBTTagFloat((Float)value); if (value instanceof Double) return new NBTTagDouble((Double)value); if (value instanceof String) return new NBTTagString((String)value); if (value instanceof byte[]) return new NBTTagByteArray((byte[])value); if (value instanceof int[]) return new NBTTagIntArray((int[])value); throw new IllegalArgumentException("Can't create an NBT tag of value: " + value); }
public static Object getObject(NBTBase base) { if(base instanceof NBTTagByte) return ((NBTTagByte)base).func_150290_f(); if(base instanceof NBTTagShort) return ((NBTTagShort)base).func_150289_e(); if(base instanceof NBTTagInt) return ((NBTTagInt)base).func_150287_d(); if(base instanceof NBTTagLong) return ((NBTTagLong)base).func_150291_c(); if(base instanceof NBTTagFloat) return ((NBTTagFloat)base).func_150288_h(); if(base instanceof NBTTagDouble) return ((NBTTagDouble)base).func_150286_g(); if(base instanceof NBTTagByteArray) return ((NBTTagByteArray)base).func_150292_c(); if(base instanceof NBTTagString) return ((NBTTagString)base).func_150285_a_(); if(base instanceof NBTTagList) return base; if(base instanceof NBTTagCompound) return ((NBTTagCompound)base); if(base instanceof NBTTagIntArray) return ((NBTTagIntArray)base).func_150302_c(); return null; }
private static void setValidValue(Node<NamedNBT> node, String value){ NamedNBT named = node.getObject(); NBTBase base = named.getNBT(); if (base instanceof NBTTagByte) named.setNBT(new NBTTagByte(ParseHelper.parseByte(value))); if (base instanceof NBTTagShort) named.setNBT(new NBTTagShort(ParseHelper.parseShort(value))); if (base instanceof NBTTagInt) named.setNBT(new NBTTagInt(ParseHelper.parseInt(value))); if (base instanceof NBTTagLong) named.setNBT(new NBTTagLong(ParseHelper.parseLong(value))); if(base instanceof NBTTagFloat) named.setNBT(new NBTTagFloat(ParseHelper.parseFloat(value))); if(base instanceof NBTTagDouble) named.setNBT(new NBTTagDouble(ParseHelper.parseDouble(value))); if(base instanceof NBTTagByteArray) named.setNBT(new NBTTagByteArray(ParseHelper.parseByteArray(value))); if(base instanceof NBTTagIntArray) named.setNBT(new NBTTagIntArray(ParseHelper.parseIntArray(value))); if (base instanceof NBTTagString) named.setNBT(new NBTTagString(value)); }
public void func_70037_a(NBTTagCompound p_70037_1_) { this.field_70231_e = p_70037_1_.func_74765_d("xTile"); this.field_70228_f = p_70037_1_.func_74765_d("yTile"); this.field_70229_g = p_70037_1_.func_74765_d("zTile"); this.field_70237_h = p_70037_1_.func_74771_c("inTile") & 255; this.field_70238_i = p_70037_1_.func_74771_c("inGround") == 1; if(p_70037_1_.func_74764_b("direction")) { NBTTagList var2 = p_70037_1_.func_74761_m("direction"); this.field_70159_w = ((NBTTagDouble)var2.func_74743_b(0)).field_74755_a; this.field_70181_x = ((NBTTagDouble)var2.func_74743_b(1)).field_74755_a; this.field_70179_y = ((NBTTagDouble)var2.func_74743_b(2)).field_74755_a; } else { this.func_70106_y(); } }
/** * (abstract) Protected helper method to read subclass entity data from NBT. */ public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) { this.xTile = par1NBTTagCompound.getShort("xTile"); this.yTile = par1NBTTagCompound.getShort("yTile"); this.zTile = par1NBTTagCompound.getShort("zTile"); this.inTile = par1NBTTagCompound.getByte("inTile") & 255; this.inGround = par1NBTTagCompound.getByte("inGround") == 1; if (par1NBTTagCompound.hasKey("direction")) { NBTTagList nbttaglist = par1NBTTagCompound.getTagList("direction"); this.motionX = ((NBTTagDouble)nbttaglist.tagAt(0)).data; this.motionY = ((NBTTagDouble)nbttaglist.tagAt(1)).data; this.motionZ = ((NBTTagDouble)nbttaglist.tagAt(2)).data; } else { this.setDead(); } }
/** Gets the energy stored in the item. Energy is stored using item NBT */ @Override public float getElectricityStored(ItemStack itemStack) { if (itemStack.getTagCompound() == null) { itemStack.setTagCompound(new NBTTagCompound()); } float energyStored = 0f; if (itemStack.getTagCompound().hasKey("electricity")) { NBTBase obj = itemStack.getTagCompound().getTag("electricity"); if (obj instanceof NBTTagDouble) { energyStored = (float) ((NBTTagDouble) obj).data; } else if (obj instanceof NBTTagFloat) { energyStored = ((NBTTagFloat) obj).data; } } /** Sets the damage as a percentage to render the bar properly. */ itemStack.setItemDamage((int) (100 - (energyStored / this.getMaxElectricityStored(itemStack)) * 100)); return energyStored; }
public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) { this.xTile = par1NBTTagCompound.getShort("xTile"); this.yTile = par1NBTTagCompound.getShort("yTile"); this.zTile = par1NBTTagCompound.getShort("zTile"); this.inTile = par1NBTTagCompound.getByte("inTile") & 255; this.inGround = par1NBTTagCompound.getByte("inGround") == 1; if (par1NBTTagCompound.hasKey("direction")) { NBTTagList nbttaglist = par1NBTTagCompound.getTagList("direction"); this.motionX = ((NBTTagDouble)nbttaglist.tagAt(0)).data; this.motionY = ((NBTTagDouble)nbttaglist.tagAt(1)).data; this.motionZ = ((NBTTagDouble)nbttaglist.tagAt(2)).data; } else { this.setDead(); } }
/** Gets the energy stored in the item. Energy is stored using item NBT */ @Override public float getElectricityStored(ItemStack itemStack) { if (itemStack.getTagCompound() == null) { itemStack.setTagCompound(new NBTTagCompound()); } float energyStored = 0f; if (itemStack.getTagCompound().hasKey("electricity")) { NBTBase obj = itemStack.getTagCompound().getTag("electricity"); if (obj instanceof NBTTagDouble) { energyStored = (float) ((NBTTagDouble) obj).data; } else if (obj instanceof NBTTagFloat) { energyStored = ((NBTTagFloat) obj).data; } } /** Sets the damage as a percentage to render the bar properly. */ itemStack.setItemDamage((int) (100 - (energyStored / getMaxElectricityStored(itemStack)) * 100)); return energyStored; }
private void addEntitiesToWorld(World worldIn, BlockPos pos, Mirror mirrorIn, Rotation rotationIn, @Nullable StructureBoundingBox aabb) { for (Template.EntityInfo template$entityinfo : this.entities) { BlockPos blockpos = transformedBlockPos(template$entityinfo.blockPos, mirrorIn, rotationIn).add(pos); if (aabb == null || aabb.isVecInside(blockpos)) { NBTTagCompound nbttagcompound = template$entityinfo.entityData; Vec3d vec3d = transformedVec3d(template$entityinfo.pos, mirrorIn, rotationIn); Vec3d vec3d1 = vec3d.addVector((double)pos.getX(), (double)pos.getY(), (double)pos.getZ()); NBTTagList nbttaglist = new NBTTagList(); nbttaglist.appendTag(new NBTTagDouble(vec3d1.x)); nbttaglist.appendTag(new NBTTagDouble(vec3d1.y)); nbttaglist.appendTag(new NBTTagDouble(vec3d1.z)); nbttagcompound.setTag("Pos", nbttaglist); nbttagcompound.setUniqueId("UUID", UUID.randomUUID()); Entity entity; try { entity = EntityList.createEntityFromNBT(nbttagcompound, worldIn); } catch (Exception var15) { entity = null; } if (entity != null) { float f = entity.getMirroredYaw(mirrorIn); f = f + (entity.rotationYaw - entity.getRotatedYaw(rotationIn)); entity.setLocationAndAngles(vec3d1.x, vec3d1.y, vec3d1.z, f, entity.rotationPitch); worldIn.spawnEntity(entity); } } } }
private NBTTagList writeDoubles(double... values) { NBTTagList nbttaglist = new NBTTagList(); for (double d0 : values) { nbttaglist.appendTag(new NBTTagDouble(d0)); } return nbttaglist; }
/** * creates a NBT list from the array of doubles passed to this function */ protected NBTTagList newDoubleNBTList(double... numbers) { NBTTagList nbttaglist = new NBTTagList(); for (double d0 : numbers) { nbttaglist.appendTag(new NBTTagDouble(d0)); } return nbttaglist; }
private void addEntitiesToWorld(World worldIn, BlockPos pos, Mirror mirrorIn, Rotation rotationIn, @Nullable StructureBoundingBox aabb) { for (Template.EntityInfo template$entityinfo : this.entities) { BlockPos blockpos = transformedBlockPos(template$entityinfo.blockPos, mirrorIn, rotationIn).add(pos); if (aabb == null || aabb.isVecInside(blockpos)) { NBTTagCompound nbttagcompound = template$entityinfo.entityData; Vec3d vec3d = transformedVec3d(template$entityinfo.pos, mirrorIn, rotationIn); Vec3d vec3d1 = vec3d.addVector((double)pos.getX(), (double)pos.getY(), (double)pos.getZ()); NBTTagList nbttaglist = new NBTTagList(); nbttaglist.appendTag(new NBTTagDouble(vec3d1.xCoord)); nbttaglist.appendTag(new NBTTagDouble(vec3d1.yCoord)); nbttaglist.appendTag(new NBTTagDouble(vec3d1.zCoord)); nbttagcompound.setTag("Pos", nbttaglist); nbttagcompound.setUniqueId("UUID", UUID.randomUUID()); Entity entity; try { entity = EntityList.createEntityFromNBT(nbttagcompound, worldIn); } catch (Exception var15) { entity = null; } if (entity != null) { float f = entity.getMirroredYaw(mirrorIn); f = f + (entity.rotationYaw - entity.getRotatedYaw(rotationIn)); entity.setLocationAndAngles(vec3d1.xCoord, vec3d1.yCoord, vec3d1.zCoord, f, entity.rotationPitch); worldIn.spawnEntityInWorld(entity); } } } }
protected NBTTagList newDoubleNBTList(final double... par1ArrayOfDouble) { final NBTTagList nbttaglist = new NBTTagList(); for (final double d1 : par1ArrayOfDouble) { nbttaglist.appendTag((NBTBase)new NBTTagDouble(d1)); } return nbttaglist; }
public static Object getNBTBaseData(final NBTBase nbt) { if (nbt == null) { return null; } switch (nbt.getId()) { case 1: { return ((NBTTagByte)nbt).func_150290_f(); } case 2: { return ((NBTTagShort)nbt).func_150289_e(); } case 3: { return ((NBTTagInt)nbt).func_150287_d(); } case 4: { return ((NBTTagLong)nbt).func_150291_c(); } case 5: { return ((NBTTagFloat)nbt).func_150288_h(); } case 6: { return ((NBTTagDouble)nbt).func_150286_g(); } case 8: { return ((NBTTagString)nbt).func_150285_a_(); } case 10: { return nbt; } default: { return null; } } }
public static NBTBase getNBTBase(final Object o) { if (o instanceof Integer) { return (NBTBase)new NBTTagInt((Integer)o); } if (o instanceof Short) { return (NBTBase)new NBTTagShort((Short)o); } if (o instanceof Long) { return (NBTBase)new NBTTagLong((Long)o); } if (o instanceof String) { return (NBTBase)new NBTTagString((String)o); } if (o instanceof Double) { return (NBTBase)new NBTTagDouble((Double)o); } if (o instanceof Float) { return (NBTBase)new NBTTagFloat((Float)o); } if (o instanceof NBTTagCompound) { return (NBTBase)o; } if (o instanceof Byte) { return (NBTBase)new NBTTagByte((Byte)o); } LogHelper.debug("Can't find type for " + o, new Object[0]); throw null; }
protected NBTTagList newDoubleNBTList(double... par1ArrayOfDouble) { NBTTagList nbttaglist = new NBTTagList(); double[] adouble = par1ArrayOfDouble; int i = par1ArrayOfDouble.length; for (int j = 0; j < i; ++j) { double d1 = adouble[j]; nbttaglist.appendTag(new NBTTagDouble(d1)); } return nbttaglist; }
private Map<Class<? extends NBTBase>, NbtMerger<? extends NBTBase>> getMergers() { if (mergers == null) { mergers = new HashMap<>(); registerMerger(NBTTagByte.class, new NbtByteMerger(this)); registerMerger(NBTTagCompound.class, new NbtCompoundMerger(this)); registerMerger(NBTTagDouble.class, new NbtDoubleMerger(this)); registerMerger(NBTTagFloat.class, new NbtFloatMerger(this)); registerMerger(NBTTagInt.class, new NbtIntMerger(this)); registerMerger(NBTTagList.class, new NbtListMerger(this)); registerMerger(NBTTagLong.class, new NbtLongMerger(this)); registerMerger(NBTTagShort.class, new NbtShortMerger(this)); registerMerger(NBTTagString.class, new NbtStringMerger(this)); } return mergers; }
public static Number toLua(NBTPrimitive nbt) { checkNotNull(nbt, "nbt == null!"); if (nbt instanceof NBTTagDouble) return ((NBTTagDouble) nbt).getDouble(); if (nbt instanceof NBTTagFloat) return ((NBTTagFloat) nbt).getDouble(); return nbt.getLong(); }
@Override public NBTTagDouble merge(NBTTagDouble nbt, Object data, String key, String path) { if (data instanceof Number) { return NbtConverter.toNbt(((Number) data).doubleValue()); } throw converter.conversionException(path, data, "number"); }
@Override public void setText(String text) { this.text = text; try { double value = Double.parseDouble(text); list.set(index, new NBTTagDouble(value)); this.valid = true; } catch(NumberFormatException ex) { valid = false; } }
/** * Converts a {@link JsonElement} into an {@link NBTBase} * * @param element the {@link JsonElement} to convert * @return the converted {@link NBTBase} */ public static NBTBase toNBTElement(JsonElement element) { if (element.isJsonArray()) { NBTTagList list = new NBTTagList(); for (JsonElement elem : element.getAsJsonArray()) list.appendTag(toNBTElement(elem)); return list; } else if (element.isJsonObject()) { NBTTagCompound compound = new NBTTagCompound(); for (Map.Entry<String, JsonElement> entry : element.getAsJsonObject().entrySet()) compound.setTag(entry.getKey(), toNBTElement(entry.getValue())); return compound; } else if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isNumber()) { Number num = element.getAsJsonPrimitive().getAsNumber(); if (num instanceof Byte) return new NBTTagByte(num.byteValue()); else if (num instanceof Short) return new NBTTagShort(num.shortValue()); else if (num instanceof Integer) return new NBTTagInt(num.intValue()); else if (num instanceof Long) return new NBTTagLong(num.longValue()); else if (num instanceof Float) return new NBTTagFloat(num.floatValue()); else if (num instanceof Double) return new NBTTagDouble(num.doubleValue()); else return new NBTTagDouble(num.doubleValue()); } else if (element.isJsonPrimitive() && element.getAsJsonPrimitive().isString()) return new NBTTagString(element.getAsJsonPrimitive().getAsString()); else return null; }
/** * Reads an unknown object withPriority a known name from NBT * @param tag - tag to read the value from * @param key - name of the value * @return object or suggestionValue if nothing is found */ public Object load(NBTTagCompound tag, String key) { if (tag != null && key != null) { NBTBase saveTag = tag.getTag(key); if (saveTag instanceof NBTTagFloat) { return tag.getFloat(key); } else if (saveTag instanceof NBTTagDouble) { return tag.getDouble(key); } else if (saveTag instanceof NBTTagInt) { return tag.getInteger(key); } else if (saveTag instanceof NBTTagString) { if (tag.getBoolean(key + "::nova.isBigInteger")) { return new BigInteger(tag.getString(key)); } else if (tag.getBoolean(key + "::nova.isBigDecimal")) { return new BigDecimal(tag.getString(key)); } else { return tag.getString(key); } } else if (saveTag instanceof NBTTagShort) { return tag.getShort(key); } else if (saveTag instanceof NBTTagByte) { if (tag.getBoolean(key + "::nova.isBoolean")) { return tag.getBoolean(key); } else { return tag.getByte(key); } } else if (saveTag instanceof NBTTagLong) { return tag.getLong(key); } else if (saveTag instanceof NBTTagByteArray) { return tag.getByteArray(key); } else if (saveTag instanceof NBTTagIntArray) { return tag.getIntArray(key); } else if (saveTag instanceof NBTTagCompound) { NBTTagCompound innerTag = tag.getCompoundTag(key); return toNova(innerTag); } } return null; }
/** * creates a NBT list from the array of doubles passed to this function */ protected NBTTagList newDoubleNBTList(double ... p_70087_1_) { NBTTagList nbttaglist = new NBTTagList(); double[] adouble = p_70087_1_; int i = p_70087_1_.length; for (int j = 0; j < i; ++j) { double d1 = adouble[j]; nbttaglist.appendTag(new NBTTagDouble(d1)); } return nbttaglist; }
/** * creates a NBT list from the array of doubles passed to this function */ protected NBTTagList newDoubleNBTList(double ... par1ArrayOfDouble) { NBTTagList var2 = new NBTTagList(); double[] var3 = par1ArrayOfDouble; int var4 = par1ArrayOfDouble.length; for (int var5 = 0; var5 < var4; ++var5) { double var6 = var3[var5]; var2.appendTag(new NBTTagDouble(var6)); } return var2; }
/** Returns the primitive value of a tag, casted to the return type. */ public static <T> T getTagValue(NBTBase tag) { if (tag == null) throw new IllegalArgumentException("tag is null"); if (tag instanceof NBTTagByte) return (T)(Object)((NBTTagByte)tag).func_150290_f(); if (tag instanceof NBTTagShort) return (T)(Object)((NBTTagShort)tag).func_150289_e(); if (tag instanceof NBTTagInt) return (T)(Object)((NBTTagInt)tag).func_150287_d(); if (tag instanceof NBTTagLong) return (T)(Object)((NBTTagLong)tag).func_150291_c(); if (tag instanceof NBTTagFloat) return (T)(Object)((NBTTagFloat)tag).func_150288_h(); if (tag instanceof NBTTagDouble) return (T)(Object)((NBTTagDouble)tag).func_150286_g(); if (tag instanceof NBTTagString) return (T)((NBTTagString)tag).func_150285_a_(); if (tag instanceof NBTTagByteArray) return (T)((NBTTagByteArray)tag).func_150292_c(); if (tag instanceof NBTTagIntArray) return (T)((NBTTagIntArray)tag).func_150302_c(); throw new IllegalArgumentException(NBTBase.NBTTypes[tag.getId()] + " isn't a primitive NBT tag"); }