Skip to content

Restyled preview structure relationships #2322

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: dev/preview-structures
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions src/swarm-render/Swarm/Render/Structures.hs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TemplateHaskell #-}

-- |
-- SPDX-License-Identifier: BSD-3-Clause
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)
Expand All @@ -35,22 +36,21 @@ 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 (..),
)
import Swarm.Game.Scenario.Topography.Structure.Recognition.Static (LocatedStructure)
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
Expand All @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down