public static void AddResourcePiles(Point position, string resourceName, int amount = 1, JEventBus eventBus = null)
        {
            ResourceDefinition         resourceDefinition         = new ResourceDefinition(resourceName);
            Resource                   resource                   = new Resource(resourceDefinition);
            AddResourceOnWorldMapEvent addResourceOnWorldMapEvent =
                new AddResourceOnWorldMapEvent(resource, position);

            BaseApi.SendEvent(eventBus, addResourceOnWorldMapEvent);
        }
        public void AddResourceListener(AddResourceOnWorldMapEvent addResourceOnWorldMapEvent)
        {
            if (!addResourceOnWorldMapEvent.Resource.Definition.Name.Equals("Chest"))
            {
                return;
            }

            long index = _grid.GetNodeIndex(addResourceOnWorldMapEvent.Position);

            _chests.Add(index);
        }
        private static void AddChests()
        {
            Random random = new Random(1234);

            ResourceDefinition resourceDefinition = new ResourceDefinition("Chest");

            for (int i = 0; i < 10; i++)
            {
                Point    position = new Point(random.Next(512), random.Next(512));
                Resource resource = new Resource(resourceDefinition);
                AddResourceOnWorldMapEvent addResourceOnWorldMapEvent =
                    new AddResourceOnWorldMapEvent(resource, position);
                JEventBus.GetDefault().Post(addResourceOnWorldMapEvent);
            }
        }
        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);
        }