mirror of
https://github.com/illiumst/marl-factory-grid.git
synced 2025-07-05 00:51:35 +02:00
Merge branch 'main' into unit_testing
# Conflicts: # marl_factory_grid/environment/factory.py # marl_factory_grid/utils/states.py
This commit is contained in:
@ -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):
|
||||
|
Reference in New Issue
Block a user