Cleanup. Only update draw distance every 5 frames
This commit is contained in:
+15
-15
@@ -21,7 +21,7 @@ import Geometry.Data
|
||||
import Control.Lens
|
||||
import Data.Aeson
|
||||
import Data.Aeson.TH
|
||||
import qualified Data.Sequence as Seq
|
||||
--import qualified Data.Sequence as Seq
|
||||
import Dodge.Data.Hammer
|
||||
import Dodge.Data.Item.HeldUse
|
||||
import Dodge.Data.Item.Use.Consumption
|
||||
@@ -60,7 +60,7 @@ data ItemUse
|
||||
| CraftUse
|
||||
-- {_useAmount :: ItAmount}
|
||||
| AttachUse
|
||||
{_attachParams :: AttachParams}
|
||||
-- {_attachParams :: AttachParams}
|
||||
| AmmoMagUse
|
||||
{ _amagLoadStatus :: ReloadStatus
|
||||
, _amagParams :: AmmoParams
|
||||
@@ -105,11 +105,11 @@ data HeldParams
|
||||
}
|
||||
deriving (Eq, Show, Read) --Generic, Flat)
|
||||
|
||||
data AttachParams
|
||||
= ScrollAttachParams {_scrollAttachParams :: ScrollAttachParams}
|
||||
| TargetAttachParams
|
||||
| NoAttachParams
|
||||
deriving (Eq, Show, Read) --Generic, Flat)
|
||||
--data AttachParams
|
||||
-- = ScrollAttachParams {_scrollAttachParams :: ScrollAttachParams}
|
||||
-- | TargetAttachParams
|
||||
-- | NoAttachParams
|
||||
-- deriving (Eq, Show, Read) --Generic, Flat)
|
||||
|
||||
data AmmoParams = BulletParams {_ampBullet :: Bullet}
|
||||
| ProjectileParams
|
||||
@@ -120,10 +120,10 @@ data AmmoParams = BulletParams {_ampBullet :: Bullet}
|
||||
| GasParams {_ampCreateGas :: GasFuel}
|
||||
deriving (Eq, Show, Read) --Generic, Flat)
|
||||
|
||||
data ScrollAttachParams
|
||||
= CharScrollParams
|
||||
{ _scrollChar :: Seq.Seq Char}
|
||||
deriving (Eq, Show, Read) --Generic, Flat)
|
||||
--data ScrollAttachParams
|
||||
-- = CharScrollParams
|
||||
-- { _scrollChar :: Seq.Seq Char}
|
||||
-- deriving (Eq, Show, Read) --Generic, Flat)
|
||||
|
||||
data AimParams = AimParams
|
||||
{ _aimWeight :: Int
|
||||
@@ -202,8 +202,8 @@ makeLenses ''AimParams
|
||||
makeLenses ''ItZoom
|
||||
makeLenses ''Muzzle
|
||||
makeLenses ''HeldParams
|
||||
makeLenses ''AttachParams
|
||||
makeLenses ''ScrollAttachParams
|
||||
--makeLenses ''AttachParams
|
||||
--makeLenses ''ScrollAttachParams
|
||||
makeLenses ''AmmoParams
|
||||
makeLenses ''MuzzleEffect
|
||||
deriveJSON defaultOptions ''MuzzleEffect
|
||||
@@ -213,8 +213,8 @@ deriveJSON defaultOptions ''AmmoParams
|
||||
deriveJSON defaultOptions ''HeldParams
|
||||
deriveJSON defaultOptions ''Muzzle
|
||||
deriveJSON defaultOptions ''AimStance
|
||||
deriveJSON defaultOptions ''ScrollAttachParams
|
||||
deriveJSON defaultOptions ''AttachParams
|
||||
--deriveJSON defaultOptions ''ScrollAttachParams
|
||||
--deriveJSON defaultOptions ''AttachParams
|
||||
deriveJSON defaultOptions ''ItZoom
|
||||
deriveJSON defaultOptions ''AimParams
|
||||
deriveJSON defaultOptions ''ItemUse
|
||||
|
||||
@@ -104,9 +104,9 @@ chemFuelPouch =
|
||||
bulletSynthesizer :: Item
|
||||
bulletSynthesizer = defaultHeldItem
|
||||
& itType . iyBase .~ ATTACH BULLETSYNTHESIZER
|
||||
& itUse .~ AttachUse NoAttachParams
|
||||
& itUse .~ AttachUse
|
||||
|
||||
rocketHomer :: Item
|
||||
rocketHomer = defaultHeldItem
|
||||
& itType . iyBase .~ ATTACH ROCKETHOMER
|
||||
& itUse .~ AttachUse NoAttachParams
|
||||
& itUse .~ AttachUse
|
||||
|
||||
@@ -19,10 +19,10 @@ targetingScope :: TargetType -> Item
|
||||
targetingScope tt =
|
||||
defaultHeldItem
|
||||
& itType . iyBase .~ ATTACH (TARGETATTACH tt)
|
||||
& itUse .~ AttachUse TargetAttachParams
|
||||
& itUse .~ AttachUse
|
||||
|
||||
rocketRemoteScreen :: Item
|
||||
rocketRemoteScreen =
|
||||
defaultHeldItem
|
||||
& itType . iyBase .~ ATTACH ROCKETREMOTESCREEN
|
||||
& itUse .~ AttachUse NoAttachParams
|
||||
& itUse .~ AttachUse
|
||||
|
||||
@@ -91,14 +91,14 @@ moveZoomCamera cfig theinput cr campos =
|
||||
guard (SDL.ButtonRight `M.member` _mouseButtons theinput)
|
||||
i <- cr ^? crManipulation . manObject . inInventory . ispItem
|
||||
(cr ^? crInv . ix i . itScope . remotePos)
|
||||
mscopeoffset = do
|
||||
camrot = campos ^. camRot
|
||||
newcen = _crPos cr +.+ offset
|
||||
offset = fromMaybe noscopeoffset $ do
|
||||
guard (SDL.ButtonRight `M.member` _mouseButtons theinput)
|
||||
i <- cr ^? crManipulation . manObject . inInventory . ispItem
|
||||
(fmap (rotateV camrot) (cr ^? crInv . ix i . itScope . opticPos))
|
||||
<|> (cr ^? crInv . ix i . itScope . remotePos)
|
||||
camrot = campos ^. camRot
|
||||
newcen = _crPos cr +.+ fromMaybe (V2 0 0) mscopeoffset +.+ offset
|
||||
offset =
|
||||
noscopeoffset =
|
||||
rotateV (campos ^. camRot) $
|
||||
((newzoom - newDefaultZoom) / (newDefaultZoom * newzoom)) *.* _mousePos theinput
|
||||
newzoom = fromMaybe (newDefaultZoom * newItemZoom) $ do
|
||||
@@ -131,7 +131,6 @@ moveZoomCamera cfig theinput cr campos =
|
||||
-- is wanted
|
||||
updateScopeZoom :: World -> World
|
||||
updateScopeZoom w = fromMaybe w $ do
|
||||
--i <- yourScopeInvID w
|
||||
i <- you w ^? crManipulation . manObject . inInventory . ispItem
|
||||
return $ updateScopeZoom' i w
|
||||
|
||||
@@ -251,10 +250,11 @@ findBoundDists cfig w
|
||||
hh = halfHeight cfig
|
||||
|
||||
updateBounds :: Configuration -> World -> World
|
||||
updateBounds cfig w =
|
||||
w
|
||||
updateBounds cfig w = case (w ^. cWorld . cClock) `mod` 5 of
|
||||
0 -> w
|
||||
& wCam . camBoundDist .~ bdists
|
||||
& wCam . camBoundBox
|
||||
.~ map ((+.+ w ^. wCam . camCenter) . rotateV (w ^. wCam . camRot)) (rectNSWE n s w' e)
|
||||
_ -> w
|
||||
where
|
||||
bdists@(n, s, e, w') = findBoundDists cfig w
|
||||
|
||||
Reference in New Issue
Block a user