@Override
	public void processEntity(Entity collectableEntity) {
		Collide collideComponent = collectableEntity.getComponent(Collide.class);

		// Poll the list of entities it collided with, i'll want to rewrite
		// this to be observer based so it will only call this logic when a
		// collectable has actually been collided with, instead of every game
		// loop update..
		for (Entity collidedEntity : collideComponent.collisionList) {
			Children childComponent = collidedEntity.getComponent(Children.class);
			// Check if the entity can equip the collectable, and if it is
			// remove the collectable component from this entity, and pass
			// the entity to the entity's child list that it collided with
			if (childComponent != null) {
				// If the collectable was equipment, reset the spatial's x,y to
				// the desired x,y of the equipment so that when added to the
				// parent it will be dealt with accordingly by the system
				Equipment equipment = collectableEntity.getComponent(Equipment.class);
				if (equipment != null) {
					Spatial spatial = collectableEntity.getComponent(Spatial.class);
					spatial.x = equipment.x;
					spatial.y = equipment.y;
				}

				childComponent.addChildEntity(collectableEntity);

				// Remove the collectable component from the entity
				collectableEntity.removeComponent(Collectable.class);

				// If this entity currently has the camera on it, show the hud
				// message that they collected a the entity
				if (collectableEntity.getComponent(Camera.class) != null) {
					addHudMessage(Helpers.concat("collected item :: ", collectableEntity.getComponent(NameTag.class).name));
					refreshList();
				}

				// Break the loop as we don't want multiple entities to be given
				// the same collectable...
				break;
			}
		}
	}