Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
Bruce0203 committed Aug 19, 2023
1 parent e5b1ad5 commit f1e64ca
Show file tree
Hide file tree
Showing 10 changed files with 108 additions and 23 deletions.
2 changes: 1 addition & 1 deletion client/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ korge {
targetDesktop()
targetAndroid()
entryPoint = "runMain"
orientation = Orientation.DEFAULT
orientation = Orientation.LANDSCAPE
icon = File(projectDir, "src/commonMain/resources/images/logo.png"
.replace("/", File.separator))
exeBaseName = "Skeep"
Expand Down
2 changes: 2 additions & 0 deletions client/src/androidMain/kotlin/main.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import io.ktor.client.engine.cio.*
import korlibs.io.file.std.resourcesVfs
import korlibs.io.lang.readProperties

Expand All @@ -10,5 +11,6 @@ suspend fun main() {
val clientProps = resourcesVfs["client.properties"].readProperties()
currentUrl = clientProps["server"]!!
version = clientProps["version"]!!
engine = CIO
startMain()
}
9 changes: 4 additions & 5 deletions client/src/commonMain/kotlin/MainScene.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ import korlibs.korge.scene.Scene
import korlibs.korge.style.*
import korlibs.korge.view.*
import network.ServerClosedPacket
import ui.createRoomMenu
import ui.loadingMenu
import ui.loginMenuView
import ui.newCreateRoomMenu
import util.ColorPalette
import util.launchNow
import util.transform
Expand Down Expand Up @@ -44,10 +46,7 @@ class MainScene : Scene() {
positionY(screen.height - height - padding)
positionX(padding*2)
}
// screen.createRoomMenu()
// loginMenu(sceneContainer)
// screen.loginMenu()
loginMenuView()
// MainMenuState().mainMenu()
newCreateRoomMenu()
// loginMenuView()
}
}
6 changes: 4 additions & 2 deletions client/src/commonMain/kotlin/start.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import korlibs.korge.Korge
import korlibs.korge.scene.SceneContainer
import korlibs.korge.scene.sceneContainer
import korlibs.korge.view.*
import korlibs.korge.view.ktree.readKTree
import korlibs.math.geom.Anchor
import korlibs.math.geom.ScaleMode
import korlibs.math.geom.Size
Expand Down Expand Up @@ -40,7 +41,8 @@ suspend fun startMain() {
scaleAnchor = Anchor.TOP_LEFT,
backgroundColor = ColorPalette.background
) {
scene = sceneContainer()
scene.changeTo({ MainScene() })
// scene = sceneContainer()
// scene.changeTo({ MainScene() })
addChild(resourcesVfs["scene.ktree"].readKTree(views))
}
}
15 changes: 8 additions & 7 deletions client/src/commonMain/kotlin/ui/custom/TextEditController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@ class TextEditController(
//val endX = getCaretAtIndex(range.endExclusive)
val xOffset =
if (textView.styles.textAlignment.horizontal.equals(HorizontalAlign.CENTER)) textView.width/2f else 0f
val xOffsetPoint = Point(xOffset, 0)
val array = PointArrayList(if (range.isEmpty()) 2 else (range.length + 1) * 2)
if (range.isEmpty()) {
val last = (range.first >= this.text.length)
Expand All @@ -286,19 +287,19 @@ class TextEditController(
val normal = caret.normal(0f) * (2.0 * sign)
val p0 = caret.points.first
val p1 = caret.points.last
array.add(p0 + Point(xOffset, 0))
array.add(p1 + Point(xOffset, 0))
array.add(p0 + normal + Point(xOffset, 0))
array.add(p1 + normal + Point(xOffset, 0))
array.add(p0 + xOffsetPoint)
array.add(p1 + xOffsetPoint)
array.add(p0 + normal + xOffsetPoint)
array.add(p1 + normal + xOffsetPoint)
} else {
for (n in range.first..range.last + 1) {
val caret = getCaretAtIndex(n)
array.add(caret.points.first)
array.add(caret.points.last)
array.add(caret.points.first + xOffsetPoint)
array.add(caret.points.last + xOffsetPoint)
//println("caret[$n]=$caret")
}
}
caret.colorMul = Colors.WHITE
caret.color = Colors.WHITE
caret.pointsList = listOf(array)
/*
caret.x = startX.x0
Expand Down
6 changes: 5 additions & 1 deletion client/src/commonMain/kotlin/ui/custom/uiTextInput.kt
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ class UITextInput(parent: View, hint: String, initialText: String = " ", size: S
}
alpha = 0.5f
}
)
).apply {
caretContainer.transform {
caretContainer.alignY(this@UITextInput, 0.75, false)
}
}

//init { uiScrollable { } }

Expand Down
80 changes: 80 additions & 0 deletions client/src/commonMain/kotlin/ui/newCreateRoomMenu.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package ui

import korlibs.image.color.Colors
import korlibs.image.text.TextAlignment
import korlibs.korge.style.styles
import korlibs.korge.style.textAlignment
import korlibs.korge.style.textSize
import korlibs.korge.ui.uiContainer
import korlibs.korge.ui.uiMaterialLayer
import korlibs.korge.ui.uiText
import korlibs.korge.ui.uiVerticalStack
import korlibs.korge.view.*
import korlibs.korge.view.align.centerOn
import korlibs.korge.view.align.centerXOn
import korlibs.math.geom.RectCorners
import korlibs.math.geom.Size
import network.CreateRoom
import screen
import styler
import ui.custom.*
import util.ColorPalette
import util.transform

class NewCreateRoomMenuState {
lateinit var createRoomMenu: Container
val createRoomPadding = 30.75f
val minAmount = 2
val maxAmount = 12
val range = maxAmount - minAmount + 1
val blockHeight get() = screen.width / 15
val blockSize get() = Size(500, 120)
val inputSize get() = Size(screen.width / 3f, screen.width / 16f)
lateinit var roomName: UITextInput
lateinit var roomMaxPlayers: CustomUISlider
val cellSize = Size(100, 100)
val cellSelectorSize = Size(cellSize.height*range, cellSize.height)
}
fun newCreateRoomMenu(): Unit = screen.run { NewCreateRoomMenuState().run { container {
createRoomMenu = this

uiVerticalStack(adjustSize = false, padding = createRoomPadding*3) {
styles(styler)
customUiText("방 생성") {
styles.textSize = styles.textSize * 1.25f
}
uiContainer(blockSize) {
uiMaterialLayer(blockSize) {
transform { size = blockSize }
shadowColor = Colors.TRANSPARENT
bgColor = ColorPalette.base
borderColor = Colors.TRANSPARENT
borderSize = createRoomPadding / 6
radius = RectCorners(borderSize * 2)
}.zIndex(1)
customUiTextInput("방 이름", size = blockSize) {
transform { size = blockSize }
}.zIndex(2)
transform { centerXOn(createRoomMenu) }
}
customUiText("최대 인원") {
styles.textSize = styles.textSize * 1.2f
}
uiContainer(cellSelectorSize) {
styles.textSize = styles.textSize * 0.7f
repeat(range) {
uiContainer(cellSize) cell@{
transform { size(cellSize).positionX(it*height) }
uiText("${it+minAmount}").transform { centerOn(this@cell) }
}
}
roomMaxPlayers = customUiSlider(
value = CreateRoom.defaultRoomMaxPlayers,
min = minAmount,
max = maxAmount,
size = cellSelectorSize,
step = 1
).transform { size = cellSelectorSize }
}.transform { centerXOn(createRoomMenu) }
}
}.transform { centerOn(screen) } } }
7 changes: 2 additions & 5 deletions client/src/commonMain/kotlin/ui/newLoginMenu.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@ package ui
import korlibs.event.Key
import korlibs.image.color.Colors
import korlibs.image.text.TextAlignment
import korlibs.korge.input.keys
import korlibs.korge.input.mouse
import korlibs.korge.input.onClick
import korlibs.korge.input.onMouseDragCloseable
import korlibs.korge.input.*
import korlibs.korge.style.styles
import korlibs.korge.style.textAlignment
import korlibs.korge.style.textColor
Expand Down Expand Up @@ -96,7 +93,7 @@ fun loginMenuView(loginMenuState: LoginMenuState = LoginMenuState()): Unit = scr
var joinOnce = false
joinButton.apply {
onClick { join() }
onMouseDragCloseable { launchNow { join() } }
onMouseDrag { launchNow { join() } }
keys { down(Key.ENTER) { join() } }
}

Expand Down
1 change: 0 additions & 1 deletion client/src/commonMain/kotlin/util/coroutineUtil.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@ import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlin.coroutines.CoroutineContext

@DelicateCoroutinesApi
fun launchNow(context: CoroutineContext = GlobalScope.coroutineContext, callback: suspend () -> Unit) = CoroutineScope(context).launchImmediately(callback)
3 changes: 2 additions & 1 deletion deps.kproject.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
#dependencies:
dependencies:
- "https://github.com/korlibs/korge-ext/tree/main/korge-ktree"
# - https://github.com/korlibs/korge-fleks/tree/main/fleks

0 comments on commit f1e64ca

Please sign in to comment.