diff --git a/src/swarm-render/Swarm/Render/Structures.hs b/src/swarm-render/Swarm/Render/Structures.hs index fe0cb155d..fec1af056 100644 --- a/src/swarm-render/Swarm/Render/Structures.hs +++ b/src/swarm-render/Swarm/Render/Structures.hs @@ -7,12 +7,11 @@ module Swarm.Render.Structures where import Codec.Picture as JP import Control.Carrier.Throw.Either -import Swarm.Game.Scenario.Topography.WorldDescription import Control.Effect.Lift -import Data.List.NonEmpty qualified as NE import Data.GraphViz (GraphvizParams (..)) import Data.GraphViz qualified as GV import Data.GraphViz.Attributes.Complete as GVA +import Data.List.NonEmpty qualified as NE import Data.Map (Map) import Data.Map qualified as M import Data.Maybe (fromMaybe) @@ -29,6 +28,7 @@ import Swarm.Game.Scenario.Topography.Cell (Cell) import Swarm.Game.Scenario.Topography.Structure import Swarm.Game.Scenario.Topography.Structure.Assembly import Swarm.Game.Scenario.Topography.Structure.Named +import Swarm.Game.Scenario.Topography.WorldDescription import Swarm.Game.Scenario.Topography.WorldPalette import Swarm.Render.Image import Swarm.Util.Content (getTerrainEntityColor) @@ -179,14 +179,16 @@ doRenderStructures scenarioFilepath outputFilepath = do (scenario, _) <- loadStandaloneScenario scenarioFilepath let sMap = scenario ^. scenarioDiagnostic . scenarioStructureMap - sMapWorld = view worldStructureMap . worldDiagnostic . NE.head $ - scenario ^. scenarioLandscape . scenarioWorlds + sMapWorld = + view worldStructureMap . worldDiagnostic . NE.head $ + scenario ^. scenarioLandscape . scenarioWorlds aMap = scenario ^. scenarioLandscape . scenarioCosmetics sendIO $ do g <- renderStructuresGraph (ImgRendering 8 DiagonalIndicators) $ - M.map (applyStructureColors aMap) + M.map + (applyStructureColors aMap) -- sMap sMapWorld putStrLn $ "Rendering to path: " ++ outputFilepath diff --git a/src/swarm-scenario/Swarm/Game/Scenario/Topography/WorldDescription.hs b/src/swarm-scenario/Swarm/Game/Scenario/Topography/WorldDescription.hs index e89835f93..ae0a5b27b 100644 --- a/src/swarm-scenario/Swarm/Game/Scenario/Topography/WorldDescription.hs +++ b/src/swarm-scenario/Swarm/Game/Scenario/Topography/WorldDescription.hs @@ -1,8 +1,8 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE TemplateHaskell #-} -- | -- SPDX-License-Identifier: BSD-3-Clause @@ -10,10 +10,11 @@ module Swarm.Game.Scenario.Topography.WorldDescription where import Control.Carrier.Reader (runReader) import Control.Carrier.Throw.Either -import Swarm.Util.Lens (makeLensesNoSigs) +import Control.Lens hiding (Const, use, uses, view, (%=), (+=), (.=), (<+=), (<<.=)) import Control.Monad (forM) import Data.Coerce import Data.Functor.Identity +import Data.Map qualified as M import Data.Text qualified as T import Data.Yaml as Y import Swarm.Game.Entity (Entity) @@ -35,7 +36,9 @@ import Swarm.Game.Scenario.Topography.Structure ( NamedStructure, parseStructure, ) +import Swarm.Game.Scenario.Topography.Structure qualified as Structure import Swarm.Game.Scenario.Topography.Structure.Assembly qualified as Assembly +import Swarm.Game.Scenario.Topography.Structure.Named qualified as Structure import Swarm.Game.Scenario.Topography.Structure.Overlay ( PositionedGrid (..), ) @@ -43,14 +46,11 @@ import Swarm.Game.Scenario.Topography.Structure.Recognition.Static (LocatedStruc import Swarm.Game.Scenario.Topography.WorldPalette import Swarm.Game.Universe (SubworldName (DefaultRootSubworld)) import Swarm.Game.World.Parse () -import Control.Lens hiding (Const, use, uses, view, (%=), (+=), (.=), (<+=), (<<.=)) import Swarm.Game.World.Syntax import Swarm.Game.World.Typecheck import Swarm.Pretty (prettyString) +import Swarm.Util.Lens (makeLensesNoSigs) import Swarm.Util.Yaml -import Data.Map qualified as M -import Swarm.Game.Scenario.Topography.Structure qualified as Structure -import Swarm.Game.Scenario.Topography.Structure.Named qualified as Structure ------------------------------------------------------------ -- World description @@ -65,7 +65,6 @@ makeLensesNoSigs ''WorldDiagnostic -- | Raw structure definitions at the subworld level worldStructureMap :: Lens' WorldDiagnostic (M.Map Structure.StructureName (Structure.NamedStructure (Maybe Cell))) - -- | A description of a world parsed from a YAML file. -- This type is parameterized to accommodate Cells that -- utilize a less stateful Entity type. diff --git a/src/swarm-topography/Swarm/Game/Scenario/Topography/Structure/Assembly.hs b/src/swarm-topography/Swarm/Game/Scenario/Topography/Structure/Assembly.hs index e1a4ac3be..40bd54bff 100644 --- a/src/swarm-topography/Swarm/Game/Scenario/Topography/Structure/Assembly.hs +++ b/src/swarm-topography/Swarm/Game/Scenario/Topography/Structure/Assembly.hs @@ -15,7 +15,6 @@ module Swarm.Game.Scenario.Topography.Structure.Assembly ( ) where -import Data.Tree import Control.Arrow (left, (&&&)) import Control.Monad (when) import Data.Coerce @@ -25,6 +24,7 @@ import Data.Map qualified as M import Data.Set qualified as Set import Data.Text (Text) import Data.Text qualified as T +import Data.Tree import Linear.Affine import Swarm.Game.Location import Swarm.Game.Scenario.Topography.Area