Merge branch 'main' into unit_testing

# Conflicts:
#	marl_factory_grid/environment/factory.py
#	marl_factory_grid/utils/states.py
This commit is contained in:
Chanumask
2023-11-10 14:26:45 +01:00
22 changed files with 100 additions and 129 deletions

View File

@ -3,6 +3,7 @@ from typing import List, Tuple
import numpy as np
from marl_factory_grid.algorithms.static.utils import points_to_graph
from marl_factory_grid.environment import constants as c
from marl_factory_grid.environment.entity.entity import Entity
from marl_factory_grid.environment.rules import Rule
@ -29,6 +30,12 @@ class StepRules:
self.rules.append(item)
return True
def do_all_reset(self, state):
for rule in self.rules:
if rule_reset_printline := rule.on_reset(state):
state.print(rule_reset_printline)
return c.VALID
def do_all_init(self, state, lvl_map):
for rule in self.rules:
if rule_init_printline := rule.on_init(state, lvl_map):
@ -59,6 +66,13 @@ class StepRules:
class Gamestate(object):
@property
def floortile_graph(self):
if not self._floortile_graph:
self.print("Generating Floorgraph....")
self._floortile_graph = points_to_graph(self.entities.floorlist)
return self._floortile_graph
@property
def moving_entites(self):
return [y for x in self.entities for y in x if x.var_can_move]
@ -72,6 +86,7 @@ class Gamestate(object):
self.verbose = verbose
self.rng = np.random.default_rng(env_seed)
self.rules = StepRules(*rules)
self._floortile_graph = None
self.tests = StepTests(*tests)
def __getitem__(self, item):