diff --git a/tagless/src/tf/bug/fancade/tagless/Fanscript.scala b/tagless/src/tf/bug/fancade/tagless/Fanscript.scala new file mode 100644 index 0000000..8d0b408 --- /dev/null +++ b/tagless/src/tf/bug/fancade/tagless/Fanscript.scala @@ -0,0 +1,32 @@ +package tf.bug.fancade.tagless + +trait Fanscript[F[_]] { + + def unit: F[Unit] + def lift(b: Boolean): F[Boolean] + def lift(f: Float): F[Float] + def lift(v: Vector): F[Vector] + def lift(r: Rotation): F[Rotation] + def lift(o: Obj): F[Obj] + + def win(stopProgram: Boolean)(andThen: () => F[Unit]): F[Unit] + def lose(stopProgram: Boolean)(andThen: () => F[Unit]): F[Unit] + def setScore(scoreMode: ScoreMode)(score: F[Float], andThen: () => F[Unit]): F[Unit] + def setCamera(position: F[Vector], rotation: F[Rotation], distance: F[Float], andThen: () => F[Unit]): F[Unit] + def setLight(position: F[Vector], rotation: F[Rotation], andThen: () => F[Unit]): F[Unit] + def screenSize: F[ScreenSize] + def accelerometer: F[Vector] + + def getPosition(obj: F[Obj]): F[PosRot] + def setPosition(obj: F[Obj], position: F[Vector], rotation: F[Rotation], andThen: () => F[Unit]): F[Unit] + def rayCast(from: F[Vector], to: F[Vector]): F[RaycastResult] + def getSize(obj: F[Obj]): F[ObjSize] + def setVisible(obj: F[Obj], visible: F[Boolean], andThen: () => F[Unit]): F[Unit] + def createObj(original: F[Obj], andThen: (F[Obj]) => F[Unit]): F[Unit] + def destroyObj(obj: F[Obj], andThen: () => F[Unit]): F[Unit] + + def playSound(loop: Boolean, sample: Sample)(volume: F[Float], pitch: F[Float], andThen: (F[Float]) => F[Unit]): F[Unit] + def stopSound(channel: F[Float], andThen: () => F[Unit]): F[Unit] + def volumePitch(channel: F[Float], volume: F[Float], pitch: F[Float], andThen: () => F[Unit]): F[Unit] + +} diff --git a/tagless/src/tf/bug/fancade/tagless/Qux.scala b/tagless/src/tf/bug/fancade/tagless/Qux.scala deleted file mode 100644 index 0943fab..0000000 --- a/tagless/src/tf/bug/fancade/tagless/Qux.scala +++ /dev/null @@ -1,5 +0,0 @@ -package tf.bug.fancade.tagless - -object Qux { - -}