|
|
|
@ -1707,6 +1707,62 @@ class FillBlocksStates: |
|
|
|
|
self.state() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EatFoodStates: |
|
|
|
|
def idle(self): |
|
|
|
|
return None |
|
|
|
|
|
|
|
|
|
def init(self): |
|
|
|
|
if self.g.food < 12: |
|
|
|
|
print('Hungry, eating') |
|
|
|
|
self.state = self.select_food |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
if self.g.health < 20 and self.g.food < 18: |
|
|
|
|
print('Low health, eating') |
|
|
|
|
self.state = self.select_food |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
print('Don\'t need to eat, aborting') |
|
|
|
|
self.state = self.cleanup |
|
|
|
|
|
|
|
|
|
def select_food(self): |
|
|
|
|
if self.g.game.select_item(items.FOOD_IDS): |
|
|
|
|
self.state = self.eat_food |
|
|
|
|
else: |
|
|
|
|
print('No food, aborting') |
|
|
|
|
self.state = self.cleanup |
|
|
|
|
|
|
|
|
|
def eat_food(self): |
|
|
|
|
self.g.game.use_item(0) |
|
|
|
|
|
|
|
|
|
print('Eating food') |
|
|
|
|
self.wait_time = 3 |
|
|
|
|
self.state = self.wait |
|
|
|
|
|
|
|
|
|
def wait(self): |
|
|
|
|
if self.wait_time > 0: |
|
|
|
|
self.wait_time -= utils.TICK |
|
|
|
|
else: |
|
|
|
|
self.state = self.cleanup |
|
|
|
|
|
|
|
|
|
def cleanup(self): |
|
|
|
|
self.state = self.done |
|
|
|
|
|
|
|
|
|
def done(self): |
|
|
|
|
# never gets ran, placeholder |
|
|
|
|
return None |
|
|
|
|
|
|
|
|
|
def __init__(self, global_state): |
|
|
|
|
self.g = global_state |
|
|
|
|
self.state = self.idle |
|
|
|
|
|
|
|
|
|
self.wait_time = 0 |
|
|
|
|
|
|
|
|
|
def run(self): |
|
|
|
|
self.state() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class JobStates: |
|
|
|
|
def idle(self): |
|
|
|
|
return [] |
|
|
|
@ -1726,6 +1782,7 @@ class JobStates: |
|
|
|
|
self.check_threats_states = CheckThreatsStates(self.g) |
|
|
|
|
self.gather_wart_states = GatherWartStates(self.g) |
|
|
|
|
self.gather_crop_states = GatherCropStates(self.g) |
|
|
|
|
self.eat_food_states = EatFoodStates(self.g) |
|
|
|
|
|
|
|
|
|
def run_machines(self, machines): |
|
|
|
|
for m in machines: |
|
|
|
@ -1744,6 +1801,7 @@ class JobStates: |
|
|
|
|
self.grab_sand_states, |
|
|
|
|
self.cache_items_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
] |
|
|
|
|
return machines |
|
|
|
|
|
|
|
|
@ -1755,6 +1813,7 @@ class JobStates: |
|
|
|
|
self.grab_sand_states, |
|
|
|
|
self.cache_items_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
] |
|
|
|
|
self.sleep_with_bed_states.silent = True |
|
|
|
|
self.cache_items_states.silent = True |
|
|
|
@ -1780,6 +1839,7 @@ class JobStates: |
|
|
|
|
machines = [ |
|
|
|
|
self.gather_wood_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
self.cache_items_states, |
|
|
|
|
] |
|
|
|
|
return machines |
|
|
|
@ -1792,6 +1852,7 @@ class JobStates: |
|
|
|
|
self.plant_tree_states, |
|
|
|
|
self.grab_sapling_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
self.cache_items_states, |
|
|
|
|
] |
|
|
|
|
self.sleep_with_bed_states.silent = True |
|
|
|
@ -1805,6 +1866,7 @@ class JobStates: |
|
|
|
|
machines = [ |
|
|
|
|
self.gather_wart_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
self.cache_items_states, |
|
|
|
|
] |
|
|
|
|
self.sleep_with_bed_states.silent = True |
|
|
|
@ -1815,6 +1877,7 @@ class JobStates: |
|
|
|
|
machines = [ |
|
|
|
|
self.gather_crop_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
self.cache_items_states, |
|
|
|
|
] |
|
|
|
|
self.sleep_with_bed_states.silent = True |
|
|
|
@ -1826,6 +1889,7 @@ class JobStates: |
|
|
|
|
self.grab_supplies_states, |
|
|
|
|
self.fill_blocks_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
] |
|
|
|
|
self.sleep_with_bed_states.silent = True |
|
|
|
|
|
|
|
|
@ -1838,6 +1902,15 @@ class JobStates: |
|
|
|
|
} |
|
|
|
|
return machines |
|
|
|
|
|
|
|
|
|
def loiter(self): |
|
|
|
|
machines = [ |
|
|
|
|
self.check_threats_states, |
|
|
|
|
self.sleep_with_bed_states, |
|
|
|
|
self.eat_food_states, |
|
|
|
|
] |
|
|
|
|
self.sleep_with_bed_states.silent = True |
|
|
|
|
return machines |
|
|
|
|
|
|
|
|
|
def stop(self): |
|
|
|
|
self.init_machines() |
|
|
|
|
self.state = self.idle |
|
|
|
|