com.tjtolley.roborally.game.Course.java Source code

Java tutorial

Introduction

Here is the source code for com.tjtolley.roborally.game.Course.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.tjtolley.roborally.game;

import com.google.common.collect.Lists;
import java.util.List;
import java.util.Map;

/**
 *
 * @author tyler
 */
public class Course {
    private final List<PlacedBoard> boards;
    private final List<Position> flags;
    private final List<Position> startingPositions;

    public Course(List<PlacedBoard> boards, List<Position> flags, List<Position> startingPositions) {
        this.boards = boards;
        this.flags = flags;
        this.startingPositions = startingPositions;
    }

    public static Course fromCourseMap(Map<String, Object> courseMap) {
        List<Map<String, Object>> placedBoards = (List<Map<String, Object>>) courseMap.get("placedBoards");
        List<PlacedBoard> boards = Lists.newArrayList();
        for (Map<String, Object> boardDefinition : placedBoards) {
            final Map<String, Object> positionOffset = (Map<String, Object>) boardDefinition
                    .get("boardStartOffset");
            boards.add(new PlacedBoard(
                    BoardDefinition.fromBoardMap((Map<String, Object>) boardDefinition.get("boardDefinition")),
                    new Position((Integer) positionOffset.get("x"), (Integer) positionOffset.get("y"))));
        }
        return new Course(boards, Lists.<Position>newArrayList(), Lists.<Position>newArrayList());
    }

    public static class PlacedBoard {
        private final BoardDefinition boardDefinition;
        private final Position boardStartOffset;

        public PlacedBoard(BoardDefinition boardDefinition, Position boardStartOffset) {
            this.boardDefinition = boardDefinition;
            this.boardStartOffset = boardStartOffset;
        }

        public BoardDefinition getBoardDefinition() {
            return boardDefinition;
        }

        public Position getBoardStartOffset() {
            return boardStartOffset;
        }

    }

}