Improve debris slightly
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
module Dodge.Machine.Destroy where
|
||||
module Dodge.Machine.Destroy (destroyMachine) where
|
||||
|
||||
import Geometry.Vector3D
|
||||
import Linear
|
||||
import Dodge.Block.Debris
|
||||
import Dodge.FloorItem
|
||||
import Data.Maybe
|
||||
import Dodge.Data.World
|
||||
@@ -15,7 +16,7 @@ destroyMachine mc =
|
||||
(cWorld . lWorld . machines %~ IM.delete (_mcID mc))
|
||||
. deleteWallIDs (IM.keysSet $ _mcFootPrint mc)
|
||||
. makeMachineDebris mc
|
||||
. makeSmallExplosionAt (_mcPos mc `v2z` 20) 0
|
||||
. makeSmallExplosionAt (20 & _xy .~ _mcPos mc) 0
|
||||
. mcKillTerm mc
|
||||
. mcKillBut mc
|
||||
. destroyMcType (mc ^. mcType) mc
|
||||
@@ -23,18 +24,6 @@ destroyMachine mc =
|
||||
--explodeMachine :: Machine -> MachineType -> World -> World
|
||||
--explodeMachine mc = \case
|
||||
|
||||
makeMachineDebris :: Machine -> World -> World
|
||||
makeMachineDebris _ = id -- foldl' (flip $ makeDebris mt) w ps
|
||||
--makeMachineDebris mc = id -- foldl' (flip $ makeDebris mt) w ps
|
||||
-- where
|
||||
-- dsize = debrisSize mt
|
||||
-- ps = gridInPolygon dsize $ shrinkPolyOnEdges dsize $ reverse (_mcFootprint bl)
|
||||
-- mt = fromMaybe Stone $ do
|
||||
-- wlids <- w ^? cWorld . lWorld . blocks . ix (_blID bl) . blWallIDs
|
||||
-- (wlid, _) <- IS.minView wlids
|
||||
-- wl <- w ^? cWorld . lWorld . walls . ix wlid
|
||||
-- return $ _wlMaterial wl
|
||||
|
||||
destroyMcType :: MachineType -> Machine -> World -> World
|
||||
destroyMcType mt mc w = case mt of
|
||||
McTurret tu _ -> fromMaybe w $ do
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module Dodge.Machine.Draw (drawMachine) where
|
||||
module Dodge.Machine.Draw (drawMachine,mcColor) where
|
||||
|
||||
import Control.Lens
|
||||
import qualified Data.Map.Strict as M
|
||||
|
||||
Reference in New Issue
Block a user