Market: GreeterRole - ellenvoegtli/simcity GitHub Wiki
Messages
INeedInventory(CustomerAgent c, int x, int y){
waitingCustomers.add(new MyWaitingCustomer(c, x, y));
}
INeedInventory(String restaurantName, Map<String, Integer> inventory){
waitingBusinesses.add(new MyWaitingBusiness(restaurantName, inventory));
}
Data
List<MyWaitingCustomer> waitingCustomers;
List<MyWaitingBusiness> waitingBusinesses;
List<EmployeeAgent> myEmployees;
int nextEmployee = 0;
class MyWaitingCustomer {
CustomerAgent c;
int waitingPosX;
int waitingPosY;
}
class MyWaitingBusiness {
String restaurantName;
Map<String, Integer> inventory;
}
Scheduler
if E c in waitingCustomers && if E e in myEmployees
if nextEmployee doesn't exceed size of myEmployees
assignCustomerToEmployee(waitingCustomers.get(0), myEmployees.get(nextEmployee));
nextEmployee++;
if E b in waitingBusinesses && if E e in myEmployees
if nextEmployee doesn't exceed size of myEmployees
assignBusinessToEmployee(waitingBusinesses.get(0), myEmployees.get(nextEmployee));
nextEmployee++;
Actions
assignCustomerToEmployee(MyWaitingCustomer mc, EmployeeAgent e){
e.AssignedToCustomer(mc.c, mc.waitingPosX, mc.waitingPosY);
waitingCustomers.remove(mc);
}
assignBusinessToEmployee(MyWaitingBusiness mb, EmployeeAgent e){
e.AssignedToBusiness(mc.restaurantName, mc.inventory);
waitingBusinesses.remove(mb)
}