예제 #1
0
    public void CreateTemplateTileBlocks(TileMap givenMap)
    {
        for (int x = 0; x < givenMap.xSize; x++)
        {
            for (int y = 0; y < givenMap.ySize; y++)
            {
                Tile       linkedTile = givenMap.GetTileAt(x, y);
                GameObject holder     = TileMapController.Instance.tileMapPlacer.GetHolderForTileMap(givenMap);
                EcoBlock   linkedEB   = linkedTile.linkedEcoBlock;
                TileBlock  tileBlock  = Instantiate(tileBlockPrefab);
                GameObject blockObj   = tileBlock.gameObject;
                blockObj.transform.SetParent(holder.transform);
                tileBlock.xCoord     = x;
                tileBlock.yCoord     = y;
                tileBlock.linkedTile = linkedTile;
                blockObj.name        = "TileBlock X" + x + " Y" + y;
                blockObj.GetComponent <SpriteRenderer>().sortingLayerName = "TileBlockAboveUI";
                //TODO: More elegant way of UI scaling than below check
                if (UIController.Instance.currentSection == UIController.Section.World && UIController.Instance.worldUI.explorePanelActive == true)
                {
                    blockObj.transform.localPosition = new Vector3(x / mainCanvas.transform.localScale.x, y / mainCanvas.transform.localScale.y, 0);
                    blockObj.transform.localScale    = new Vector3(10 / holder.transform.localScale.x, 10 / holder.transform.localScale.y, 0);
                }
                else
                {
                    blockObj.transform.localPosition = new Vector3(x, y, 0);
                }

                TileMapController.Instance.activeTemplateTileMapBlocksList.Add(blockObj);

                foreach (Building.BuildingType sub in buildingTemplateOutputSpritePairing.Keys)
                {
                    if (givenMap.GetTileAt(x, y).tileBuildingType == sub)
                    {
                        blockObj.GetComponent <SpriteRenderer>().sprite = buildingTemplateOutputSpritePairing[sub];
                    }
                }
            }
        }
    }
예제 #2
0
 public virtual void ConfigureStep(EcoBlock ecoblock)
 {
 }
예제 #3
0
 public virtual void ResolveStep(EcoBlock ecoblock)
 {
 }
예제 #4
0
 public virtual void  CycleStep(EcoBlock ecoblock)
 {
 }
예제 #5
0
 public override void ConfigureStep(EcoBlock ecoblock)
 {
     Ruler ruler = (Ruler)ecoblock;
 }
예제 #6
0
 public override void ResolveStep(EcoBlock ecoblock)
 {
     Ruler ruler = (Ruler)ecoblock;
 }
예제 #7
0
 public override void CycleStep(EcoBlock ecoblock)
 {
     Ruler ruler = (Ruler)ecoblock;
 }
예제 #8
0
 public void SetLinkedEcoBlock(EcoBlock ecoBlock)
 {
     tileEcoBlockType = ecoBlock.blockType;
     linkedEcoBlock   = ecoBlock;
 }
예제 #9
0
 public override void ConfigureStep(EcoBlock ecoblock)
 {
     Population population = (Population)ecoblock;
 }
예제 #10
0
    public void CreateSchematicTileBlocks(TileMap givenMap)
    {
        for (int x = 0; x < givenMap.xSize; x++)
        {
            for (int y = 0; y < givenMap.ySize; y++)
            {
                Tile       linkedTile = givenMap.GetTileAt(x, y);
                GameObject holder     = TileMapController.Instance.tileMapPlacer.GetHolderForTileMap(givenMap);
                bool       tileDrawn  = false;
                EcoBlock   linkedEB   = linkedTile.linkedEcoBlock;
                TileBlock  tileBlock  = Instantiate(tileBlockPrefab);
                GameObject blockObj   = tileBlock.gameObject;
                blockObj.transform.SetParent(holder.transform);
                tileBlock.xCoord     = x;
                tileBlock.yCoord     = y;
                tileBlock.linkedTile = linkedTile;
                blockObj.name        = "TileBlock X" + x + " Y" + y;
                blockObj.GetComponent <SpriteRenderer>().sortingLayerName = "TileBlockAboveUI";
                if (givenMap.onlyUsedInUICanvas == true)
                {
                    blockObj.transform.localPosition = new Vector3(x / mainCanvas.transform.localScale.x, y / mainCanvas.transform.localScale.y, 0);
                    blockObj.transform.localScale    = new Vector3(20 / holder.transform.localScale.x, 20 / holder.transform.localScale.y, 0);
                }
                else
                {
                    blockObj.transform.localPosition = new Vector3(x, y, 0);
                }

                TileMapController.Instance.activeSchematicTileMapBlocksList.Add(blockObj);

                foreach (World.WorldElement type in worldElementSpritePairings.Keys)
                {
                    if (type != World.WorldElement.Unassigned && tileDrawn == false && linkedTile.tileWorldElementType == type)
                    {
                        if (type == World.WorldElement.Location)
                        {
                            if (SpriteCollection.Instance.locationSubTypePairings.ContainsKey(linkedTile.linkedLocation.GetLocationSubType()))
                            {
                                blockObj.GetComponent <SpriteRenderer>().sprite = SpriteCollection.Instance.locationSubTypePairings[linkedTile.linkedLocation.GetLocationSubType()];
                            }
                            else
                            {
                                blockObj.GetComponent <SpriteRenderer>().sprite = SpriteCollection.Instance.locationTypePairings[linkedTile.linkedLocation.GetLocationType()];
                            }

                            blockObj.transform.localScale *= 3;
                        }
                        else
                        {
                            blockObj.GetComponent <SpriteRenderer>().sprite = worldElementSpritePairings[type];
                        }
                        tileDrawn = true;
                    }
                }

                foreach (EcoBlock.BlockType type in ecoBlockSpritePairings.Keys)
                {
                    if (type != EcoBlock.BlockType.Unassigned && tileDrawn == false && linkedTile.tileEcoBlockType == type)
                    {
                        blockObj.GetComponent <SpriteRenderer>().sprite = ecoBlockSpritePairings[type];
                        tileDrawn = true;
                    }
                }
                if (linkedTile.tileEcoBlockType == EcoBlock.BlockType.Ruler)
                {
                    blockObj.GetComponent <SpriteRenderer>().sprite = ecoBlockHierarchySpritePairings[RulerController.Instance.GetRulerFromID(linkedEB.blockID).rulerHierarchy];
                }
            }
        }
    }
예제 #11
0
 public override void ResolveStep(EcoBlock ecoblock)
 {
     Population population = (Population)ecoblock;
 }
예제 #12
0
 public override void ConfigureStep(EcoBlock ecoblock)
 {
     Territory territory = (Territory)ecoblock;
 }
예제 #13
0
 public override void ResolveStep(EcoBlock ecoblock)
 {
     Territory territory = (Territory)ecoblock;
 }
예제 #14
0
 public override void ConfigureStep(EcoBlock ecoblock)
 {
     Warband warband = (Warband)ecoblock;
 }
예제 #15
0
 public override void ResolveStep(EcoBlock ecoblock)
 {
     Warband warband = (Warband)ecoblock;
 }