Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
d1bc2cc
[clean] 余分なコメントアウトを削除しました.
rrbox Oct 29, 2022
cbf6e66
[add] Context.swift
rrbox Oct 29, 2022
8d745b2
[add] ContextProtocol を追加
rrbox Oct 29, 2022
e9166ed
[add] Modifier プロトコルを追加しました.
rrbox Oct 29, 2022
125080b
[add] ContextBuilder プロトコルを追加
rrbox Oct 29, 2022
f2822c1
[add] ContextBuilder に `context()` メソッドを追加しました.
rrbox Oct 29, 2022
90e9c23
[move] ContextBuilder.swift を移動しました.
rrbox Oct 29, 2022
713cd1f
[add] ModiferLink を追加しました.
rrbox Oct 29, 2022
5301780
[add] SingleModifierBuilder を追加しました.
rrbox Oct 29, 2022
43e6493
[rename] ContextBuilder フォルダの名称を Context に変更しました.
rrbox Oct 29, 2022
5cbc969
[update] Widget に associatedtype Context を追加しました.
rrbox Oct 29, 2022
8bb25ad
[update] Context を所持しない Widget を作成できるようにした.
rrbox Oct 29, 2022
a40bd35
[update] Context がない Widget の Context を Never にした.
rrbox Oct 29, 2022
0f19286
[update] Widget に `node(context: Context) -> SKNode` を追加しました.
rrbox Oct 29, 2022
0696f0d
[update] 各 widget に `node(context: Context) -> SKNode` を追加しました.
rrbox Oct 29, 2022
23b92a6
[add] ModifiableWidget を追加しました.
rrbox Oct 29, 2022
e9a2d4b
[add] Empty を追加しました.
rrbox Oct 29, 2022
d6d5dcc
[add] Sources/GameWidget/NodeWidget.swift を追加しました.
rrbox Oct 29, 2022
ba63fad
[move] Node widget のフォルダ階層を変更しました.
rrbox Oct 29, 2022
14982b2
[move] Node widget を定義するプロトコルを移動しました.
rrbox Oct 29, 2022
18f1530
[update] Widget に `node()` のデフォルト処理を追加.
rrbox Oct 29, 2022
004c64c
[add] NodeContext を追加しました.
rrbox Oct 29, 2022
5ecbdfb
[remove] MoveableItem を削除
rrbox Oct 29, 2022
5c1a7e7
[fix] `modifier<T: Modifier>(mod: T)` のアクセス修飾子を public に修正しました.
rrbox Oct 29, 2022
7319e1b
[add] Position modifier を追加しました.
rrbox Oct 29, 2022
38409f5
[add] ZRotation modifier を追加しました.
rrbox Oct 29, 2022
0522dd7
[add] Scale 関係の modifier を追加しました.
rrbox Oct 29, 2022
6c71d0a
[move] Modifier 関連の型を別のファイルに移すために, Node widget 用のフォルダを追加しました.
rrbox Oct 29, 2022
321a9a0
[move] Node widget 用に作られた modifier を別のファイルへ移動しました.
rrbox Oct 29, 2022
e34945e
[update] Node widget 向けの Modifier を追加するメソッドを追加した.
rrbox Oct 29, 2022
3e835f8
[add] Documentation catalog を追加しました.
rrbox Oct 30, 2022
6da1197
[add] Documentation of Node widget.
rrbox Oct 31, 2022
19d0977
Merge pull request #36 from rrbox/feat/context-documentation
rrbox Nov 15, 2022
598aa14
[add] Button 用のフォルダを作成しました.
rrbox Nov 15, 2022
1e771f1
[add] Button.swift のオブジェクトを整理するために, ButtonNode.swift, ButtonNotificat…
rrbox Nov 15, 2022
c48da13
[move] Button の押下の通知関係のオブジェクトを別ファイルに移動しました.
rrbox Nov 15, 2022
6b8df1a
[move] ButtonSensor を ButtonNode.swift に移動
rrbox Nov 15, 2022
64184bc
[add] ButtonContext を追加しました.
rrbox Nov 15, 2022
4ad1a9e
[add] BarChart 用のフォルダを作成しました.
rrbox Nov 15, 2022
dc3e103
[move] Button context と modifier を別ファイルに移動しました.
rrbox Nov 15, 2022
5faae43
[add] BarChartModifier.swift
rrbox Nov 15, 2022
d50a8fb
[fix] SKNodeプロパティのモディファイアの実装をより抽象化した.
rrbox Nov 15, 2022
7942f1a
[add] HorizontalSingleBarChartContext を作成しました.
rrbox Nov 15, 2022
44da415
add `ZPositionContextProtocol` を追加しました.
rrbox Nov 27, 2022
c167639
update Swift version を swift 5.7 に変更しました.
rrbox Nov 27, 2022
6f1ef96
change フォルダ Foundation を Commons に変更しました.
rrbox Nov 27, 2022
a617047
move 全ての SKNode 向けのモディファイアを Commons に移動しました.
rrbox Nov 27, 2022
7940b90
add 頻出するモディファイアをあらかじめ定義するためのファイルを追加しました.
rrbox Nov 27, 2022
4f94631
add `ResizeableContextProtocol` を追加しました.
rrbox Nov 27, 2022
4245f32
add `ColorizableContextProtocol` を追加しました.
rrbox Nov 27, 2022
ff7ad90
add `TextContextProtocol` を追加しました.
rrbox Nov 27, 2022
1ae832f
update Button を新しいモディファイアに対応しました.
rrbox Nov 27, 2022
1ccd81d
update Button context を `TextContextProtocol` に対応させました.
rrbox Nov 27, 2022
64d0410
clean 余分なコメントアウトを削除しました.
rrbox Nov 27, 2022
6803f90
clean 余分なコメントアウトを削除しました.
rrbox Nov 27, 2022
124179e
update Button に zPosition context protocol に適用させました.
rrbox Nov 27, 2022
ca0c6cb
clean 余分なコメントアウトを削除しました.
rrbox Nov 27, 2022
770ebfb
update `HorizontalSingleBarChart` を `ColorizableContextProtocol` 対応しました.
rrbox Nov 27, 2022
6ed89c8
clean Controller の定義に関連するファイルのフォルダ構成を整理しました.
rrbox Nov 27, 2022
97d5d1d
add `ControllerContext` を追加しました.
rrbox Nov 27, 2022
744eff4
update `CnontrollerArea` を Context API 対応しました.
rrbox Nov 27, 2022
805e65c
change Swift 5.6 にダウングレードしました.
rrbox Nov 27, 2022
e79cf65
update テストコードを新しい API に対応しました.
rrbox Nov 27, 2022
3880e08
update swift バージョンを 5.7 に設定しました.
rrbox Nov 27, 2022
869ef5a
update unit tests
rrbox Nov 27, 2022
cf34417
add button のテストを追加しました.
rrbox Nov 27, 2022
f3ec56b
fix button の zPosition が設定されない不具合を修正しました.
rrbox Nov 27, 2022
4ca6b44
update button の別のパラメータの unit test を追加しました.
rrbox Nov 27, 2022
bbf0051
add BarChartTests.swift を追加しました.
rrbox Nov 27, 2022
b0bbce7
add `HorizontalBarChart` の unit test を追加しました.
rrbox Nov 27, 2022
3447d3b
add ControllerTests.swift を追加しました.
rrbox Nov 27, 2022
2fc6c0d
add `ControllerArea` の unit test を追加しました.
rrbox Nov 27, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version: 5.5
// swift-tools-version: 5.7
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription
Expand Down
92 changes: 0 additions & 92 deletions Sources/GameWidget/BarChart.swift

This file was deleted.

52 changes: 52 additions & 0 deletions Sources/GameWidget/BarChart/BarChart.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
//
// BarChart.swift
//
//
// Created by rrbox on 2022/06/07.
//

import SpriteKit

public enum HorizontalBarChartAlignmentMode {
case left, right, center
static let anchorPointMap: [Self: CGPoint] = [
.left: CGPoint(x: 0, y: 0.5),
.center: CGPoint(x: 0.5, y: 0.5),
.right: CGPoint(x: 1, y: 0.5)
]
func anchorPoint() -> CGPoint {
Self.anchorPointMap[self]!
}
}

public struct HorizontalSingleBarChart {

public struct ID: Equatable {
let id: String
public init(_ id: String) {
self.id = id
}
}

public init(name: ID) {
self.name = name
}

var name: ID

}

extension HorizontalSingleBarChart: Widget {
public typealias Context = HorizontalSingleBarChartContext

public func node(context: HorizontalSingleBarChartContext) -> SKNode {
let result = SKSpriteNode(color: context.backgroundColor, size: CGSize(width: context.length, height: context.width))
let bar = SKSpriteNode(color: context.color, size: CGSize(width: context.length, height: context.width))
result.anchorPoint = context.alignment.anchorPoint()
bar.anchorPoint = context.alignment.anchorPoint()
result.position = context.position
result.addChild(bar)
return result
}

}
76 changes: 76 additions & 0 deletions Sources/GameWidget/BarChart/BarChartModifiers.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
//
// BarChartModifiers.swift
//
//
// Created by rrbox on 2022/11/15.
//

import SpriteKit

public struct HorizontalSingleBarChartContext: PositionContextProtocol, ColorizableContextProtocol {
public init() {}

public var position = CGPoint.zero
public var color = SKColor.systemGreen
var width = CGFloat(10)
var length = CGFloat(100)
var alignment = HorizontalBarChartAlignmentMode.right
var backgroundColor = SKColor.gray
}

public enum HorizontalSingleBarChartModiifers {
public struct Width: Modifier {
public typealias Context = HorizontalSingleBarChartContext
var value: CGFloat

public func mod(context: inout HorizontalSingleBarChartContext) {
context.width = self.value
}
}

public struct Length: Modifier {
public typealias Context = HorizontalSingleBarChartContext
var value: CGFloat

public func mod(context: inout HorizontalSingleBarChartContext) {
context.length = self.value
}
}

public struct Alignment: Modifier {
public typealias Context = HorizontalSingleBarChartContext
var value: HorizontalBarChartAlignmentMode

public func mod(context: inout HorizontalSingleBarChartContext) {
context.alignment = self.value
}
}

public struct BackgroundColor: Modifier {
public typealias Context = HorizontalSingleBarChartContext
var value: SKColor

public func mod(context: inout HorizontalSingleBarChartContext) {
context.backgroundColor = self.value
}
}
}

public extension ModifiableWidget where Context == HorizontalSingleBarChartContext {
func width(_ value: CGFloat) -> Next<HorizontalSingleBarChartModiifers.Width> {
self.modifier(mod: HorizontalSingleBarChartModiifers.Width(value: value))
}


func length(_ value: CGFloat) -> Next<HorizontalSingleBarChartModiifers.Length> {
self.modifier(mod: HorizontalSingleBarChartModiifers.Length(value: value))
}

func alignment(_ value: HorizontalBarChartAlignmentMode) -> Next<HorizontalSingleBarChartModiifers.Alignment> {
self.modifier(mod: HorizontalSingleBarChartModiifers.Alignment(value: value))
}

func backgroundColor(_ value: SKColor) -> Next<HorizontalSingleBarChartModiifers.BackgroundColor> {
self.modifier(mod: HorizontalSingleBarChartModiifers.BackgroundColor(value: value))
}
}
Loading