public void RemoveBox(SimBox box)
 {
     if (boxes.Remove(box))
     {
         simulationListener.OnBoxRemoved(box);
     }
 }
    public void OnBoxAdded(SimBox box)
    {
        GameObject goBox = new GameObject();

        goBox.transform.parent = transform;
        SimBoxUnity boxUnity = goBox.AddComponent <SimBoxUnity>();

        boxUnity.Init(box);

        boxesUnity.Add(boxUnity);
    }
 public void OnBoxRemoved(SimBox box)
 {
     for (int i = 0; i < boxesUnity.Count; i++)
     {
         if (boxesUnity[i].box == box)
         {
             GameObject.Destroy(boxesUnity[i].gameObject);
             boxesUnity.RemoveAt(i);
             break;
         }
     }
 }
Ejemplo n.º 4
0
    public void Init(SimMapType mapType, SimBox box, int sizeX, int sizeY)
    {
        this.id      = mapType.id;
        this.mapType = mapType;
        this.box     = box;

        values = new int[sizeX * sizeY];

        this.sizeX = sizeX;
        this.sizeY = sizeY;

        context.box = box;
        context.mapPositionRadius = 0;
    }
Ejemplo n.º 5
0
    public void Init(SimBox box)
    {
        this.box = box;

        box.boxListener         = this;
        gameObject.name         = box.id;
        transform.localPosition = new Vector3(box.worldPosition.x, box.worldPosition.y, box.worldPosition.z);

        mapsContainer   = new GameObject("maps").transform;
        pathsContainer  = new GameObject("paths").transform;
        unitsContainer  = new GameObject("units").transform;
        agentsContainer = new GameObject("agents").transform;

        mapsContainer.parent   = transform;
        pathsContainer.parent  = transform;
        unitsContainer.parent  = transform;
        agentsContainer.parent = transform;

        mapsContainer.localPosition   = Vector3.zero;
        pathsContainer.localPosition  = Vector3.zero;
        unitsContainer.localPosition  = Vector3.zero;
        agentsContainer.localPosition = Vector3.zero;

        foreach (SimMap map in box.GetMaps())
        {
            OnMapAdded(map);
        }

        foreach (SimPath path in box.GetPaths())
        {
            OnPathAdded(path);
        }

        foreach (SimUnit unit in box.GetUnits())
        {
            OnUnitAdded(unit);
        }

        foreach (SimAgent agent in box.GetAgents())
        {
            OnAgentAdded(agent);
        }
    }
    // Use this for initialization
    void Start()
    {
        Simulation sim = new Simulation();

        sim.simulationDefinition = new SimulationDefinitionLoader().LoadDefinitionFromString(cityToTest.text);

        Init(sim);

        SimBox city = sim.AddBox("city", Vector3.zero, 32, 32);

        SimPath road = city.GetPath("Road");

        SimPoint p1 = road.AddPoint(new Vector3(20, 0, 20));
        SimPoint p2 = road.AddPoint(new Vector3(50, 0, 50));
        SimPoint p3 = road.AddPoint(new Vector3(20, 0, 50));

        SimSegment s1 = road.AddSegment(sim.simulationDefinition.GetSegmentType("Dirt"), p1, p2);
        SimSegment s2 = road.AddSegment(sim.simulationDefinition.GetSegmentType("Dirt"), p2, p3);
        SimSegment s3 = road.AddSegment(sim.simulationDefinition.GetSegmentType("Dirt"), p3, p1);

        SimSegmentPosition unitPos;

        unitPos.segment = s1;
        unitPos.offset  = 0.66f;

        city.AddUnit(sim.simulationDefinition.GetUnitType("Home"), unitPos);

        unitPos.segment = s1;
        unitPos.offset  = 0.5f;

        city.AddUnit(sim.simulationDefinition.GetUnitType("Home"), unitPos);

        unitPos.segment = s2;
        unitPos.offset  = 0.5f;

        city.AddUnit(sim.simulationDefinition.GetUnitType("Work"), unitPos);

        unitPos.segment = s3;
        unitPos.offset  = 0.5f;

        city.AddUnit(sim.simulationDefinition.GetUnitType("Work"), unitPos);
    }
    public SimBox AddBox(string id, SimVector3 center, int gridSizeX, int gridSizeY)
    {
        if (id == null)
        {
            throw new ArgumentNullException("id");
        }

        if (GetBox(id) != null)
        {
            throw new ArgumentException("Duplicated id", "id");
        }

        SimBox box = new SimBox();

        box.Init(id, center, this, gridSizeX, gridSizeY);

        boxes.Add(box);

        simulationListener.OnBoxAdded(box);

        return(box);
    }
Ejemplo n.º 8
0
 public void OnBoxRemoved(SimBox box)
 {
 }
Ejemplo n.º 9
0
 public void OnBoxAdded(SimBox box)
 {
 }
Ejemplo n.º 10
0
 public void Init(SimPathType pathType, SimBox box)
 {
     this.pathType = pathType;
     this.box      = box;
     this.id       = pathType.id;
 }