예제 #1
0
  private Attachment readAttachment(Skin skin, String name, JsonValue map) {
    name = map.getString("name", name);

    AttachmentType type =
        AttachmentType.valueOf(map.getString("type", AttachmentType.region.name()));
    Attachment attachment = attachmentLoader.newAttachment(skin, type, name);

    if (attachment instanceof RegionSequenceAttachment) {
      RegionSequenceAttachment regionSequenceAttachment = (RegionSequenceAttachment) attachment;

      float fps = map.getFloat("fps");
      regionSequenceAttachment.setFrameTime(fps);

      String modeString = map.getString("mode");
      regionSequenceAttachment.setMode(
          modeString == null ? Mode.forward : Mode.valueOf(modeString));
    }

    if (attachment instanceof RegionAttachment) {
      RegionAttachment regionAttachment = (RegionAttachment) attachment;
      regionAttachment.setX(map.getFloat("x", 0) * scale);
      regionAttachment.setY(map.getFloat("y", 0) * scale);
      regionAttachment.setScaleX(map.getFloat("scaleX", 1));
      regionAttachment.setScaleY(map.getFloat("scaleY", 1));
      regionAttachment.setRotation(map.getFloat("rotation", 0));
      regionAttachment.setWidth(map.getFloat("width", 32) * scale);
      regionAttachment.setHeight(map.getFloat("height", 32) * scale);
      regionAttachment.updateOffset();
    }

    return attachment;
  }