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; }
public MapObjInfo() { m_eMapObjectType = eMapObjectType.MOT_MAX; m_nDurability = 0; m_nCrashDamage = 0; m_Score = 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); } }
public void SetMapObjectType(eMapObjectType type) { _objectType = type; tag = type.ToString(); foreach (Transform child in transform) { child.tag = tag; } }
GameObject GetPrefabByType(eMapObjectType type) { switch (type) { case eMapObjectType.ITEM: return(Resources.Load <GameObject>("Prefabs/Item/ItemPrefab")); default: break; } return(null); }
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); }
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); }