Skip to content

Commit

Permalink
Brought up to date
Browse files Browse the repository at this point in the history
  • Loading branch information
davesmith00000 committed Oct 1, 2024
1 parent edd9295 commit 55ef817
Show file tree
Hide file tree
Showing 28 changed files with 14 additions and 76 deletions.
2 changes: 0 additions & 2 deletions demo/src/main/scala/demo/ColourWindow.scala
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@ import roguelikestarterkit.ui.components.BoundsType
import roguelikestarterkit.ui.components.ComponentGroup
import roguelikestarterkit.ui.components.ScrollPane
import roguelikestarterkit.ui.components.TerminalButton
import roguelikestarterkit.ui.components.TerminalLabel
import roguelikestarterkit.ui.components.TerminalScrollPane
import roguelikestarterkit.ui.components.datatypes.Anchor
import roguelikestarterkit.ui.components.datatypes.BoundsMode
import roguelikestarterkit.ui.components.datatypes.ComponentLayout
import roguelikestarterkit.ui.components.datatypes.FitMode
import roguelikestarterkit.ui.components.datatypes.Overflow
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.window.Space
Expand Down
1 change: 0 additions & 1 deletion demo/src/main/scala/demo/ComponentsWindow.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import roguelikestarterkit.ui.components.ComponentGroup
import roguelikestarterkit.ui.components.TerminalButton
import roguelikestarterkit.ui.components.TerminalLabel
import roguelikestarterkit.ui.components.datatypes.ComponentLayout
import roguelikestarterkit.ui.components.datatypes.Overflow
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.window.TerminalWindow

Expand Down
1 change: 0 additions & 1 deletion demo/src/main/scala/demo/ComponentsWindow2.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import roguelikestarterkit.ui.components.TerminalLabel
import roguelikestarterkit.ui.components.TerminalTextArea
import roguelikestarterkit.ui.components.datatypes.ComponentId
import roguelikestarterkit.ui.components.datatypes.ComponentLayout
import roguelikestarterkit.ui.components.datatypes.Overflow
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.window.TerminalWindow

Expand Down
2 changes: 0 additions & 2 deletions demo/src/main/scala/demo/MenuWindow.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@ package demo

import indigo.*
import roguelikestarterkit.*
import roguelikestarterkit.ui.components.ComponentGroup
import roguelikestarterkit.ui.components.ComponentList
import roguelikestarterkit.ui.components.TerminalButton
import roguelikestarterkit.ui.components.datatypes.ComponentId
import roguelikestarterkit.ui.components.datatypes.ComponentLayout
import roguelikestarterkit.ui.components.datatypes.Overflow
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.window.TerminalWindow

Expand Down
1 change: 0 additions & 1 deletion demo/src/main/scala/demo/NoTerminalUI.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import indigo.shared.subsystems.SubSystemFrameContext.*
import roguelikestarterkit.*
import roguelikestarterkit.ui.component.Component
import roguelikestarterkit.ui.components.ComponentGroup
import roguelikestarterkit.ui.components.ComponentList

object NoTerminalUI extends Scene[Size, Model, ViewModel]:

Expand Down
1 change: 1 addition & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
pkgs.nodejs
pkgs.yarn
pkgs.nodePackages_latest.http-server
pkgs.bloop
];
shellHook = startupHook;
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
package roguelikestarterkit.ui.components

import indigo.*
import indigo.syntax.*
import roguelikestarterkit.TerminalEmulator
import roguelikestarterkit.syntax.*
import roguelikestarterkit.terminal.RogueTerminalEmulator
import roguelikestarterkit.terminal.TerminalMaterial
import roguelikestarterkit.tiles.Tile
import roguelikestarterkit.ui.components.Button
import roguelikestarterkit.ui.components.TerminalTileColors
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.CharSheet
import roguelikestarterkit.ui.datatypes.Coords
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,14 @@
package roguelikestarterkit.ui.components

import indigo.*
import indigo.syntax.*
import roguelikestarterkit.Tile
import roguelikestarterkit.syntax.*
import roguelikestarterkit.terminal.RogueTerminalEmulator
import roguelikestarterkit.terminal.TerminalMaterial
import roguelikestarterkit.tiles.RoguelikeTiles10x10
import roguelikestarterkit.tiles.RoguelikeTiles5x6
import roguelikestarterkit.ui.component.Component
import roguelikestarterkit.ui.components.TerminalTileColors
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.CharSheet
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions
import roguelikestarterkit.ui.datatypes.UIContext

import scala.annotation.tailrec
import scala.annotation.targetName

object TerminalInput:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package roguelikestarterkit.ui.components

import indigo.*
import indigo.syntax.*
import roguelikestarterkit.syntax.*
import roguelikestarterkit.terminal.RogueTerminalEmulator
import roguelikestarterkit.terminal.TerminalMaterial
import roguelikestarterkit.ui.components.TerminalTileColors
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.CharSheet
import roguelikestarterkit.ui.datatypes.Coords
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
package roguelikestarterkit.ui.components

import indigo.*
import indigo.syntax.*
import roguelikestarterkit.syntax.*
import roguelikestarterkit.terminal.RogueTerminalEmulator
import roguelikestarterkit.terminal.TerminalMaterial
import roguelikestarterkit.ui.components.TerminalTileColors
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.CharSheet
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions

import scala.annotation.targetName

object TerminalTextArea:

private def findBounds(text: List[String]): Bounds =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,12 @@ package roguelikestarterkit.ui.window
import indigo.*
import indigo.syntax.*
import roguelikestarterkit.CharSheet
import roguelikestarterkit.Coords
import roguelikestarterkit.Dimensions
import roguelikestarterkit.MapTile
import roguelikestarterkit.TerminalMaterial
import roguelikestarterkit.Tile
import roguelikestarterkit.UIContext
import roguelikestarterkit.terminal.RogueTerminalEmulator
import roguelikestarterkit.ui.component.Component
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.datatypes.Bounds

object TerminalWindow:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package roguelikestarterkit.ui.components
import indigo.*
import indigo.syntax.*
import roguelikestarterkit.ui.component.Component
import roguelikestarterkit.ui.components.datatypes.ComponentLayout.Horizontal
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ import roguelikestarterkit.ui.components.datatypes.Overflow
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.datatypes.*

import scala.annotation.tailrec

/** Describes a fixed arrangement of components, manages their layout, which may include anchored
* components.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ import roguelikestarterkit.ui.components.datatypes.ComponentLayout
import roguelikestarterkit.ui.components.datatypes.ContainerLikeFunctions
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.datatypes.*
import ultraviolet.syntax.layout

import scala.annotation.tailrec

/** Describes a dynamic list of components, and their realtive layout.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import roguelikestarterkit.ui.datatypes.Dimensions
import roguelikestarterkit.ui.datatypes.UIContext

import scala.annotation.tailrec
import scala.annotation.targetName

/** Input components allow the user to input text information.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,17 @@ package roguelikestarterkit.ui.components

import indigo.*
import roguelikestarterkit.ui.component.*
import roguelikestarterkit.ui.components.Button
import roguelikestarterkit.ui.components.DragData
import roguelikestarterkit.ui.components.datatypes.Anchor
import roguelikestarterkit.ui.components.datatypes.BoundsMode
import roguelikestarterkit.ui.components.datatypes.ComponentEntry
import roguelikestarterkit.ui.components.datatypes.ComponentId
import roguelikestarterkit.ui.components.datatypes.ComponentLayout
import roguelikestarterkit.ui.components.datatypes.ContainerLikeFunctions
import roguelikestarterkit.ui.components.datatypes.FitMode
import roguelikestarterkit.ui.components.datatypes.Overflow
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.components.datatypes.ScrollMode
import roguelikestarterkit.ui.components.datatypes.ScrollOptions
import roguelikestarterkit.ui.datatypes.*
import roguelikestarterkit.ui.shaders.LayerMask

import java.lang.ref.Reference
import scala.annotation.tailrec

/** Describes a fixed arrangement of components, manages their layout, which may include anchored
* components.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package roguelikestarterkit.ui.components.datatypes

import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package roguelikestarterkit.ui.components.datatypes

import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions

/** Describes how a ComponentGroup responds to changes in its parents bounds.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package roguelikestarterkit.ui.components.datatypes

import indigo.*
import roguelikestarterkit.ui.component.Component
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.Coords

/** `ComponentEntry`s record a components model, position, and relevant component typeclass instance
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package roguelikestarterkit.ui.components.datatypes

import roguelikestarterkit.ui.datatypes.Dimensions

/** `ComponentLayout` instructs a `ComponentGroup` how it should layout the components it contains.
* They are always placed one after another, optionally with some padding unless the layout type is
* `None`.
Expand Down Expand Up @@ -36,11 +34,8 @@ object ComponentLayout:
Horizontal(Padding.zero, overflow)

extension (h: Horizontal)
def withPadding(value: Padding): Horizontal = h.copy(padding = value)
def withOverflow(value: Overflow): Horizontal = h.copy(overflow = value)

object Vertical:
def apply(): Vertical =
Vertical(Padding.zero)

extension (h: Vertical) def withPadding(value: Padding): Vertical = h.copy(padding = value)
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package roguelikestarterkit.ui.components.datatypes

import roguelikestarterkit.ui.datatypes.Bounds

/** Describes the padding between components.
*/
final case class Padding(top: Int, right: Int, bottom: Int, left: Int):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package roguelikestarterkit.ui.datatypes

import indigo.*
import indigo.scenes.SceneContext

final case class UIContext[ReferenceData](
bounds: Bounds,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package roguelikestarterkit.ui.shaders
import indigo.*
import indigo.syntax.shaders.*

import scala.annotation.nowarn

final case class LayerMask(mask: Rectangle) extends BlendMaterial:
lazy val toShaderData: BlendShaderData =
BlendShaderData(
Expand Down Expand Up @@ -41,6 +43,7 @@ object LayerMask:
MASK_BOUNDS: vec4
)

@nowarn("msg=unused")
inline def fragment =
Shader[Env] { env =>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package roguelikestarterkit.ui.window

import indigo.*
import roguelikestarterkit.ui.component.Component
import roguelikestarterkit.ui.components.datatypes.Padding
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package roguelikestarterkit.ui.window

import indigo.*
import roguelikestarterkit.ui.datatypes.Coords

/** Internal events */
enum WindowInternalEvent extends GlobalEvent:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package roguelikestarterkit.ui.window

import indigo.*
import indigo.shared.FrameContext
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions
import roguelikestarterkit.ui.datatypes.UIContext
import roguelikestarterkit.ui.datatypes.UIState

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
package roguelikestarterkit.ui.window

import indigo.*
import roguelikestarterkit.ui.component.Component
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.Bounds.dimensions
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions
import roguelikestarterkit.ui.datatypes.UIContext

object WindowView:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ package roguelikestarterkit.ui.window
import indigo.*
import indigo.syntax.*
import roguelikestarterkit.ui.datatypes.Bounds
import roguelikestarterkit.ui.datatypes.Coords
import roguelikestarterkit.ui.datatypes.Dimensions
import roguelikestarterkit.ui.datatypes.UIContext

final case class WindowViewModel[ReferenceData](
Expand Down Expand Up @@ -37,10 +35,10 @@ object WindowViewModel:
viewModel: WindowViewModel[ReferenceData]
): GlobalEvent => Outcome[WindowViewModel[ReferenceData]] =
case FrameTick if model.bounds.hashCode() != viewModel.modelHashCode =>
Outcome(redraw(context, model, viewModel))
Outcome(redraw(model, viewModel))

case WindowInternalEvent.Redraw =>
Outcome(redraw(context, model, viewModel))
Outcome(redraw(model, viewModel))

case MouseEvent.Move(pt)
if viewModel.mouseIsOver && !model.bounds
Expand All @@ -59,15 +57,15 @@ object WindowViewModel:
case _ =>
Outcome(viewModel)

private def calculateDragBy(
charSize: Size,
mousePosition: Point,
windowPosition: Coords
): Coords =
Coords(mousePosition / charSize.toPoint) - windowPosition
// private def calculateDragBy(
// charSize: Size,
// mousePosition: Point,
// windowPosition: Coords
// ): Coords =
// Coords(mousePosition / charSize.toPoint) - windowPosition

private def redraw[A, ReferenceData](
context: UIContext[ReferenceData],
// context: UIContext[ReferenceData],
model: Window[A, ReferenceData],
viewModel: WindowViewModel[ReferenceData]
): WindowViewModel[ReferenceData] =
Expand Down

0 comments on commit 55ef817

Please sign in to comment.