Esempio n. 1
0
        public void SyncCityData(List <BuildingData> buildings)
        {
            var msg = new BuildingList();

            msg.Data.AddRange(buildings);
            SceneServer.Instance.ServerControl.SyncSceneBuilding(EnumAllPlayerId(), msg);
        }
    public void Awake()
    {
        var noiseGenerator = new NoiseGenerator(
            Mathf.RoundToInt(terrain.terrainData.size.x),
            Mathf.RoundToInt(terrain.terrainData.size.z)
            );

        //lists
        var buildingList = new BuildingList();
        var personList   = new PersonList();

        peopleManager.Init(personList);

        var mapGenerator = new MapGenerator(terrain.terrainData, noiseGenerator, buildingList, personList);

        mapGenerator.Generate();

        var terrainHitter = new TerrainHitter();

        cameraManager.Init(terrainHitter);
        var terrainPositionsFromCameraBoundariesGetter = new TerrainPositionsFromCameraBoundariesGetter(terrainHitter, cameraComponent);

        //displayers
        var buildingsDisplayer = new BuildingsDisplayer(objectPoolerManager, buildingList);
        var peopleDisplayer    = new PeopleDisplayer(objectPoolerManager, personList);

        objectPoolerDisplayer.Init(terrainPositionsFromCameraBoundariesGetter, buildingsDisplayer, peopleDisplayer);
    }
Esempio n. 3
0
        public void FillAddresses()
        {
            comboBox1.Items.Clear();
            Filters f = new Filters();

            f[Filters.FREE] = "1";
            _buildings      = Engine.db().getBuildings(f);
            if (_buildings.Count == 0)
            {
                MessageBox.Show(@"Не возможно пересадить, т.к. все клетки заняты.
Освободите одну или несколько клеток и попробуйте снова.", "Нет свободных клеток", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                this.DialogResult = DialogResult.Cancel;
                this.Close();
                return;
            }
            foreach (Building b in _buildings)
            {
                for (int i = 0; i < b.Sections; i++)
                {
                    if (b.Busy[i].ID == 0)
                    {
                        comboBox1.Items.Add(b.MedName(i));
                    }
                }
            }
            comboBox1.Sorted        = true;
            comboBox1.SelectedIndex = 0;
        }
Esempio n. 4
0
        public MapView(Game game)
            : base(game)
        {
            PlayerList players = ((XnaUITestGame)game).Model.GetScenario().GetGameWorld().GetPlayerList();

            foreach (PlayerComponent player in players.GetChildren())
            {
                UnitList unitList = player.GetUnitList();
                unitList.UnitAddedEvent   += onUnitAdded;
                unitList.UnitRemovedEvent += onUnitRemoved;
                ZRTSCompositeViewUIFactory factory = ZRTSCompositeViewUIFactory.Instance;
                foreach (UnitComponent unit in unitList.GetChildren())
                {
                    UnitUI unitUI = factory.BuildUnitUI(unit);
                    unitUI.DrawBox = new Rectangle((int)(unit.PointLocation.X * cellDimension), (int)(unit.PointLocation.Y * cellDimension), unitUI.DrawBox.Width, unitUI.DrawBox.Height);
                    AddChild(unitUI);
                    componentToUI.Add(unit, unitUI);
                    unit.MovedEventHandlers     += updateLocationOfUnit;
                    unit.HPChangedEventHandlers += killUnit;
                }
                BuildingList buildingList = player.BuildingList;
                foreach (Building b in buildingList.GetChildren())
                {
                    BuildingUI buildingUI = factory.BuildBuildingUI(b);
                    buildingUI.DrawBox = new Rectangle((int)b.PointLocation.X * cellDimension, (int)b.PointLocation.Y * cellDimension, buildingUI.DrawBox.Width, buildingUI.DrawBox.Height);
                    AddChild(buildingUI);
                }
                buildingList.BuildingAddedEventHandlers += this.onBuildingAdded;
            }
            leftButtonStrategy = new DrawSelectionBoxStrategy(this);
            OnClick           += moveSelectedUnits;
        }
Esempio n. 5
0
 /**
  *  Look for building components as children of the city gameobject and add them to buildingList
  *
  */
 public void Setup(AreaBuildingFactory _areaBuildingFactory)
 {
     // Setup personList
     PersonList.Setup();
     BuildingList.Setup(this);
     areaBuildingFactory = _areaBuildingFactory;
 }
        public ActionResult GetBuildingListNext(int companyId, int buildingId)
        {
            var buildings = db.Building.OrderByDescending(item => item.Id).Where(item => item.Id < buildingId && (item.CreateUserId == 1 || item.CompanyId == companyId)).Take(12);
            List <BuildingList> buildingList = new List <BuildingList>();

            foreach (Building building in buildings)
            {
                BuildingList buildingIndex = new BuildingList();
                buildingIndex.BuildingId   = building.Id;
                buildingIndex.BuildingName = building.BuildingName;

                string       id     = building.Id.ToString();
                UpdateRecord record = db.UpdateRecord.Where(item => item.BuildingId == id).FirstOrDefault();
                if (record == null)
                {
                    record            = new UpdateRecord();
                    record.BuildingId = id;
                    record.UpdateTime = DateTime.Now;
                    db.UpdateRecord.Add(record);
                    db.SaveChanges();
                }
                buildingIndex.UpdateTime = record.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss");

                buildingIndex.BuildingIndex = ConfigurationManager.AppSettings["ResourceUrl"] + building.BuildingIndex;
                buildingList.Add(buildingIndex);
            }
            return(Json(new { data = buildingList }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="worker"></param>
        /// <param name="resource"></param>
        public void FetchResource(int workerId, int buildingId)
        {
            if (buildingId == 0 || workerId == 0)
            {
                throw new ArgumentNullException($"Manager FetchResource: workerId = {workerId} or buildingId = {buildingId} is missing");
            }

            // TODO: faire un try/catch pour valider le workerId comme étant un Id de Worker
            var worker   = PopulationList.FirstOrDefault(wk => wk.Id == workerId) as Worker;
            var building = BuildingList.FirstOrDefault(bld => bld.Id == buildingId) as PassiveBuilding;

            if (building == null || worker == null)
            {
                throw new ArgumentException("Manager FetchResource: workerId or buildingId does not exist");
            }

            // Annule la tâche en cours
            CancelTask(workerId);

            // Créé la tâche de collecter les ressources
            worker.FetchResource(building);

            // Capte l'evénement de collecte de ressources par ce worker
            worker.ResourceCollected += OnWorkerCompletedCollect;
            // worker.ResourceFetched += AddResourcesToStock;
        }
Esempio n. 8
0
        public ActionResult Island(int id)
        {
            ApplicationUser user   = userRepository.GetUser(User.Identity.GetUserId());
            Island          island = islandRepository.GetIsland(id);

            if (!island.Game.PlayerIsActive(user))
            {
                return(RedirectToAction("GameList", "Home"));
            }
            CyclicProduct.CalculateGame(island.Game.Id);
            IslandViewModel viewModel = new IslandViewModel();

            viewModel.EmptyIsland = island.Property == null;
            if (!viewModel.EmptyIsland)
            {
                viewModel.YourIsland = island.Property.Player.Id == user.Id;
                viewModel.Property   = island.Property;
            }
            viewModel.Island = island;
            if (viewModel.YourIsland)
            {
                viewModel.Resources = island.Resources;
            }
            viewModel.Coins     = userGamePropertyRepository.GetUserGameProperty(user, island.Game).Coins;
            viewModel.Buildings = island.Buildings;
            BuildingList buildings = new BuildingList(island);

            if (viewModel.YourIsland)
            {
                viewModel.CalculateMaxBuildings(island, buildings.buildings);
                viewModel.ResourceImages = Resources.ResourceImage();
                viewModel.ResourcesList  = viewModel.Resources.BuildList();
            }
            return(View(viewModel));
        }
Esempio n. 9
0
    private void OnMsgGetBuildInfo(byte[] buffer)
    {
        PBuildList ret = Net.Deserialize <PBuildList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_BUILD_INFO))
        {
            return;
        }

        foreach (var item in ret.buildList)
        {
            BuildingInfo info = GetBuilding(item.buildId);
            if (info == null)
            {
                // 新增建筑
                info = CreateBuilding(item.cfgId);
                BuildingList.Add(info);
            }

            info.Deserialize(item);
        }

        // 更新最大储量
        UpdateMaxStorage();

        // 刷新地图
        UIManager.Instance.RefreshWindow <UICityView>();
    }
Esempio n. 10
0
    public BuildingList Constructor()
    {
        BuildingList capture = new BuildingList();

        capture.buildingGameObject = buildingGameObject;
        capture.buildingName = buildingName;

        return capture;
    }
Esempio n. 11
0
        protected override void OnClose(bool isShutdown, object userData)
        {
            base.OnClose(isShutdown, userData);
            clearListeners();

            Toggle_Economy.isOn = false;
            displayType         = DisplayType.None;
            BuildingList.ClearCells();
        }
    public BuildingList Constructor()
    {
        BuildingList capture = new BuildingList();

        capture.buildingGameObject = buildingGameObject;
        capture.buildingName       = buildingName;

        return(capture);
    }
 public BuildingsDisplayer(
     ObjectPoolerManager objectPoolerManager,
     BuildingList buildingList,
     WallSidesUpdater wallSidesUpdater
     ) : base(objectPoolerManager)
 {
     _buildingList     = buildingList;
     _wallSidesUpdater = wallSidesUpdater;
 }
Esempio n. 14
0
        internal static BuildingList getBuildings(MySqlConnection sql, Filters f)
        {
            BuildingList bld  = new BuildingList();
            String       type = "";

            if (f.safeValue("tp") != "")
            {
                type = "t_type='" + f.safeValue("tp") + "' AND ";
            }
            if (f.ContainsKey("nest"))
            {
                type = String.Format("(t_type='{0}' OR t_type='{1}' OR t_type='{2}') AND",
                                     Building.GetName(BuildingType.Jurta),
                                     Building.GetName(BuildingType.Female),
                                     Building.GetName(BuildingType.DualFemale));
            }
            String busy = "";

            if (f.ContainsKey(Filters.FREE))
            {
                busy = "((" + type + "(t_busy1=0 OR t_busy2=0 OR t_busy3=0 OR t_busy4=0))";
                if (f.safeInt("rcnt") > 0)
                {
                    for (int i = 0; i < f.safeInt("rcnt"); i++)
                    {
                        int r = f.safeInt("r" + i.ToString());
                        if (r > 0)
                        {
                            busy += String.Format(" OR (t_busy1={0:d} OR t_busy2={0:d} OR t_busy3={0:d} OR t_busy4={0:d})", r);
                        }
                    }
                }
                busy += ")";
            }
            MySqlCommand cmd = new MySqlCommand(String.Format(@"SELECT 
    t_id, 
    Coalesce(m_upper,0) AS m_upper, 
    Coalesce(m_lower,0) AS m_lower, 
    m_id, t_type, t_delims, t_nest, t_heater, t_repair, t_notes, 
    t_busy1, t_busy2, t_busy3, t_busy4 
FROM minifarms, tiers 
WHERE (m_upper = t_id OR m_lower = t_id) AND t_repair = 0 {0:s} 
ORDER BY m_id;", busy != "" ? "AND " + busy : ""), sql);

            _logger.Debug("free Buildings cmd:" + cmd.CommandText);
            MySqlDataReader rd = cmd.ExecuteReader();

            while (rd.Read())
            {
                bld.Add(GetBuilding(rd, false, false) as Building);
            }
            rd.Close();

            return(bld);
        }
Esempio n. 15
0
        public override void OnPlayerEnterOver(ObjPlayer player)
        {
            base.OnPlayerEnterOver(player);
            var msg = new BuildingList();

            msg.Data.AddRange(BuildingList);
            var list = new List <ulong>();

            list.Add(player.ObjId);
            SceneServer.Instance.ServerControl.SyncSceneBuilding(list, msg);
        }
Esempio n. 16
0
    //This function is called from line 79 and forward.
    //It begins by finding the position of the mouse, then it places the building there and rotates the building based on how many
    //Times the button R has been pressed. After that it gives the building its proper building Type.
    void InstantiateBuilding(BuildingList building, float height)
    {
        //Create building
        TheBuilding = Instantiate(building.BuildingObject, buildingPlacement, Quaternion.Euler(0, rotation * 90, 0));

        //Assign building
        buildingScript          = TheBuilding.GetComponent <Building>();
        buildingScript.building = buildingtype;
        buildingScript.enabled  = !enabled;
        TheBuilding.GetComponent <Collider>().enabled = !enabled;
    }
Esempio n. 17
0
    public void SyncCityBuildingData(BuildingList data)
    {
        {
            var __list2      = data.Data;
            var __listCount2 = __list2.Count;
            for (var __i2 = 0; __i2 < __listCount2; ++__i2)
            {
                var building = __list2[__i2];
                {
                    var buildingData = CityManager.Instance.GetBuildingByAreaId(building.AreaId);
                    if (null == buildingData)
                    {
                        continue;
                    }
                    var oldType = buildingData.TypeId;
                    buildingData.Guid   = building.Guid;
                    buildingData.TypeId = building.TypeId;
                    buildingData.AreaId = building.AreaId;
                    buildingData.State  = building.State;
                    buildingData.Exdata.Clear();
                    buildingData.Exdata.AddRange(building.Exdata);
                    buildingData.PetList.Clear();
                    buildingData.PetList.AddRange(building.PetList);
                    buildingData.Exdata64.Clear();
                    buildingData.Exdata64.AddRange(building.Exdata64);
                    buildingData.PetTime.Clear();
                    buildingData.PetTime.AddRange(building.PetTime);
                    buildingData.OverTime = building.OverTime;
                    EventDispatcher.Instance.DispatchEvent(new UIEvent_CityUpdateBuilding(building.AreaId));

                    //判断是否是升级
                    if (-1 != oldType && -1 != buildingData.TypeId)
                    {
                        var tableOldBuilding = Table.GetBuilding(oldType);
                        var tableBuilding    = Table.GetBuilding(buildingData.TypeId);
                        if (null != tableOldBuilding && null != tableBuilding)
                        {
                            if (tableOldBuilding.Type == tableBuilding.Type)
                            {
                                if (tableBuilding.Level > tableOldBuilding.Level)
                                {
                                    var e          = new CityBuildingLevelupEvent(building.AreaId);
                                    var tbBuilding = Table.GetBuilding(buildingData.TypeId);
                                    e.HomeExp = tbBuilding.GetMainHouseExp;
                                    EventDispatcher.Instance.DispatchEvent(e);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
Esempio n. 18
0
 public MapGenerator(
     TerrainData terrainData,
     NoiseGenerator noiseGenerator,
     BuildingList buildingList,
     PersonList personList
     )
 {
     _terrainData    = terrainData;
     _noiseGenerator = noiseGenerator;
     _buildingList   = buildingList;
     _personList     = personList;
 }
Esempio n. 19
0
 public WallSpawner(
     BuildingList buildingList,
     BuildingMapMatrixUpdater buildingMapMatrixUpdater,
     WallData wallData,
     MapLayerMatrixManager mapLayerMatrixManager,
     MapLayerMatrix mapLayerMatrixWalls
     ) : base(buildingList, buildingMapMatrixUpdater)
 {
     _wallData = wallData;
     _mapLayerMatrixManager = mapLayerMatrixManager;
     _mapLayerMatrixWalls   = mapLayerMatrixWalls;
 }
Esempio n. 20
0
    private void LoadConfig()
    {
        TextAsset s = Resources.Load("BuildingConfig") as TextAsset;

        if (!s)
        {
            return;
        }

        string temp = s.text;

        container = JsonMapper.ToObject <BuildingList>(temp);
    }
Esempio n. 21
0
        private void getBuildings()
        {
            cbAddress.Items.Clear();
            cbAddress.Items.Add("Любой");
            BuildingList builds = Engine.db().getBuildings(new Filters());

            foreach (Building b in builds)
            {
                for (int i = 0; i < b.Sections; i++)
                {
                    cbAddress.Items.Add(b.SmallName(i));
                }
            }
            cbAddress.SelectedIndex = 0;
        }
Esempio n. 22
0
 private void fillFreeBuildings()
 {
     _freeBuildings = Engine.db().getBuildings(new Filters(Filters.FREE, '1'));
     cbFreeBuildings.Items.Clear();
     cbFreeBuildings.Items.Add("");
     foreach (Building b in _freeBuildings)
     {
         for (int i = 0; i < b.Sections; i++)
         {
             if (b.Busy[i].ID == 0)
             {
                 cbFreeBuildings.Items.Add(b.MedName(i));
             }
         }
     }
 }
        private async Task LoadBuildingData()
        {
            BuildingDataService buildingdataservice = new BuildingDataService(new EntityFramework.TimetableManagerDbContext());

            BuildingList = await buildingdataservice.GetBuildingsAsync();

            BuildingList.ForEach(f =>
            {
                BuildingGridModel buildingobj = new BuildingGridModel();

                buildingobj.BuildingId   = f.BuildingId;
                buildingobj.BuildingName = f.BuildingName;
                buildingobj.CenterName   = f.Center.CenterName;

                BuildingDataList.Add(buildingobj);
            });
        }
Esempio n. 24
0
    //This function is called by the building buttons. Changes what building is selected.
    public void ChangeBuilding(int build)
    {
        foreach (BuildingList building in BuildingList.buildinglist)
        {
            if (building.ID == build)
            {
                buildingtype = building;
            }
        }

        if (buildingtype != BuildingList.Nothing && buildingtype != null)
        {
            //Instantiates the building the player wants to construct where mouse was clicked
            switch (buildingtype.CurrentBuildingType)
            {
            //TO-DO: Use the dictionary with IDs instead to prevent too much expansion here and make it easier to add buildings
            case (BuildingList.Types.Mine):
                InstantiateBuilding(buildingtype, 1f);
                break;

            case (BuildingList.Types.Conveyor):
                InstantiateBuilding(buildingtype, 0.666f);
                break;

            case (BuildingList.Types.Splitter):
                InstantiateBuilding(buildingtype, 0.8f);
                break;

            case (BuildingList.Types.Smelter):
                InstantiateBuilding(buildingtype, 1f);
                break;

            default:
                break;
            }

            SelectionMaterial.ChangeShader(TheBuilding, "Legacy Shaders/Transparent/Diffuse");
            TheBuilding.GetComponent <Collider>().enabled = enabled;
            TheBuilding.layer = 5;
            TheBuilding.transform.Rotate(new Vector3(0, 90, 0));
        }

        destroy = false;
    }
Esempio n. 25
0
        public Building(SpriteBatch spriteBatch, Game game, Camera2D cam, MouseHandler mH)
            : base(spriteBatch, game, cam, mH)
        {
            Image = game.Content.Load<Texture2D>("CPU_Pong");
            ImageRec = new Rectangle((int)Position.X, (int)Position.Y, Image.Width, Image.Height);
            unitName = "test";
            uniqueName = "101";
            OType = "building";
            Health = 100;

            bList = BuildingList.Barracks;
            bUL = new BandUList(game, spriteBatch, cam, this.Image, this.Position, bList);

            uI = new UI(game, spriteBatch, cam, mH, this);
            this.spriteBatch = spriteBatch;
            this.game = game;
            this.cam = cam;
            this.mH = mH;
        }
Esempio n. 26
0
    private void OnMsgPushGetBuild(byte[] buffer)
    {
        PBuildList ret = Net.Deserialize <PBuildList>(buffer);

        if (!Net.CheckErrorCode(ret.errorCode, eCommand.PUSH_GET_BUILD))
        {
            return;
        }

        foreach (var item in ret.buildList)
        {
            BuildingInfo info = CreateBuilding(item.cfgId);
            info.Deserialize(item);
            BuildingList.Add(info);
        }

        // 刷新地图
        UIManager.Instance.RefreshWindow <UICityView>();
    }
Esempio n. 27
0
    // Use this for initialization
    void Awake()
    {
        if (_instance != null)
        {
            Debug.LogWarning("Building Instance was not null!");
            Destroy(gameObject);
            return;
        }
        else
        {
            _instance = this;

            //  Accepted components when constructing the preview prefab.
            acceptedComponents.Add(typeof(MeshFilter));
            acceptedComponents.Add(typeof(MeshRenderer));
            acceptedComponents.Add(typeof(BoxCollider));
            acceptedComponents.Add(typeof(MeshCollider));

            // Generate BuildingMeshPrefabs
            _buildMeshPrefabs = new Transform[buildings.Length];
            for (int i = 0; i < buildings.Length; i++)
            {
                // Create a new gameobject to use as per the object preview.
                // Attatch and identical BuildingInfo script to it via the building info
                // script that exists on the prefab.
                // Also Loop through the prefabs and create all children but only attach renderes and set the
                // shader to the construction shader so the preview prefab appears completely like a preview.
                GameObject g = new GameObject("previewPrefab_" + buildings[i].name);
                g.tag = "BluePrint";
                g.layer = 11;
                g.AddComponent<BuildingInfo>();
                g.AddComponent<DynamicGridObstacle>();
                g.GetComponent<BuildingInfo>().CopyFromOther(buildings[i].GetComponent<BuildingInfo>());
                g.AddComponent<BuildingConstructor>();
                g.GetComponent<BuildingConstructor>().ConstructedPrefab = buildings[i].transform;
                ConstructPreviewPrefab(buildings[i].gameObject, g);
                g.transform.parent = transform;
                g.SetActive(false);
                _buildMeshPrefabs[i] = g.transform;
            }
        }
    }
    // Use this for initialization
    void Start()
    {
        GameObject _GM = GameObject.Find("_GM");

        solutions    = _GM.GetComponent <Solutions>();
        buildingList = _GM.GetComponent <BuildingList>();
        upgradeList  = _GM.GetComponent <UpgradeList>();

        sprite = GetComponentInChildren <SpriteRenderer>();

        // Raycast downwards to terrain and assign joint anchor
        RaycastHit2D terrainHit = Physics2D.Raycast(transform.position + Vector3.up * 10, -Vector2.up, float.MaxValue, terrainLayer);

        if (terrainHit.collider != null)
        {
            Vector2 hitPoint    = terrainHit.point;
            string  terrainName = terrainHit.collider.gameObject.name;

            // Try to automatically set soil type based on terrain name

            string[] typeNames = Enum.GetNames(typeof(SoilType));
            Array    typeVals  = Enum.GetValues(typeof(SoilType));
            for (int i = 0; i < typeNames.Length; i++)
            {
                if (terrainName.Equals(typeNames[i]))
                {
                    soilType = (SoilType)typeVals.GetValue(i);
                }
            }

            gameObject.name = gameObject.name + " of " + soilType + " on " + terrainHit.collider.gameObject.name;

            if (!soilType.ToString().Equals(terrainName))
            {
                Debug.Log("WARNING: Soil type property name of building zone do not equal terrain name: " + soilType + " != " + terrainHit.collider.gameObject.name);
            }
        }
        else
        {
            Debug.Log("WARNING: Terrain not found of building platform");
        }
    }
Esempio n. 29
0
 public void SyncSceneBuilding(BuildingList data)
 {
     /* 目前不需要这功能
      * if (!CityManager.Instance.IsInCityScene())
      * {
      *  return;
      * }
      * {
      *  var __list1 = data.Data;
      *  var __listCount1 = __list1.Count;
      *  for (int __i1 = 0; __i1 < __listCount1; ++__i1)
      *  {
      *      var building = __list1[__i1];
      *      {
      *          CityManager.Instance.RefreshBuilding(building.AreaId, building.TypeId);
      *      }
      *  }
      * }
      * */
 }
Esempio n. 30
0
    bool VisitPassengerBuilding(string type_name, int start_state, int new_exit_state)
    {
        visitBuilding = BuildingList.GetPassengerBuilding(this, type_name);

        if (visitBuilding == null)
        {
            return(false);
        }
        else
        {
            //finalDestination = visitBuilding.GetEnterQueuePosition(); DISABLED FOR PASSENGER BUILDING
            steering.Visit(finalDestination);
            state_passenger_building = start_state;
            exit_state = new_exit_state;

            // don't forget to remove eventual message
            speechBubbleController.RemoveMessageImmediate(this);

            return(true);
        }
    }
Esempio n. 31
0
    void Reset(bool forceFullReset)//TO-DO: Add an shift bool thing.
    {
        selection            = null;
        hasComponentBuilding = null;
        hasComponentTile     = null;
        buildingScript       = null;

        if (!Input.GetKey(KeyCode.LeftShift) || forceFullReset)
        {
            buildingtype = BuildingList.Nothing;
            destroy      = false;
            Destroy(TheBuilding);
            TheBuilding = null;
        }
        else
        {
            if (!destroy)
            {
                ChangeBuilding(buildingtype.ID);
            }
        }
    }
        public void Set_Strategy_For_Member_List()
        {
            var act = new BuildingList
            {
                Address          = "NY, First Street",
                ListOfAppNumbers = new[] { 32, 25, 14, 89 }
            };

            var exp = new BuildingList
            {
                Address          = "NY, First Street",
                ListOfAppNumbers = new[] { 555, 25, 14, 89 }
            };

            const int expNumber = 32;

            var str = new Strategies <BuildingList>().Set(x => x.ListOfAppNumbers[0],
                                                          (ex, ac) => ex == expNumber);

            var res = act.GetDistinctions(exp, str);

            res.Should().BeEmpty();
        }
Esempio n. 33
0
    bool VisitBuilding(string type_name, int _exit_state)
    {
        // get building
        buildingPassenger = (BuildingPassenger)BuildingList.GetPassengerBuilding(this, type_name);

        if (buildingPassenger == null)
        {
            print("could not find building)");
            return(false);
        }
        else
        {
            behaviour        = buildingPassenger.VisitBuilding(this);
            finalDestination = behaviour.GetEntrancePosition();
            steering.Visit(finalDestination);
            state_passenger   = STATE_BUILDING_GOTO;
            buildingExitState = _exit_state;

            // don't forget to remove eventual message
            speechBubbleController.RemoveMessageImmediate(this);
            return(true);
        }
    }
Esempio n. 34
0
    void Update()
    {
        Ray ray;
        RaycastHit[] hit;
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        hit = Physics.RaycastAll(ray, Mathf.Infinity);

        for (int i = 0; i < hit.Length; i++)
        {
            if (hit[i].collider.tag == TerrainCollisionTag)
            {
                if (SelectedBuilding != LastSelectedBuilding && ghost != null)
                {
                    Destroy(ghost);
                    ghostOn = false;
                    LastSelectedBuilding = SelectedBuilding;

                    collided.Clear();
                    break;
                }

                if (!ghostOn)
                {
                    ghost = (GameObject)Instantiate(Building[SelectedBuilding],
                    new Vector3(
                        hit[i].point.x,
                        hit[i].point.y,
                        hit[i].point.z),
                    Building[SelectedBuilding].transform.rotation);

                    ghostOn = true;
                }

                if (Input.GetMouseButtonDown(0) && collided.Count == 0 && isFlat )
                {

                    BuildingList bl = new BuildingList();

                    bl.buildingGameObject = (GameObject)Instantiate(Building[SelectedBuilding],
                    new Vector3(
                        hit[i].point.x,
                        hit[i].point.y,
                        hit[i].point.z),
                    ghost.transform.rotation);

                    string s = bl.buildingGameObject.name.Replace("(Clone)", "");
                    bl.buildingGameObject.name = s;
                    bl.buildingName = s;

                    //Call to confirmation window.
                    if(!RTSGUIScript.confirmPlacement()) {
                        DestroyImmediate(bl.buildingGameObject);
                    } else {
                        DestroyImmediate(ghost);
                        buildings.Add(bl);
                        ghostOn = false;
                    }

                    collided.Clear();
                    break;
                }

                if (ghost != null)
                {
                    ghost.transform.position = new Vector3(
                        hit[i].point.x,
                        hit[i].point.y,
                        hit[i].point.z);

                    isFlat = GroundFlat(ghost);

                    if (collided.Count != 0 || !isFlat)
                    {
                        ghost.renderer.material.CopyPropertiesFromMaterial(Building[SelectedBuilding].renderer.sharedMaterial);
                        ghost.renderer.material.color = new Color(
                            1f,
                            0f,
                            0f,
                            0.6f);
                    }
                    else if (collided.Count == 0 && isFlat)
                    {
                        ghost.renderer.material.CopyPropertiesFromMaterial(Building[SelectedBuilding].renderer.sharedMaterial);
                        ghost.renderer.material.color = new Color(
                            0f,
                            1f,
                            0f,
                            0.6f);
                    }

                    if(SelectedBuildingRotation != LastSelectedBuildingRotation)
                    {
                        ghost.transform.Rotate(0, 0, 90);
                        LastSelectedBuildingRotation = SelectedBuildingRotation;
                    }

                }
            }
        }
    }