Example #1
0
 public void Copy(MapObjInfo MapInfo)
 {
     m_eMapObjectType = MapInfo.m_eMapObjectType;
     m_nDurability    = MapInfo.m_nDurability;
     m_nCrashDamage   = MapInfo.m_nCrashDamage;
     m_Score          = MapInfo.m_Score;
 }
Example #2
0
 public MapObjInfo()
 {
     m_eMapObjectType = eMapObjectType.MOT_MAX;
     m_nDurability    = 0;
     m_nCrashDamage   = 0;
     m_Score          = 0;
 }
Example #3
0
    public void CreateMapObject(int tileX, int tileY, eMapObjectType type, string name)
    {
        TileSystem tileSystem = TileSystem.Instance;
        GameObject prefab     = GetPrefabByType(type);
        GameObject go         = Instantiate(prefab);

        go.InitTransformAsChild(tileSystem.GetTilemap(eTilemapType.GROUND).transform);
        eTileLayer layer     = eTileLayer.NONE;
        MapObject  mapObject = null;

        switch (type)
        {
        case eMapObjectType.ITEM:
            ItemObject itemObject = go.AddComponent <ItemObject>();
            Item       item       = Resources.Load <Item>("Items/" + name);
            itemObject.Init(item);

            mapObject = itemObject;
            layer     = eTileLayer.ITEM;
            break;
        }

        TileCell tileCell = tileSystem.GetTileCell(tileX, tileY);

        if (null != tileCell)
        {
            tileCell.SetObject(mapObject, layer);
        }
    }
Example #4
0
 public void SetMapObjectType(eMapObjectType type)
 {
     _objectType = type;
     tag         = type.ToString();
     foreach (Transform child in transform)
     {
         child.tag = tag;
     }
 }
Example #5
0
    GameObject GetPrefabByType(eMapObjectType type)
    {
        switch (type)
        {
        case eMapObjectType.ITEM:
            return(Resources.Load <GameObject>("Prefabs/Item/ItemPrefab"));

        default:
            break;
        }
        return(null);
    }
Example #6
0
    public MapObject FindObjectByType(eMapObjectType mapObjectType, eTileLayer layer)
    {
        List <MapObject> mapObjects = _mapObjectListByLayer[(int)layer];

        for (int i = 0; i < mapObjects.Count; i++)
        {
            if (mapObjectType == mapObjects[i].GetMapObjectType())
            {
                return(mapObjects[i]);
            }
        }
        return(null);
    }
Example #7
0
    public HashSet <MapObject> FindObjectsByRange(eMapObjectType type, eTileLayer layer, TileCell center, int range = 1)
    {
        int minX = center.GetTileX() - range;
        int minY = center.GetTileY() - range;
        int maxX = center.GetTileX() + range;
        int maxY = center.GetTileY() + range;

        if (minX < 0)
        {
            minX = 0;
        }
        if (minY < 0)
        {
            minY = 0;
        }
        if (_width <= maxX)
        {
            maxX = _width;
        }
        if (_height <= maxY)
        {
            maxY = _height;
        }

        HashSet <MapObject> mapObjects = new HashSet <MapObject>();

        for (int y = minY; y <= maxY; y++)
        {
            for (int x = minX; x <= maxX; x++)
            {
                var mapObject = GetTileCell(x, y)?.FindObjectByType(type, layer);
                if (null != mapObject)
                {
                    mapObjects.Add(mapObject);
                }
            }
        }

        if (0 == mapObjects.Count)
        {
            return(null);
        }
        return(mapObjects);
    }