Exemple #1
0
 static void Main(string[] args)
 {
     HouseBuilding c = new HouseBuilding();
     object o = c.getMinimum(new string[] {});
     PrintObj(o);
     System.Console.In.ReadLine();
 }
 public static void Postfix(HouseBuilding __instance)
 {
     if (__instance.State == HouseBuilding.HouseConstructionState.Waiting)
     {
         if (StageScript.Instance.LocalPlayer.IsFarmOwner)
         {
             Traverse.Create(__instance).Field("constructionTimeElapsed").SetValue(__instance.Definition.ConstructionStepInterval);
         }
     }
 }
Exemple #3
0
 public static void Postfix(HouseBuilding __instance)
 {
     if (IsLoadFarm())
     {
         if (mod.Enabled)
         {
             if (__instance.State == HouseBuilding.HouseConstructionState.Waiting)
             {
                 Traverse.Create(__instance).Field("constructionTimeElapsed").SetValue(__instance.Definition.ConstructionStepInterval);
             }
         }
     }
 }
Exemple #4
0
    void Awake()
    {
        if (!isAdult)
        {
            // Turn child
            transform.localScale = new Vector3(0.3f, 0.3f, 1f);
            moveSpeed            = 0;
            bornDuration         = 6f;
        }
        // Find center and warehouse
        CenterEntity[] centers = (CenterEntity[])FindObjectsOfType(typeof(CenterEntity));
        if (centers.Length > 0)
        {
            center = centers[0];
        }
        WarehouseEntity[] warehouses = (WarehouseEntity[])FindObjectsOfType(typeof(WarehouseEntity));
        if (warehouses.Length > 0)
        {
            warehouse = warehouses[0];
        }

        HouseBuilding[] houses = (HouseBuilding[])FindObjectsOfType(typeof(HouseBuilding));
        foreach (HouseBuilding hos in houses)
        {
            if (hos.full || !hos.blueprint.done)
            {
                continue;
            }
            if (hos.addAgent())
            {
                house = hos;
                break;
            }
        }

        // No house, add house request
        if (house == null)
        {
            Building building = new Building("Prefabs/Buildings/House", 100, 100, 3, 1);
            center.addNewBuildingRequest(building);
        }
    }
Exemple #5
0
    void Start()
    {
        ressources = new Dictionary <ressource, int>();
        foreach (ressource res in ressource.GetValues(typeof(ressource)))
        {
            ressources.Add(res, 0);
        }
        days = 0;

        MakeTile(0, 0, true);

        storageHutBuilding   = new StorageHutBuilding();
        storageHutButtonText = storageHutButton.GetComponentInChildren <Text>();
        firePitBuilding      = new FirePitBuilding();
        firePitButtonText    = firePitButton.GetComponentInChildren <Text>();
        houseBuilding        = new HouseBuilding();
        houseButtonText      = houseButton.GetComponentInChildren <Text>();
        kitchenBuilding      = new KitchenBuilding();
        kitchenButtonText    = kitchenButton.GetComponentInChildren <Text>();
        monumentBuilding     = new MonumentBuilding();
        monumentButtonText   = monumentButton.GetComponentInChildren <Text>();
    }
Exemple #6
0
        static void Main(string[] args)
        {
            HouseBuilding houseBuilding = new HouseBuilding();

            houseBuilding.startBuilding();
        }
    // Flood fill technique to check house size and find the outer line for wall checking
    public static bool FloorFloodFill(Vector2Int firstTile, TileBase[] wallTiles, TileBase[] floorTiles, TileBase[] doorTiles, Tilemap tilemap, /*Temporary Value*/ TileBase whiteTile, Tilemap houseTilemap, TileBase[] roofTiles)
    {
        // Stack that expands and shrinks as you find more elements
        Stack <Vector2Int> existFloor = new Stack <Vector2Int>();
        // Temporary stack that holds checked floor coordinates
        Stack <Vector2Int> checkedFloor    = new Stack <Vector2Int>();
        Stack <TileBase>   floorTilesStack = new Stack <TileBase>(floorTiles);

        existFloor.Push(firstTile);

        while (existFloor.Count > 0)
        {
            Vector2Int pos = existFloor.Pop();
            if (!checkedFloor.Contains(new Vector2Int(pos.x, pos.y)))
            {
                for (int y = -1; y <= 1; y++)
                {
                    for (int x = -1; x <= 1; x++)
                    {
                        if (floorTilesStack.Contains(tilemap.GetTile(new Vector3Int(pos.x + x, pos.y + y, 0))))
                        {
                            existFloor.Push(new Vector2Int(pos.x + x, pos.y + y));
                        }
                    }
                }
                checkedFloor.Push(new Vector2Int(pos.x, pos.y));
            }
        }
        // returns true if building is surrounded by walls

        Vector2Int[] wallPos = HouseBuilding.FloorEdgeFound(checkedFloor, wallTiles, floorTiles, doorTiles, tilemap);

        if (wallPos.Length <= 0)
        {
            return(false);
        }
        Debug.Log("Still going!");
        // bool to make sure a door is built

        // if house is missing a door it won't build
        bool doorCheck = false;

        //Checks that a door is placed to be able to enter the house
        for (int i = 0; i < wallPos.Length; i++)
        {
            for (int j = 0; j < doorTiles.Length; j++)
            {
                if (tilemap.GetTile(new Vector3Int(wallPos[i].x, wallPos[i].y, 0)) == doorTiles[j])
                {
                    doorCheck = true;
                }
            }
        }
        // returns false and won't build the home if door isnt recognized
        if (!doorCheck)
        {
            return(false);
        }

        Stack <Vector2Int> roofPos = BuildWalls(wallTiles, doorTiles, floorTiles, wallPos, tilemap, whiteTile, houseTilemap);

        GetRoofTilePosition(wallTiles, floorTiles, roofTiles, tilemap, /* TEMPORARY VARIABLE */ whiteTile, houseTilemap, roofPos);

        return(true);
    }
 private static Boolean KawigiEdit_RunTest(int testNum, string[] p0, Boolean hasAnswer, int p1)
 {
     Console.Write("Test " + testNum + ": [" + "{");
     for (int i = 0; p0.Length > i; ++i) {
         if (i > 0) {
             Console.Write(",");
         }
         Console.Write("\"" + p0[i] + "\"");
     }
     Console.Write("}");
     Console.WriteLine("]");
     HouseBuilding obj;
     int answer;
     obj = new HouseBuilding();
     DateTime startTime = DateTime.Now;
     answer = obj.getMinimum(p0);
     DateTime endTime = DateTime.Now;
     Boolean res;
     res = true;
     Console.WriteLine("Time: " + (endTime - startTime).TotalSeconds + " seconds");
     if (hasAnswer) {
         Console.WriteLine("Desired answer:");
         Console.WriteLine("\t" + p1);
     }
     Console.WriteLine("Your answer:");
     Console.WriteLine("\t" + answer);
     if (hasAnswer) {
         res = answer == p1;
     }
     if (!res) {
         Console.WriteLine("DOESN'T MATCH!!!!");
     } else if ((endTime - startTime).TotalSeconds >= 2) {
         Console.WriteLine("FAIL the timeout");
         res = false;
     } else if (hasAnswer) {
         Console.WriteLine("Match :-)");
     } else {
         Console.WriteLine("OK, but is it right?");
     }
     Console.WriteLine("");
     return res;
 }
 public override void SetBuilding(Building building)
 {
     this.building = (HouseBuilding)building;
 }