示例#1
0
    public void Init(SimMap map)
    {
        this.map = map;

        map.mapListener         = this;
        gameObject.name         = map.id;
        transform.localPosition = Vector3.zero;

        mapValues = new Transform[map.sizeX * map.sizeY];

        Material mapMaterial = MaterialsFactory.CreateDiffuseColor(map.mapType.color);

        for (int x = 0; x < map.sizeX; x++)
        {
            for (int y = 0; y < map.sizeY; y++)
            {
                int   val   = map.Get(x, y);
                float scale = ((float)val) / ((float)map.mapType.capacity);

                SimVector3 pos = map.GetWorldPosition(x, y);

                GameObject goCube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                goCube.transform.parent        = transform;
                goCube.transform.localScale    = new Vector3(0.5f, scale, 0.5f);
                goCube.transform.localPosition = new Vector3(pos.x, pos.y + scale * 0.5f, pos.z);
                goCube.renderer.sharedMaterial = mapMaterial;
                mapValues[y * map.sizeX + x]   = goCube.transform;
            }
        }
    }
示例#2
0
    public void OnMapModified(SimMap map, int x, int y, int val)
    {
        float scale = ((float)val) / ((float)map.mapType.capacity);

        SimVector3 pos = map.GetWorldPosition(x, y);

        mapValues[y * map.sizeX + x].localScale    = new Vector3(0.5f, scale, 0.5f);
        mapValues[y * map.sizeX + x].localPosition = new Vector3(pos.x, pos.y + scale * 0.5f, pos.z);
    }
示例#3
0
    public void OnMapAdded(SimMap map)
    {
        GameObject goMap = new GameObject();

        goMap.transform.parent = mapsContainer;
        SimMapUnity mapUnity = goMap.AddComponent <SimMapUnity>();

        mapUnity.Init(map);

        mapsUnity.Add(mapUnity);
    }
示例#4
0
 public void OnMapRemoved(SimMap map)
 {
     for (int i = 0; i < mapsUnity.Count; i++)
     {
         if (mapsUnity[i].map == map)
         {
             GameObject.Destroy(mapsUnity[i].gameObject);
             mapsUnity.RemoveAt(i);
             break;
         }
     }
 }
    public SimMap AddMap(SimMapType mapType)
    {
        if (mapType == null)
        {
            throw new ArgumentNullException("mapType");
        }

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

        SimMap map = new SimMap();

        map.Init(mapType, this, gridSizeX, gridSizeY);

        maps.Add(map.id, map);

        boxListener.OnMapAdded(map);

        return(map);
    }
    public void RemoveMap(SimMap map)
    {
        maps.Remove(map.id);

        boxListener.OnMapRemoved(map);
    }
 public void OnMapRemoved(SimMap map)
 {
 }
 public void OnMapAdded(SimMap map)
 {
 }
 public void OnMapModified(SimMap map, int x, int y, int val)
 {
 }