Oreons, busy as a bee

GSoC Week 11 update

Overview System

The Overview System enables the players to have a quick glance of the happenings in the village and some other related information. The overview screen can be toggled using the o button. This screen currently displays the following information : - Number of each type of oreon in the village. - Tasks in queue in the Holding. - Tasks that the Oreons are currently working on. - Tasks currently being worked on by an Oreon

Initial implementation of the Overview Screen

This can be further enhanced to use bars for the in-progress tasks, use image icons for the Oreons and buildings when displaying count and include some more relevant information like list of blocks in the storage

A loop of tasks for the Oreons

A great idea for the gameplay enhancement that came up in one of the weekly meetings was to implement tasks which form a complete loop so that the Oreons could be kept busy. In order to simulate such a sequence of task I added subsequentTask field and others related to it to the TaskComponentand also modified the PerformTaskNode to add a subsequent task to the Holding if defined. Currently the Plant task has Harvest as a next task which in turn triggers a PlaceBlocksInChest with the Storage chest as a target. In order to complete this loop I added a FetchBlocksFromChest if the required resource is not present in the building i.e. if the Diner does not have a Cookie Crop in its chest and a Oreon arrives with a eat task, then a fetching task is added to the Holding with the Storage chest as the target. So, ultimately another Oreon would fetch the required block from the Storage and place it in the Diner so when the Oreon arrives in the Diner again after roaming around for a while it has something to eat.

Future Prospects

This opens up many interesting possibilites of loops for tasks that can be added. Moreover the currently implemented loop can also be enhanced by adding a cooking task which would turn the Cookie Crops in the Diner into cooked food for the Oreons.

Some enhancements

Rendering blocks for ongoing tasks

This week I also implemented the feature to render blocks which could be an indicator of the task to being currently performed by the Oreon. I added a renderedBlockType field to the task class, if this field is defined for a class the TaskManagementSystem adds this block into the Oreons chest which renders it and then removes it after the task is completed

Oreon carrying Crops from Storage to Diner(notice the rendered block indicating the Block being carried)

Research book removal from Pedestal

Research Books and the exclamation point rendered when adding a Research task are now removed when the task is completed, the book placed back in the case and can be used again.