Search in sources :

Example 1 with FloatTag

use of com.github.steveice10.opennbt.tag.builtin.FloatTag in project ViaVersion by ViaVersion.

the class EntityPackets method createEndEntry.

private static CompoundTag createEndEntry() {
    CompoundTag tag = new CompoundTag();
    tag.put("piglin_safe", new ByteTag((byte) 0));
    tag.put("natural", new ByteTag((byte) 0));
    tag.put("ambient_light", new FloatTag(0));
    tag.put("infiniburn", new StringTag("minecraft:infiniburn_end"));
    tag.put("respawn_anchor_works", new ByteTag((byte) 0));
    tag.put("has_skylight", new ByteTag((byte) 0));
    tag.put("bed_works", new ByteTag((byte) 0));
    tag.put("fixed_time", new LongTag(6000));
    tag.put("has_raids", new ByteTag((byte) 1));
    tag.put("name", new StringTag("minecraft:the_end"));
    tag.put("logical_height", new IntTag(256));
    tag.put("shrunk", new ByteTag((byte) 0));
    tag.put("ultrawarm", new ByteTag((byte) 0));
    tag.put("has_ceiling", new ByteTag((byte) 0));
    return tag;
}
Also used : StringTag(com.github.steveice10.opennbt.tag.builtin.StringTag) FloatTag(com.github.steveice10.opennbt.tag.builtin.FloatTag) ByteTag(com.github.steveice10.opennbt.tag.builtin.ByteTag) CompoundTag(com.github.steveice10.opennbt.tag.builtin.CompoundTag) IntTag(com.github.steveice10.opennbt.tag.builtin.IntTag) LongTag(com.github.steveice10.opennbt.tag.builtin.LongTag)

Example 2 with FloatTag

use of com.github.steveice10.opennbt.tag.builtin.FloatTag in project ViaVersion by ViaVersion.

the class EntityPackets method addSharedOverwaldEntries.

private static void addSharedOverwaldEntries(CompoundTag tag) {
    tag.put("piglin_safe", new ByteTag((byte) 0));
    tag.put("natural", new ByteTag((byte) 1));
    tag.put("ambient_light", new FloatTag(0));
    tag.put("infiniburn", new StringTag("minecraft:infiniburn_overworld"));
    tag.put("respawn_anchor_works", new ByteTag((byte) 0));
    tag.put("has_skylight", new ByteTag((byte) 1));
    tag.put("bed_works", new ByteTag((byte) 1));
    tag.put("has_raids", new ByteTag((byte) 1));
    tag.put("logical_height", new IntTag(256));
    tag.put("shrunk", new ByteTag((byte) 0));
    tag.put("ultrawarm", new ByteTag((byte) 0));
}
Also used : StringTag(com.github.steveice10.opennbt.tag.builtin.StringTag) FloatTag(com.github.steveice10.opennbt.tag.builtin.FloatTag) ByteTag(com.github.steveice10.opennbt.tag.builtin.ByteTag) IntTag(com.github.steveice10.opennbt.tag.builtin.IntTag)

Example 3 with FloatTag

use of com.github.steveice10.opennbt.tag.builtin.FloatTag in project DragonProxy by DragonetMC.

the class ItemBlockTranslator method translateRawNBT.

@SuppressWarnings("unchecked")
public static org.dragonet.common.data.nbt.tag.CompoundTag translateRawNBT(int id, Tag pcTag, org.dragonet.common.data.nbt.tag.CompoundTag target) {
    if (pcTag != null) {
        String name = pcTag.getName() != null ? pcTag.getName() : "";
        if (target == null)
            target = new org.dragonet.common.data.nbt.tag.CompoundTag(name);
        switch(pcTag.getClass().getSimpleName()) {
            case "ByteArrayTag":
                target.putByteArray(name, (byte[]) pcTag.getValue());
                break;
            case "ByteTag":
                target.putByte(name, (byte) pcTag.getValue());
                break;
            case "DoubleTag":
                target.putDouble(name, (double) pcTag.getValue());
                break;
            case "FloatTag":
                target.putFloat(name, (float) pcTag.getValue());
                break;
            case "IntArrayTag":
                target.putIntArray(name, (int[]) pcTag.getValue());
                break;
            case "IntTag":
                target.putInt(name, (int) pcTag.getValue());
                break;
            case "LongTag":
                target.putLong(name, (long) pcTag.getValue());
                break;
            case "ShortTag":
                target.putShort(name, (short) pcTag.getValue());
                break;
            case "StringTag":
                target.putString(name, (String) pcTag.getValue());
                break;
            case "CompoundTag":
                for (String subName : ((CompoundTag) pcTag).getValue().keySet()) translateRawNBT(0, ((CompoundTag) pcTag).getValue().get(subName), target);
                break;
            case "ListTag":
                ListTag listTag = new ListTag();
                for (Tag subTag : (List<Tag>) pcTag.getValue()) listTag.add(translateRawNBT(0, subTag, new org.dragonet.common.data.nbt.tag.CompoundTag()));
                target.putList(listTag);
                break;
            default:
                System.out.println("TAG not implemented : " + pcTag.getClass().getSimpleName());
                break;
        }
    }
    return target;
}
Also used : List(java.util.List) IntTag(com.github.steveice10.opennbt.tag.builtin.IntTag) StringTag(com.github.steveice10.opennbt.tag.builtin.StringTag) ListTag(org.dragonet.common.data.nbt.tag.ListTag) Tag(com.github.steveice10.opennbt.tag.builtin.Tag) CompoundTag(com.github.steveice10.opennbt.tag.builtin.CompoundTag) ListTag(org.dragonet.common.data.nbt.tag.ListTag) CompoundTag(com.github.steveice10.opennbt.tag.builtin.CompoundTag)

Example 4 with FloatTag

use of com.github.steveice10.opennbt.tag.builtin.FloatTag in project ViaVersion by ViaVersion.

the class EntityPackets method createNetherEntry.

private static CompoundTag createNetherEntry() {
    CompoundTag tag = new CompoundTag();
    tag.put("piglin_safe", new ByteTag((byte) 1));
    tag.put("natural", new ByteTag((byte) 0));
    tag.put("ambient_light", new FloatTag(0.1F));
    tag.put("infiniburn", new StringTag("minecraft:infiniburn_nether"));
    tag.put("respawn_anchor_works", new ByteTag((byte) 1));
    tag.put("has_skylight", new ByteTag((byte) 0));
    tag.put("bed_works", new ByteTag((byte) 0));
    tag.put("fixed_time", new LongTag(18000));
    tag.put("has_raids", new ByteTag((byte) 0));
    tag.put("name", new StringTag("minecraft:the_nether"));
    tag.put("logical_height", new IntTag(128));
    tag.put("shrunk", new ByteTag((byte) 1));
    tag.put("ultrawarm", new ByteTag((byte) 1));
    tag.put("has_ceiling", new ByteTag((byte) 1));
    return tag;
}
Also used : StringTag(com.github.steveice10.opennbt.tag.builtin.StringTag) FloatTag(com.github.steveice10.opennbt.tag.builtin.FloatTag) ByteTag(com.github.steveice10.opennbt.tag.builtin.ByteTag) CompoundTag(com.github.steveice10.opennbt.tag.builtin.CompoundTag) IntTag(com.github.steveice10.opennbt.tag.builtin.IntTag) LongTag(com.github.steveice10.opennbt.tag.builtin.LongTag)

Example 5 with FloatTag

use of com.github.steveice10.opennbt.tag.builtin.FloatTag in project ViaVersion by ViaVersion.

the class TagStringReader method scalar.

/**
 * A tag that is definitely some sort of scalar.
 *
 * <p>Does not detect quoted strings, so those should have been parsed already.</p>
 *
 * @return a parsed tag
 */
private Tag scalar() {
    final StringBuilder builder = new StringBuilder();
    int noLongerNumericAt = -1;
    while (this.buffer.hasMore()) {
        char current = this.buffer.peek();
        if (current == '\\') {
            // escape -- we are significantly more lenient than original format at the moment
            this.buffer.advance();
            current = this.buffer.take();
        } else if (Tokens.id(current)) {
            this.buffer.advance();
        } else {
            // end of value
            break;
        }
        builder.append(current);
        if (noLongerNumericAt == -1 && !Tokens.numeric(current)) {
            noLongerNumericAt = builder.length();
        }
    }
    final int length = builder.length();
    final String built = builder.toString();
    if (noLongerNumericAt == length) {
        final char last = built.charAt(length - 1);
        try {
            switch(// try to read and return as a number
            Character.toLowerCase(last)) {
                case Tokens.TYPE_BYTE:
                    return new ByteTag(Byte.parseByte(built.substring(0, length - 1)));
                case Tokens.TYPE_SHORT:
                    return new ShortTag(Short.parseShort(built.substring(0, length - 1)));
                case Tokens.TYPE_INT:
                    return new IntTag(Integer.parseInt(built.substring(0, length - 1)));
                case Tokens.TYPE_LONG:
                    return new LongTag(Long.parseLong(built.substring(0, length - 1)));
                case Tokens.TYPE_FLOAT:
                    final float floatValue = Float.parseFloat(built.substring(0, length - 1));
                    if (Float.isFinite(floatValue)) {
                        // don't accept NaN and Infinity
                        return new FloatTag(floatValue);
                    }
                    break;
                case Tokens.TYPE_DOUBLE:
                    final double doubleValue = Double.parseDouble(built.substring(0, length - 1));
                    if (Double.isFinite(doubleValue)) {
                        // don't accept NaN and Infinity
                        return new DoubleTag(doubleValue);
                    }
                    break;
            }
        } catch (final NumberFormatException ignored) {
        }
    } else if (noLongerNumericAt == -1) {
        // if we run out of content without an explicit value separator, then we're either an integer or string tag -- all others have a character at the end
        try {
            return new IntTag(Integer.parseInt(built));
        } catch (final NumberFormatException ex) {
            if (built.indexOf('.') != -1) {
                try {
                    return new DoubleTag(Double.parseDouble(built));
                } catch (final NumberFormatException ex2) {
                // ignore
                }
            }
        }
    }
    if (built.equalsIgnoreCase(Tokens.LITERAL_TRUE)) {
        return new ByteTag((byte) 1);
    } else if (built.equalsIgnoreCase(Tokens.LITERAL_FALSE)) {
        return new ByteTag((byte) 0);
    }
    return new StringTag(built);
}
Also used : StringTag(com.github.steveice10.opennbt.tag.builtin.StringTag) DoubleTag(com.github.steveice10.opennbt.tag.builtin.DoubleTag) ShortTag(com.github.steveice10.opennbt.tag.builtin.ShortTag) FloatTag(com.github.steveice10.opennbt.tag.builtin.FloatTag) ByteTag(com.github.steveice10.opennbt.tag.builtin.ByteTag) IntTag(com.github.steveice10.opennbt.tag.builtin.IntTag) LongTag(com.github.steveice10.opennbt.tag.builtin.LongTag)

Aggregations

IntTag (com.github.steveice10.opennbt.tag.builtin.IntTag)5 StringTag (com.github.steveice10.opennbt.tag.builtin.StringTag)5 ByteTag (com.github.steveice10.opennbt.tag.builtin.ByteTag)4 FloatTag (com.github.steveice10.opennbt.tag.builtin.FloatTag)4 CompoundTag (com.github.steveice10.opennbt.tag.builtin.CompoundTag)3 LongTag (com.github.steveice10.opennbt.tag.builtin.LongTag)3 DoubleTag (com.github.steveice10.opennbt.tag.builtin.DoubleTag)1 ShortTag (com.github.steveice10.opennbt.tag.builtin.ShortTag)1 Tag (com.github.steveice10.opennbt.tag.builtin.Tag)1 List (java.util.List)1 ListTag (org.dragonet.common.data.nbt.tag.ListTag)1