public void PlaceObjectOnMapListener(PlaceObjectOnMapEvent placeObjectOnMapEvent) { RectangleForeach rectangleForeach = new RectangleForeach(placeObjectOnMapEvent.Position, placeObjectOnMapEvent.Size); rectangleForeach.Data = placeObjectOnMapEvent; rectangleForeach.ForEach(PlaceObject); }
public void PlaceObjectOnMapListener(PlaceObjectOnMapEvent placeObjectOnMapEvent) { var wrappedEvent = new { Position = placeObjectOnMapEvent.Position, Size = placeObjectOnMapEvent.Size, Structure = placeObjectOnMapEvent.Entity.GetComponent <Structure>(), Obstacle = placeObjectOnMapEvent.Entity.GetComponent <Obstacle>(), Resource = placeObjectOnMapEvent.Entity.GetComponent <Resource>() }; RedirectLike(placeObjectOnMapEvent, wrappedEvent, default, NetworkPersistenceType.Permanent);
private void PlaceObject(int x, int y, object data) { PlaceObjectOnMapEvent placeObjectOnMapEvent = data as PlaceObjectOnMapEvent; var index = _grid.GetNodeIndex(x, y); if (_nodeToEntityLinker.ContainsKey(index)) { Debug.WriteLine("Attend to override object"); } _nodeToEntityLinker.Add(index, placeObjectOnMapEvent.Entity); _pathFinder.ChangeCostOfMove(x, y, 0); }
public void AddHabitatsListener(PlaceObjectOnMapEvent placeObjectOnMapEvent) { Entity entity = placeObjectOnMapEvent.Entity; if (!entity.HasComponent <Structure>()) { return; } Structure structure = entity.GetComponent <Structure>(); if (!structure.Definition.Name.EndsWith("Habitat")) { return; } long index = _grid.GetNodeIndex(placeObjectOnMapEvent.Position); _habitats.Add(index); _nodeToEntityLinker.Add(index, entity); }
public void AddObstacleListener(AddObstacleOnWorldMapEvent addObstacleOnWorldMapEvent) { IsFreeAreaEvent isFreeAreaEvent = new IsFreeAreaEvent(addObstacleOnWorldMapEvent.Position, addObstacleOnWorldMapEvent.Obstacle.Definition.Size); _eventBus.Post(isFreeAreaEvent); if (!isFreeAreaEvent.IsFree) { // Debug.WriteLine("Area is blocked! " + isFreeAreaEvent); return; } Entity obstacle = entityWorld.CreateEntityFromTemplate("Obstacle", addObstacleOnWorldMapEvent.Obstacle, addObstacleOnWorldMapEvent.Position); PlaceObjectOnMapEvent placeObjectOnMapEvent = new PlaceObjectOnMapEvent(obstacle, addObstacleOnWorldMapEvent.Position, addObstacleOnWorldMapEvent.Obstacle.Definition.Size); _eventBus.Post(placeObjectOnMapEvent); }
public void AddResourceListener(AddResourceOnWorldMapEvent addResourceOnWorldMapEvent) { Point staticResourceSize = new Point(1, 1); IsFreeAreaEvent isFreeAreaEvent = new IsFreeAreaEvent(addResourceOnWorldMapEvent.Position, staticResourceSize); _eventBus.Post(isFreeAreaEvent); if (!isFreeAreaEvent.IsFree) { // Debug.WriteLine("Area is blocked! " + isFreeAreaEvent); return; } Entity resource = entityWorld.CreateEntityFromTemplate("Resource", addResourceOnWorldMapEvent.Resource, addResourceOnWorldMapEvent.Position); PlaceObjectOnMapEvent placeObjectOnMapEvent = new PlaceObjectOnMapEvent(resource, addResourceOnWorldMapEvent.Position, staticResourceSize); _eventBus.Post(placeObjectOnMapEvent); }
public void AddStructureListener(AddStructureOnWorldMapEvent addStructureOnWorldMapEvent) { IsFreeAreaEvent isFreeAreaEvent = new IsFreeAreaEvent(addStructureOnWorldMapEvent.Position, addStructureOnWorldMapEvent.Structure.Definition.Size); _eventBus.Post(isFreeAreaEvent); if (!isFreeAreaEvent.IsFree) { // Debug.WriteLine("Area is blocked! " + isFreeAreaEvent); return; } Entity structure = CreateEntityBasedOnStructureType(addStructureOnWorldMapEvent); AddEntrance(structure, addStructureOnWorldMapEvent.Position + addStructureOnWorldMapEvent.Structure.Definition.EntranceOffset); PlaceObjectOnMapEvent placeObjectOnMapEvent = new PlaceObjectOnMapEvent(structure, addStructureOnWorldMapEvent.Position, addStructureOnWorldMapEvent.Structure.Definition.Size); _eventBus.Post(placeObjectOnMapEvent); }