@Override public BranchFunction rotate() { BranchFunction rotatedBranch = new BranchFunction(); rotatedBranch.x = z; rotatedBranch.y = y; rotatedBranch.z = -x; rotatedBranch.branches = branches; rotatedBranch.branchChances = branchChances; rotatedBranch.branchRotations = new ArrayList<Rotation>(); for (Rotation rotation : branchRotations) { rotatedBranch.branchRotations.add(Rotation.next(rotation)); } return rotatedBranch; }
@Override public void load(List<String> args) throws InvalidConfigException { assureSize(6, args); x = readInt(args.get(0), -32, 32); y = readInt(args.get(1), -64, 64); z = readInt(args.get(2), -32, 32); branches = new ArrayList<CustomObject>(); branchRotations = new ArrayList<Rotation>(); branchChances = new ArrayList<Integer>(); for (int i = 3; i < args.size() - 2; i += 3) { CustomObject object = getHolder().otherObjectsInDirectory.get(args.get(i).toLowerCase()); if (object == null) { throw new InvalidConfigException( "The branch " + args.get(i) + " was not found. Make sure to place it in the same directory."); } branches.add(object); branchRotations.add(Rotation.getRotation(args.get(i + 1))); branchChances.add(readInt(args.get(i + 2), 1, 100)); } }