From 36ad09bdbefc03b407dd2840c765edb97245d186 Mon Sep 17 00:00:00 2001 From: nek0 Date: Sun, 25 Feb 2018 10:30:13 +0100 Subject: [PATCH] placeholder walls --- assets/intruder.png | Bin 0 -> 1837 bytes assets/wall_template.png | Bin 0 -> 15768 bytes assets/walls/wall_desc.kra | Bin 0 -> 58731 bytes assets/walls/wall_desc.png | Bin 0 -> 588 bytes src/Init.hs | 12 +++++++++++- src/Test.hs | 26 +++++++++++++++++++------- src/Types/UserData.hs | 3 ++- 7 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 assets/intruder.png create mode 100644 assets/wall_template.png create mode 100644 assets/walls/wall_desc.kra create mode 100644 assets/walls/wall_desc.png diff --git a/assets/intruder.png b/assets/intruder.png new file mode 100644 index 0000000000000000000000000000000000000000..3428c5d52777b0f7983680a8dfe9b313945b072d GIT binary patch literal 1837 zcmaJ?c~p~E7QbH>5(r38ASenb3RDC`QBkSnW07Sl7-kfLvX!cYK_P`e5w-aOE)W!S z#*G4!x)dA@O%;S9%f~!;ymRik_uTV)@80|F@7s~b?$%UKO}+U1TxNs$OaZ5<()p`?9&TT|Yc+UO+>BTY z(Ik|H@3^lkpO2!WO_1@=mzJ;{9GrCB>Ps<`Mqre4CQtan|C*f{nA7tdC%We$c!}ks z2Lo>N(?QDbLCtGYymD8C`AE_XH)@Wx6mCA{RI^|Gi2}Sa@4@&*{ru zddoqo0NtOP2D|oYw@s!709#t#{LBcE4~oatmY4=s*s3_bxHup9Pk&DO;oDL!3Y!w* z?+6XL8j2~?Pd>h*FHG*u{Z=tzrBUu*191YxW`0eld$_fPA>y2cG5S=0MET^Q$~mE} zWFN32;;&feZErlgZd=AhZ+L^-G#6S#U)YG}q9^k7{LtaHVKGQs0|ml$1$oH@Amz?- z-|CnUx#xh}TtgZ{!g9j}o>~(2-%|^-`@cLEGSRlNVDxz#38P6krrKR~nyB`LzABm~ z+Ood~BVo%w(!WPTHoa#S@HtX&v;?%F{#``wkZ=F^lBT)0h+=SEJ zt@Fhe`n590&17}o!er>oQO}>%S#g=O=`mfy6=XJvz12AGI#d4c*cUbOl8VgJ*W77T z@UZyDtsO|rL08~Ec-1?z49r(9j}t4sfh)C^w=>}DQ`mJDY+@j?9UJO4z8Oys=}&0M zMI)=?F~9?J04N~+<9T6^Zg{jL->~ktM3(m1chi?Y%~==zNYm7|Pb+4!Z)W5i*XNdd;sfUjmd#?t5E$h7hQUrZm56+DQOIU(0y-#0?0qzaP zoaP*!(B%&^*0iatZBaR!o+ma98;MuScS~E%fRRSBp9pZWLU@5THL_rivr(`__atL7 z^{L=2egHX7%UUDSo-xCAdWxT#tbt!$-rZ1)QS1=>X58?Rs(Ct;G~W&-A$ZFwU*i!6 zVsglbMoAP14%1zz_5~ne?K0i3B6kC#Mpw<8ps4;xy&DSbKO;-Yc@Zo-xXNaFm2{VS zzRsi0dtuR0;vs(;<_3s7P8|If%lcla6rSUq8 zrd{zB&R-?*szeX-i3T7lsXZVnzQ#jo4=1q-1d(SxEVcDf_jw|&E(Up2{9#`MgYs!UiC z(-{aV-m8ydM$RX2K5y|kzOp7J5L-fYuVmI_{h%Z9_5w&dU4Y5-xy~rUiW3$BqD4#u z{XJr_&*HS6GmFycAhDP(cP1;ZC|g%m2Y?{e&DNxF>zjTdg)1dzOnn?19(CuucOAoy zeP|+#36co2I8$8P7)KKWx{z;1#KH(ZqSjlU6BO&Y=nK+B^n>s^y@A(uib?`S0dTe5 z(N-rP$=1CM*UT~LcnfmgL$}h70;{nd@V5zCi@0>Uw%KO@wV@;OrJKg+LPS+(ucD&a vb_5NPvs6)Z;+1h9_|5(=pU3}k@SccTzA0He^dR`adsNWQ5Wfna*sT8nXf5d% literal 0 HcmV?d00001 diff --git a/assets/wall_template.png b/assets/wall_template.png new file mode 100644 index 0000000000000000000000000000000000000000..4442b8aae81b885adb156e4facbba9aad101f715 GIT binary patch literal 15768 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 L<|}oHnTP)m)-%o^ literal 0 HcmV?d00001 diff --git a/assets/walls/wall_desc.kra b/assets/walls/wall_desc.kra new file mode 100644 index 0000000000000000000000000000000000000000..4df380ea0e97e52543ff3cb347fd3dd2ab722521 GIT binary patch literal 58731 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 G+5ZP9PBF#+ literal 0 HcmV?d00001 diff --git a/assets/walls/wall_desc.png b/assets/walls/wall_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..1ed769611b8f8cc3f2134fc90afcf8b582f8cdf2 GIT binary patch literal 588 zcmeAS@N?(olHy`uVBq!ia0vp^4nXY1!3HF`KLzaoQk(@Ik;M!Q{D~mUxWayUCQwkM zDkP%Bv9u&3zlec>W9Dh^vt|qo%pV!^n?L)nNr=M5~A0jJFTZ z@gKPTvC5cR;3mV}D}0V@D`cB^7ld(?HQZ7-!jRP{z`lWRAzOl|lk5R07efYZfuoFG z&NCP_ST|<8y?*nw`d3q1d5-Bp`|riPg4`E;ISxH-o8IKX z%He2{wZqIs&q2QBG1v8`1x!B#`mAH5nz$YQ@Kn_A{JDAWo=qlZm23s^%zp~%R|q6s zXV7xdn8WS#M{fexL@B@4fN1s>g%uB_ceh81dw-p}z`pt5vkqgMuj>SvcI@Bnn|12n zZcm^N8?i-1h^+k$u)goEINFX;TKR}t$-|p=^R;yEJx95Yhz{w)`PNod (Window <$> newTVarIO []) <*> (Mouse <$> newTVarIO []) (ws, _) <- yieldSystemT (0, defWorld) (return ()) + mwall <- createImage nvg (FileName "assets/walls/wall_desc.png") 0 + when (isNothing mwall) $ do + logIO Error "Failed to load wall" + exitFailure return UserData { state = Menu , subsystems = subs - , assetImages = M.empty -- FILLME! + , assetImages = M.fromList + [ (ImgWall, fromJust mwall) + ] , nano = nvg , uuid = [] , worldState = ws diff --git a/src/Test.hs b/src/Test.hs index 4406c86..8fbe810 100644 --- a/src/Test.hs +++ b/src/Test.hs @@ -9,6 +9,7 @@ import qualified Graphics.Rendering.OpenGL as GL hiding (get) import Control.Monad (when, void) import Control.Monad.IO.Class (liftIO) +import Data.Map.Strict as Map import Data.Matrix as M (toLists, (!)) import Data.Ecstasy as E @@ -66,6 +67,8 @@ mouseToPlayer mv2 = do (nws, _) <- yieldSystemT (worldState ud) $ do emap $ do with player + pos' <- E.get pos + liftIO $ logIO A.Debug $ show pos' pure $ defEntity' { vel = Set $ V2 dr dc } @@ -123,7 +126,7 @@ updateMap dt = do } | otherwise = defEntity' - pure ent + return ent putAffection ud { worldState = nws } @@ -146,7 +149,7 @@ drawTile row col tile = do beginPath ctx let x = realToFrac $ 640 + ((fromIntegral col - pc + 1) + (fromIntegral row - pr + 1)) * (tileWidth / 2) - y = realToFrac $ 360 + ((fromIntegral row - pr + 1) - + y = realToFrac $ 360 - (tileHeight / 2) + ((fromIntegral row - pr + 1) - (fromIntegral col - pc + 1)) * (tileHeight / 2) fillColor ctx (case tile of Wall -> rgba 128 128 128 255 @@ -158,13 +161,22 @@ drawTile row col tile = do Elev -> rgba 0 0 0 255 _ -> rgba 255 255 0 255 ) - moveTo ctx x y - lineTo ctx (x + realToFrac tileWidth / 2) (y + realToFrac tileHeight / 2) - lineTo ctx (x + realToFrac tileWidth) y - lineTo ctx (x + realToFrac tileWidth / 2) (y - realToFrac tileHeight / 2) + moveTo ctx x (y + realToFrac tileHeight / 2) + lineTo ctx (x + realToFrac tileWidth / 2) (y + realToFrac tileHeight) + lineTo ctx (x + realToFrac tileWidth) (y + realToFrac tileHeight / 2) + lineTo ctx (x + realToFrac tileWidth / 2) y closePath ctx fill ctx - when (floor pr + 1 == row && floor pc - 1 == col) $ do + when (tile == Wall) $ do + paint <- imagePattern + ctx x (y - (74 - realToFrac tileHeight)) 64 74 0 + ((assetImages ud) Map.! ImgWall) + 1 + beginPath ctx + rect ctx x (y - (74 - realToFrac tileHeight)) 64 74 + fillPaint ctx paint + fill ctx + when (floor pr == row && floor pc == col) $ do beginPath ctx circle ctx 640 360 5 closePath ctx diff --git a/src/Types/UserData.hs b/src/Types/UserData.hs index c2b40b9..e0513ae 100644 --- a/src/Types/UserData.hs +++ b/src/Types/UserData.hs @@ -37,7 +37,8 @@ data StateData } data ImgId - = ImgFloor + = ImgWall + deriving (Show, Eq, Ord) data Direction = N