/// <summary> /// Returns tile logic matrix /// </summary> /// <remarks> /// Two side effects: updates TileDict and AgentMapScale which are used by agents - need to be updated each time map /// changes /// </remarks> /// > /// <param name="tileLogicBuilder">tile logic builder which organises the classes used to create the tile logic</param> /// <returns>tile logic matrix</returns> private IEnvTile[,] GetTileLogicDebug(ITileLogicBuilder tileLogicBuilder) { var tileLogicSetup = tileLogicBuilder.GetTileLogicSetup(); var tileLogic = tileLogicSetup.GetTileLogic(); TileDict = tileLogicSetup.GetTileTypes(); AgentMapScale = mapScale; return(tileLogic); }
/// <summary> /// Returns the matrix of tiles which dictates spawning of environment and agents, and the game parameters of the tile /// logic, /// this is based on the game parameters given by curriculum /// </summary> /// <remarks> /// Two side effects: TileDict, used by agents to know about the current map is updated, and the AgentMapScale /// is updated which is used to normalise the distances of the level by the agents - these need to be updated /// whenever the level changes /// </remarks> /// <param name="tileLogicBuilder">tile logic builder which organises the classes used to create the tile logic</param> /// <param name="gameParams">game parameters from curriculum</param> /// <returns>Logic matrix, and map scale</returns> private (IEnvTile[, ] tileLogic, int gameParamMapScale) GetTileLogicAndGameParamMapScaleCurr( ITileLogicBuilder tileLogicBuilder, Dictionary <GameParam, int> gameParams) { var tileLogicSetup = tileLogicBuilder.GetTileLogicSetup(); var tileLogic = tileLogicSetup.GetTileLogic(); TileDict = tileLogicSetup.GetTileTypes(); var gameParamMapScale = gameParams[GameParam.MapScale]; AgentMapScale = gameParamMapScale; return(tileLogic, gameParamMapScale); }