Пример #1
0
        public override MapComponent Create()
        {
            if (TypeObject.Naming?.Value)
            {
                var namingFactory = new NamingFactory(TypeObject.Naming.Value, GameObject);
                namingFactory.Create();
            }

            var entityRegistryFactory   = new EntityRegistryFactory(TypeObject.EntityRegistry.Value, GameObject);
            var entityRegistryComponent = entityRegistryFactory.Create();

            Component.Size      = TypeObject.Size.Value;
            Component.MapLayout = TypeObject.MapLayout.Value;

            var navFactory   = new NavFactory(TypeObject.Nav.Value, GameObject);
            var navComponent = navFactory.Create();

            entityRegistryComponent.Registered   += Component.OnEntityRegistered;
            entityRegistryComponent.Unregistered += Component.OnEntityUnregistered;

            CreateMarket(TypeObject);
            navComponent.CalculateNavMap();

            foreach (var workerHome in TypeObject.WorkerHomes)
            {
                var workerHomeFactory = new WorkerHomeFactory(workerHome.Value, parentObject: GameObject);
                workerHomeFactory.Create(Component);

                navComponent.CalculateNavMap();
            }

            foreach (var company in TypeObject.Companies)
            {
                var companyFactory = new CompanyFactory(company.Value, parentObject: GameObject);
                companyFactory.Create(Component);

                navComponent.CalculateNavMap();
            }

            return(Component);
        }
Пример #2
0
        public override LocationComponent Create()
        {
            if (TypeObject.Naming?.Value)
            {
                var namingFactory = new NamingFactory(TypeObject.Naming.Value, GameObject);
                namingFactory.Create();
            }

            Component.MapPrefab = TypeObject.MapPrefab;

            var entityRegistryFactory   = new EntityRegistryFactory(TypeObject.EntityRegistry.Value, GameObject);
            var entityRegistryComponent = entityRegistryFactory.Create();

            entityRegistryComponent.Registered   += Component.OnEntityRegistered;
            entityRegistryComponent.Unregistered += Component.OnEntityUnregistered;

            if (TypeObject.Building?.Value)
            {
                var buildingFactory = new BuildingFactory(TypeObject.Building.Value, GameObject);
                buildingFactory.Create();
            }

            return(Component);
        }