@Override public String getAsString(String name) { return map.getAsJsonPrimitive(name).getAsString(); }
private static String defensivelyGetString(JsonObject obj, String key) { return obj.has(key) ? obj.getAsJsonPrimitive(key).getAsString() : ""; } }
private void setString(Consumer<String> setter, JsonObject jsonObject, String name) { JsonPrimitive primitive = jsonObject.getAsJsonPrimitive(name); if (primitive != null) { setter.accept(primitive.getAsString()); } }
@Override public double getAsDouble(String name) { return map.getAsJsonPrimitive(name).getAsDouble(); }
@Override public float getAsFloat(String name) { return map.getAsJsonPrimitive(name).getAsFloat(); }
@Override public boolean getAsBoolean(String name) { return map.getAsJsonPrimitive(name).getAsBoolean(); }
@Override public int getAsInteger(String name) { return map.getAsJsonPrimitive(name).getAsInt(); }
@Override public long getAsLong(String name) { return map.getAsJsonPrimitive(name).getAsLong(); }
public Optional<Boolean> optBoolean(String property) { if (jsonObject.has(property)) { try { return Optional.of(jsonObject.getAsJsonPrimitive(property).getAsBoolean()); } catch (Exception e) { throw haltBecausePropertyIsNotAJsonBoolean(property, jsonObject); } } return Optional.empty(); }
private void setFloat(Consumer<Float> setter, JsonObject jsonObject, String name) { JsonPrimitive primitive = jsonObject.getAsJsonPrimitive(name); if (primitive != null && primitive.isNumber()) { setter.accept(primitive.getAsFloat()); } }
private void setByte(Consumer<Byte> setter, JsonObject jsonObject, String name) { JsonPrimitive primitive = jsonObject.getAsJsonPrimitive(name); if (primitive != null && primitive.isNumber()) { setter.accept(primitive.getAsByte()); } }
private void setBoolean(Consumer<Boolean> setter, JsonObject jsonObject, String name) { JsonPrimitive primitive = jsonObject.getAsJsonPrimitive(name); if (primitive != null && primitive.isBoolean()) { setter.accept(primitive.getAsBoolean()); } }
private void setInt(Consumer<Integer> setter, JsonObject jsonObject, String name) { JsonPrimitive primitive = jsonObject.getAsJsonPrimitive(name); if (primitive != null && primitive.isNumber()) { setter.accept(primitive.getAsInt()); } }
String name = entry.getAsJsonPrimitive("name").getAsString();
final JsonPrimitive sha256Primitive = checksumList.getAsJsonPrimitive("sha256"); final String sha1 = checksumList.getAsJsonPrimitive("sha1").getAsString(); final String sha256 = sha256Primitive == null ? null : sha256Primitive.getAsString(); final String md5 = checksumList.getAsJsonPrimitive("md5").getAsString(); final String downloadUri = jsonElement.getAsJsonObject().getAsJsonPrimitive("downloadUri").getAsString(); final String path = jsonElement.getAsJsonObject().getAsJsonPrimitive("path").getAsString();
metadata.shader = obj.getAsJsonPrimitive("shader").getAsString();
private BlockFamilyDefinitionData createBaseData(JsonObject jsonObject) { JsonPrimitive basedOn = jsonObject.getAsJsonPrimitive("basedOn"); if (basedOn != null && !basedOn.getAsString().isEmpty()) { Optional<BlockFamilyDefinition> baseDef = assetManager.getAsset(basedOn.getAsString(), BlockFamilyDefinition.class); if (baseDef.isPresent()) { BlockFamilyDefinitionData data = baseDef.get().getData(); if (data.getBlockFamily() == FreeformFamily.class) { data.setBlockFamily(null); } return data; } else { throw new JsonParseException("Unable to resolve based block definition '" + basedOn.getAsString() + "'"); } } BlockFamilyDefinitionData data = new BlockFamilyDefinitionData(); data.getBaseSection().setSounds(assetManager.getAsset("engine:default", BlockSounds.class).get()); return data; } }
@Override public EntityData.GlobalStore deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { EntityData.GlobalStore.Builder world = EntityData.GlobalStore.newBuilder(); if (json.isJsonObject()) { JsonObject jsonObject = json.getAsJsonObject(); JsonArray prefabArray = jsonObject.getAsJsonArray("prefab"); if (prefabArray != null) { for (JsonElement prefabElem : prefabArray) { world.addPrefab((EntityData.Prefab) context.deserialize(prefabElem, EntityData.Prefab.class)); } } JsonArray entityArray = jsonObject.getAsJsonArray("entity"); if (entityArray != null) { for (JsonElement entityElem : entityArray) { world.addEntity((EntityData.Entity) context.deserialize(entityElem, EntityData.Entity.class)); } } JsonPrimitive nextId = jsonObject.getAsJsonPrimitive("next_entity_id"); if (nextId != null) { world.setNextEntityId(nextId.getAsInt()); } } return world.build(); } }
@Override public BlockShapeData deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { BlockShapeData shape = new BlockShapeData(); JsonObject shapeObj = json.getAsJsonObject(); if (shapeObj.has(DISPLAY_NAME)) { shape.setDisplayName(shapeObj.getAsJsonPrimitive(DISPLAY_NAME).getAsString()); } for (BlockPart part : BlockPart.values()) { if (shapeObj.has(part.toString().toLowerCase(Locale.ENGLISH))) { JsonObject meshObj = shapeObj.getAsJsonObject(part.toString().toLowerCase(Locale.ENGLISH)); shape.setMeshPart(part, (BlockMeshPart) context.deserialize(meshObj, BlockMeshPart.class)); if (part.isSide() && meshObj.has(FULL_SIDE)) { shape.setBlockingSide(part.getSide(), meshObj.get(FULL_SIDE).getAsBoolean()); } } } if (shapeObj.has(COLLISION) && shapeObj.get(COLLISION).isJsonObject()) { JsonObject collisionInfo = shapeObj.get(COLLISION).getAsJsonObject(); processCollision(context, shape, collisionInfo); } else { shape.setCollisionShape(COLLISION_SHAPE_FACTORY.getNewUnitCube()); shape.setCollisionSymmetric(true); } return shape; }
private void processColliders(JsonDeserializationContext context, JsonArray colliderArray, BlockShapeData shape) { List<ColliderInfo> colliders = Lists.newArrayList(); for (JsonElement elem : colliderArray) { if (elem.isJsonObject()) { JsonObject colliderObj = elem.getAsJsonObject(); if (colliderObj.has(TYPE) && colliderObj.get(TYPE).isJsonPrimitive() && colliderObj.getAsJsonPrimitive(TYPE).isString()) { String type = colliderObj.get(TYPE).getAsString(); if (AABB.equals(type)) { colliders.add(processAABBShape(context, colliderObj)); } else if (SPHERE.equals(type)) { colliders.add(processSphereShape(context, colliderObj)); } } } } if (colliders.size() > 1) { ColliderInfo info = processCompoundShape(colliders); shape.setCollisionShape(info.collisionShape); shape.setCollisionOffset(info.offset); } else if (colliders.size() == 1) { shape.setCollisionShape(colliders.get(0).collisionShape); shape.setCollisionOffset(colliders.get(0).offset); } else { shape.setCollisionShape(COLLISION_SHAPE_FACTORY.getNewUnitCube()); shape.setCollisionOffset(new Vector3f(0, 0, 0)); shape.setCollisionSymmetric(true); } }