Esempio n. 1
0
        public static EcsEntity CreateBuilding(EcsWorld world,
                                               GameObject buildingAsset,
                                               Canvas canvasAsset,
                                               Vector3 position,
                                               Vector3 rotation,
                                               BuildingTag tag,
                                               Guid Id)
        {
            var buildingEntity = world.NewEntityWith(out BuildingComponent building);

            building.Object        = GameObject.Instantiate(buildingAsset, position, Quaternion.Euler(rotation));
            building.InBuildCanvas = GuiHelper.InstantiateAllButtons(canvasAsset, world);
            building.Tag           = tag;
            building.AllButtons    = building.InBuildCanvas.GetComponentsInChildren <Button>();
            building.Guid          = Id;

            buildingEntity.Set <HealthComponent>().InitializeComponent(200);
            buildingEntity.Set <HealthBarComponent>().InitializeComponent(building.Object);
            buildingEntity.Set <MovementComponent>().InitializeComponent(building.Object);

            if (tag == BuildingTag.Base)
            {
                buildingEntity.Set <BaseComponent>();
            }

            return(buildingEntity);
        }
Esempio n. 2
0
        public static EcsEntity CreateBuilding(EcsWorld world,
                                               GameObject buildingAsset,
                                               Canvas canvasAsset,
                                               Vector3 position,
                                               Vector3 rotation,
                                               BuildingTag tag)
        {
            var building = CreateBuilding(world, buildingAsset, canvasAsset, position, rotation, tag, Guid.NewGuid());

            building.Set <MyBuildingComponent>();
            return(building);
        }
 public static void SetFields(
     this BuildingComponent buildingComponent,
     GameObject obj,
     BuildingTag buildingType,
     Guid id,
     Canvas canvas,
     EcsWorld world)
 {
     buildingComponent.Object                = obj;
     buildingComponent.Tag                   = buildingType;
     buildingComponent.AllButtons            = buildingComponent.InBuildCanvas.GetComponentsInChildren <Button>();
     buildingComponent.InBuildCanvas         = GuiHelper.InstantiateAllButtons(canvas, world);
     buildingComponent.InBuildCanvas.enabled = false;
     buildingComponent.Guid                  = id;
 }
Esempio n. 4
0
        private void CreateNotFoundBuilding(BuildingTag tag, OutputUnitState serverBuilding)
        {
            var enemyBuild = BuildingHelper.CreateBuilding(world,
                                                           buildingAssets.Get1[0].BuildingsAssets["Enemy" + tag.ToString()],
                                                           buildingAssets.Get1[0].InBuildingCanvasesAssets["None"],
                                                           serverBuilding.Position.ToUnityVector(),
                                                           serverBuilding.RotationInEulerAngle.ToUnityVector(),
                                                           tag,
                                                           serverBuilding.Id);

            enemyBuild.Set <EnemyBuildingComponent>();

            var hb = enemyBuild.Get <HealthComponent>();

            hb.MaxHp     = serverBuilding.Health;
            hb.CurrentHp = serverBuilding.Health;
        }