예제 #1
0
        private void OnClick(Vector2 _)
        {
            if (!_isPositionValid)
            {
                return;
            }

            _gameModel.City.Build(_buildingTemplate.Config, _currentX, _currentY);
            Built?.Invoke(_buildingTemplate, _currentX, _currentY);
            CreateRandomTemplate();
        }
예제 #2
0
    protected GameObject GenerateBuilt(Vector3 pos, Built built)
    {
        GameObject g = GetBuiltObject(built);

        g.transform.parent    = this.transform;
        g.transform.position += LocalPos(pos) + firstPos;

        g.transform.localScale = vec.vec3(
            g.transform.localScale.x * blockSize.x,
            g.transform.localScale.y * blockSize.y,
            g.transform.localScale.z * blockSize.z);
        return(g);
    }
예제 #3
0
        private void OnBuilt(BuildingView building, int x, int y)
        {
            for (int i = x; i < x + building.Config.Width; i++)
            {
                for (int j = y; j < y + building.Config.Length; j++)
                {
                    _cells[i, j].SetColorMode(true);
                }
            }

            _buildings.Add(building);
            Built?.Invoke(building);
        }
예제 #4
0
 public string BuildQuery()
 {
     for (var i = IndexParameters.Count - 1; i >= 0; i--)
     {
         var indStr = IndexParameters[i];
         if (!Parameters.ContainsKey(i))
         {
             throw new Exception("no se ha definido un valor para el parámetro " + i);
         }
         var param = Parameters[i];
         Built = Built.Substring(0, indStr) + param + Built.Substring(indStr + 1);
     }
     return(Built);
 }
예제 #5
0
        public void Build(BuildingConfig buildingConfig, int x, int y)
        {
            var building = new Building(buildingConfig);
            var maxX     = x + buildingConfig.Width;
            var maxY     = y + buildingConfig.Length;

            for (int i = x; i < maxX; i++)
            {
                for (int j = y; j < maxY; j++)
                {
                    Cells[i, j].Build(building);
                }
            }

            _buildings.Add(building);

            TotalPower += building.Power;

            Built?.Invoke(building);
        }
예제 #6
0
    public GameObject GetBuiltObject(Built built)
    {
        GameObject g = GameObject.CreatePrimitive(PrimitiveType.Cube);

        g.transform.position = vec.vec3(0, 0, 0);
        g.transform.Rotate(0, 0, 0);
        g.transform.localScale = vec.vec3(1, 1, 1);
        if (builtsMaterial != null && builtsMaterial.Count > (int)built && builtsMaterial[(int)built] != null)
        {
            g.GetComponent <Renderer>().material = builtsMaterial[(int)built];
        }
        g.name = "_StageObject";

        switch (built)
        {
        case Built.NULL:
            g.transform.localScale *= 0;
            break;

        case Built.N1:
            g.transform.localScale = vec.vec3(0.8f, 0.05f, 0.8f);
            break;

        case Built.N2:
            g.transform.localScale = vec.vec3(1, 1, 1);
            break;

        case Built.N3:
            g.transform.Rotate(0, 45, 0);
            g.transform.localScale = vec.vec3(1 / 1.41f, 1 / 1.41f, 1 / 1.41f);
            break;

        default:
            g.transform.localScale = vec.vec3(1, 1, 1);
            break;
        }
        return(g);
    }
예제 #7
0
 public bool Fix(Built.Text.Lib.Constraint goal)
 {
     if (!base.Rx.Matches(goal))
     {
         base.Rx.Filter(goal.getFilter());
         this.Format(goal.getFormat());
     }
     return base.Rx.Matches(goal);
 }
예제 #8
0
 public void Clean(Built.Text.Lib.Constraint desiredPattern)
 {
     base.Rx.Filter(desiredPattern.getFilter());
 }