Add code for determining item orientation

This commit is contained in:
2025-06-28 21:21:50 +01:00
parent 4f0dc64e72
commit 6af2a8cc36
7 changed files with 197 additions and 138 deletions
+4 -2
View File
@@ -6,6 +6,7 @@ module Dodge.Projectile.Create (
--import Dodge.Data.ComposedItem
--import Dodge.Data.DoubleTree
import qualified Quaternion as Q
import Dodge.Data.Muzzle
import Data.Maybe
import Dodge.Data.World
@@ -21,6 +22,7 @@ data PJStabiliser
-- assumes the mscreen is in your inventory
createShell ::
(Point3, Q.Quaternion Float) ->
Maybe (NewInt ItmInt) ->
Maybe (NewInt ItmInt) ->
Maybe PJStabiliser ->
@@ -30,7 +32,7 @@ createShell ::
Creature ->
World ->
World
createShell mdetonator mscreen stab pjtype payload muz cr w =
createShell (p,q) mdetonator mscreen stab pjtype payload muz cr w =
w
& updatescreen
& updatedetonator
@@ -91,4 +93,4 @@ createShell mdetonator mscreen stab pjtype payload muz cr w =
.:~ i
i = IM.newKey $ w ^. cWorld . lWorld . projectiles
dir = _crDir cr + _mzRot muz
pos = _crPos cr +.+ rotateV dir (_mzPos muz)
pos = _crPos cr + xyV3 p + rotateV dir (_mzPos muz)