public static void AddObstacle(Point position, ObstacleDefinition obstacleDefinition, JEventBus eventBus = null) { Obstacle obstacle = new Obstacle(obstacleDefinition); AddObstacleOnWorldMapEvent addObstacleOnWorldMapEvent = new AddObstacleOnWorldMapEvent(obstacle, position); BaseApi.SendEvent(eventBus, addObstacleOnWorldMapEvent); }
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); }