Initial commit of a minimal game
This commit is contained in:
parent
2f9cc267cc
commit
ae14030db0
17
.gitattributes
vendored
Normal file
17
.gitattributes
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
# Set the default behavior, in case people don't have core.autocrlf set.
|
||||
* text=auto
|
||||
|
||||
# Explicitly declare text files you want to always be normalized and converted
|
||||
# to native line endings on checkout.
|
||||
*.cpp text
|
||||
*.c text
|
||||
*.h text
|
||||
*.gd text
|
||||
*.cs text
|
||||
|
||||
# Declare files that will always have CRLF line endings on checkout.
|
||||
*.sln text eol=crlf
|
||||
|
||||
# Denote all files that are truly binary and should not be modified.
|
||||
*.png binary
|
||||
*.jpg binary
|
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
# Import cache
|
||||
.import/
|
||||
|
||||
# Binaries
|
||||
bin/
|
||||
build/
|
||||
lib/
|
64
Grid.gd
Normal file
64
Grid.gd
Normal file
@ -0,0 +1,64 @@
|
||||
extends GridContainer
|
||||
|
||||
|
||||
signal grid_completed
|
||||
|
||||
|
||||
export var answerGrid = [
|
||||
1, 0, 0, 0, 1,
|
||||
0, 0, 0, 0, 0,
|
||||
0, 1, 0, 1, 0,
|
||||
1, 0, 0, 0, 1,
|
||||
1, 1, 0, 1, 1,
|
||||
]
|
||||
export var gridSize = {
|
||||
"col": 5,
|
||||
"row": 5,
|
||||
}
|
||||
var lineHeaders
|
||||
|
||||
|
||||
func _ready():
|
||||
lineHeaders = get_tree().get_nodes_in_group("LineHeader")
|
||||
|
||||
for header in lineHeaders:
|
||||
header.connect("line_completed", self, "_lineHeader_completed")
|
||||
parse_LineHeader_name(header)
|
||||
|
||||
|
||||
func _lineHeader_completed():
|
||||
var result = true
|
||||
|
||||
for i in range(0, lineHeaders.size()):
|
||||
if !lineHeaders[i].completed:
|
||||
result = false
|
||||
break
|
||||
|
||||
if result:
|
||||
emit_signal("grid_completed")
|
||||
|
||||
func parse_LineHeader_name(line_header: LineHeader):
|
||||
var line_type = line_header.name.substr(0, 3)
|
||||
match line_type:
|
||||
"Col":
|
||||
set_LineHeader_col(line_header)
|
||||
"Row":
|
||||
set_LineHeader_row(line_header)
|
||||
_:
|
||||
print("Error, LineHeader is neither Col nor Row !")
|
||||
get_tree().quit(1)
|
||||
|
||||
# Check state at default (line content at 0)
|
||||
line_header._pix_clicked()
|
||||
|
||||
|
||||
func set_LineHeader_col(line_header: LineHeader):
|
||||
var column = int(line_header.name.substr(3))
|
||||
var answer = answerGrid.slice(column, gridSize.col * gridSize.row, gridSize.col)
|
||||
line_header.set_answer_line(answer, "\n")
|
||||
|
||||
|
||||
func set_LineHeader_row(line_header: LineHeader):
|
||||
var row = int(line_header.name.substr(3))
|
||||
var answer = answerGrid.slice(row * gridSize.col, row * gridSize.col + gridSize.col - 1)
|
||||
line_header.set_answer_line(answer, " ")
|
301
Grid.tscn
Normal file
301
Grid.tscn
Normal file
@ -0,0 +1,301 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://Pix.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://LineHeader.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://Grid.gd" type="Script" id=3]
|
||||
[ext_resource path="res://HUD.tscn" type="PackedScene" id=4]
|
||||
|
||||
[node name="Grid" type="GridContainer"]
|
||||
margin_right = 100.0
|
||||
margin_bottom = 40.0
|
||||
columns = 6
|
||||
script = ExtResource( 3 )
|
||||
__meta__ = {
|
||||
"_edit_group_": true,
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="base" type="Label" parent="."]
|
||||
margin_top = 8.0
|
||||
margin_bottom = 22.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="Col0" parent="." instance=ExtResource( 2 )]
|
||||
margin_left = 4.0
|
||||
margin_right = 54.0
|
||||
margin_bottom = 31.0
|
||||
|
||||
[node name="Col1" parent="." instance=ExtResource( 2 )]
|
||||
margin_left = 58.0
|
||||
margin_right = 108.0
|
||||
margin_bottom = 31.0
|
||||
|
||||
[node name="Col2" parent="." instance=ExtResource( 2 )]
|
||||
margin_left = 112.0
|
||||
margin_right = 162.0
|
||||
margin_bottom = 31.0
|
||||
|
||||
[node name="Col3" parent="." instance=ExtResource( 2 )]
|
||||
margin_left = 166.0
|
||||
margin_right = 216.0
|
||||
margin_bottom = 31.0
|
||||
|
||||
[node name="Col4" parent="." instance=ExtResource( 2 )]
|
||||
margin_left = 220.0
|
||||
margin_right = 270.0
|
||||
margin_bottom = 31.0
|
||||
|
||||
[node name="Row0" parent="." instance=ExtResource( 2 )]
|
||||
margin_top = 44.0
|
||||
margin_right = 0.0
|
||||
margin_bottom = 75.0
|
||||
|
||||
[node name="Pix" parent="." groups=[
|
||||
"Col0",
|
||||
"Row0",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 4.0
|
||||
margin_top = 35.0
|
||||
margin_right = 54.0
|
||||
margin_bottom = 85.0
|
||||
|
||||
[node name="Pix2" parent="." groups=[
|
||||
"Col1",
|
||||
"Row0",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 58.0
|
||||
margin_top = 35.0
|
||||
margin_right = 108.0
|
||||
margin_bottom = 85.0
|
||||
|
||||
[node name="Pix3" parent="." groups=[
|
||||
"Col2",
|
||||
"Row0",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 112.0
|
||||
margin_top = 35.0
|
||||
margin_right = 162.0
|
||||
margin_bottom = 85.0
|
||||
|
||||
[node name="Pix4" parent="." groups=[
|
||||
"Col3",
|
||||
"Row0",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 166.0
|
||||
margin_top = 35.0
|
||||
margin_right = 216.0
|
||||
margin_bottom = 85.0
|
||||
|
||||
[node name="Pix5" parent="." groups=[
|
||||
"Col4",
|
||||
"Row0",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 220.0
|
||||
margin_top = 35.0
|
||||
margin_right = 270.0
|
||||
margin_bottom = 85.0
|
||||
|
||||
[node name="Row1" parent="." instance=ExtResource( 2 )]
|
||||
margin_top = 98.0
|
||||
margin_right = 0.0
|
||||
margin_bottom = 129.0
|
||||
|
||||
[node name="Pix6" parent="." groups=[
|
||||
"Col0",
|
||||
"Row1",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 4.0
|
||||
margin_top = 89.0
|
||||
margin_right = 54.0
|
||||
margin_bottom = 139.0
|
||||
|
||||
[node name="Pix7" parent="." groups=[
|
||||
"Col1",
|
||||
"Row1",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 58.0
|
||||
margin_top = 89.0
|
||||
margin_right = 108.0
|
||||
margin_bottom = 139.0
|
||||
|
||||
[node name="Pix8" parent="." groups=[
|
||||
"Col2",
|
||||
"Row1",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 112.0
|
||||
margin_top = 89.0
|
||||
margin_right = 162.0
|
||||
margin_bottom = 139.0
|
||||
|
||||
[node name="Pix9" parent="." groups=[
|
||||
"Col3",
|
||||
"Row1",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 166.0
|
||||
margin_top = 89.0
|
||||
margin_right = 216.0
|
||||
margin_bottom = 139.0
|
||||
|
||||
[node name="Pix10" parent="." groups=[
|
||||
"Col4",
|
||||
"Row1",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 220.0
|
||||
margin_top = 89.0
|
||||
margin_right = 270.0
|
||||
margin_bottom = 139.0
|
||||
|
||||
[node name="Row2" parent="." instance=ExtResource( 2 )]
|
||||
margin_top = 152.0
|
||||
margin_right = 0.0
|
||||
margin_bottom = 183.0
|
||||
|
||||
[node name="Pix11" parent="." groups=[
|
||||
"Col0",
|
||||
"Row2",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 4.0
|
||||
margin_top = 143.0
|
||||
margin_right = 54.0
|
||||
margin_bottom = 193.0
|
||||
|
||||
[node name="Pix12" parent="." groups=[
|
||||
"Col1",
|
||||
"Row2",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 58.0
|
||||
margin_top = 143.0
|
||||
margin_right = 108.0
|
||||
margin_bottom = 193.0
|
||||
|
||||
[node name="Pix13" parent="." groups=[
|
||||
"Col2",
|
||||
"Row2",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 112.0
|
||||
margin_top = 143.0
|
||||
margin_right = 162.0
|
||||
margin_bottom = 193.0
|
||||
|
||||
[node name="Pix14" parent="." groups=[
|
||||
"Col3",
|
||||
"Row2",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 166.0
|
||||
margin_top = 143.0
|
||||
margin_right = 216.0
|
||||
margin_bottom = 193.0
|
||||
|
||||
[node name="Pix15" parent="." groups=[
|
||||
"Col4",
|
||||
"Row2",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 220.0
|
||||
margin_top = 143.0
|
||||
margin_right = 270.0
|
||||
margin_bottom = 193.0
|
||||
|
||||
[node name="Row3" parent="." instance=ExtResource( 2 )]
|
||||
margin_top = 206.0
|
||||
margin_right = 0.0
|
||||
margin_bottom = 237.0
|
||||
|
||||
[node name="Pix16" parent="." groups=[
|
||||
"Col0",
|
||||
"Row3",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 4.0
|
||||
margin_top = 197.0
|
||||
margin_right = 54.0
|
||||
margin_bottom = 247.0
|
||||
|
||||
[node name="Pix17" parent="." groups=[
|
||||
"Col1",
|
||||
"Row3",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 58.0
|
||||
margin_top = 197.0
|
||||
margin_right = 108.0
|
||||
margin_bottom = 247.0
|
||||
|
||||
[node name="Pix18" parent="." groups=[
|
||||
"Col2",
|
||||
"Row3",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 112.0
|
||||
margin_top = 197.0
|
||||
margin_right = 162.0
|
||||
margin_bottom = 247.0
|
||||
|
||||
[node name="Pix19" parent="." groups=[
|
||||
"Col3",
|
||||
"Row3",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 166.0
|
||||
margin_top = 197.0
|
||||
margin_right = 216.0
|
||||
margin_bottom = 247.0
|
||||
|
||||
[node name="Pix20" parent="." groups=[
|
||||
"Col4",
|
||||
"Row3",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 220.0
|
||||
margin_top = 197.0
|
||||
margin_right = 270.0
|
||||
margin_bottom = 247.0
|
||||
|
||||
[node name="Row4" parent="." instance=ExtResource( 2 )]
|
||||
margin_top = 260.0
|
||||
margin_right = 0.0
|
||||
margin_bottom = 291.0
|
||||
|
||||
[node name="Pix21" parent="." groups=[
|
||||
"Col0",
|
||||
"Row4",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 4.0
|
||||
margin_top = 251.0
|
||||
margin_right = 54.0
|
||||
margin_bottom = 301.0
|
||||
|
||||
[node name="Pix22" parent="." groups=[
|
||||
"Col1",
|
||||
"Row4",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 58.0
|
||||
margin_top = 251.0
|
||||
margin_right = 108.0
|
||||
margin_bottom = 301.0
|
||||
|
||||
[node name="Pix23" parent="." groups=[
|
||||
"Col2",
|
||||
"Row4",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 112.0
|
||||
margin_top = 251.0
|
||||
margin_right = 162.0
|
||||
margin_bottom = 301.0
|
||||
|
||||
[node name="Pix24" parent="." groups=[
|
||||
"Col3",
|
||||
"Row4",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 166.0
|
||||
margin_top = 251.0
|
||||
margin_right = 216.0
|
||||
margin_bottom = 301.0
|
||||
|
||||
[node name="Pix25" parent="." groups=[
|
||||
"Col4",
|
||||
"Row4",
|
||||
] instance=ExtResource( 1 )]
|
||||
margin_left = 220.0
|
||||
margin_top = 251.0
|
||||
margin_right = 270.0
|
||||
margin_bottom = 301.0
|
||||
|
||||
[node name="HUD" parent="." instance=ExtResource( 4 )]
|
||||
[connection signal="grid_completed" from="." to="HUD" method="end_game"]
|
24
HUD.gd
Normal file
24
HUD.gd
Normal file
@ -0,0 +1,24 @@
|
||||
extends CanvasLayer
|
||||
|
||||
|
||||
var score: int
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
$ScoreTimer.connect("timeout", self, "_ScoreTimer_timeout")
|
||||
|
||||
|
||||
func _ScoreTimer_timeout():
|
||||
score += 1
|
||||
$Score.text = str(score)
|
||||
|
||||
|
||||
func new_game():
|
||||
score = 0
|
||||
$ScoreTimer.start()
|
||||
$State.text = ""
|
||||
|
||||
func end_game():
|
||||
$ScoreTimer.stop()
|
||||
$State.text = "VICTIORE"
|
41
HUD.tscn
Normal file
41
HUD.tscn
Normal file
@ -0,0 +1,41 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://assets/fonts/Xolonium-Regular.ttf" type="DynamicFontData" id=1]
|
||||
[ext_resource path="res://HUD.gd" type="Script" id=2]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
size = 25
|
||||
font_data = ExtResource( 1 )
|
||||
|
||||
[node name="HUD" type="CanvasLayer"]
|
||||
script = ExtResource( 2 )
|
||||
|
||||
[node name="ScoreTimer" type="Timer" parent="."]
|
||||
autostart = true
|
||||
|
||||
[node name="Score" type="Label" parent="."]
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
margin_left = -40.0
|
||||
margin_bottom = 31.0
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
text = "0"
|
||||
align = 2
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="State" type="Label" parent="."]
|
||||
anchor_left = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -40.0
|
||||
margin_top = -15.5
|
||||
margin_bottom = 15.5
|
||||
grow_horizontal = 0
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
align = 2
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
62
LineHeader.gd
Normal file
62
LineHeader.gd
Normal file
@ -0,0 +1,62 @@
|
||||
class_name LineHeader
|
||||
extends Label
|
||||
|
||||
|
||||
signal line_completed
|
||||
|
||||
|
||||
var answer_line : Array
|
||||
var completed := false
|
||||
var pixList
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
pixList = get_tree().get_nodes_in_group(name)
|
||||
|
||||
for pix in pixList:
|
||||
pix.connect("value_changed", self, "_pix_clicked")
|
||||
|
||||
|
||||
func _pix_clicked():
|
||||
var result = true
|
||||
|
||||
for i in range(0, pixList.size()):
|
||||
if answer_line[i] != pixList[i].value && !(answer_line[i] == 0 && pixList[i].value != 1):
|
||||
result = false
|
||||
break
|
||||
|
||||
completed = result
|
||||
|
||||
if completed:
|
||||
emit_signal("line_completed")
|
||||
|
||||
|
||||
func set_answer_line(answers : Array, separator : String):
|
||||
answer_line = answers
|
||||
|
||||
# Add a value at the end of the array to purge the result text
|
||||
answers.push_back(0)
|
||||
|
||||
var result : String = ""
|
||||
var count : int = 0
|
||||
var last : int = 0
|
||||
for value in answers:
|
||||
if value == 1:
|
||||
count += 1
|
||||
last = 1
|
||||
else:
|
||||
if last != 0:
|
||||
if !result.empty():
|
||||
result += separator
|
||||
result += str(count)
|
||||
count = 0
|
||||
last = 0
|
||||
|
||||
# Remove the last value used to purge the result text
|
||||
answers.pop_back()
|
||||
|
||||
if result.empty():
|
||||
text = "0"
|
||||
else:
|
||||
text = result
|
20
LineHeader.tscn
Normal file
20
LineHeader.tscn
Normal file
@ -0,0 +1,20 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://LineHeader.gd" type="Script" id=1]
|
||||
[ext_resource path="res://assets/fonts/Xolonium-Regular.ttf" type="DynamicFontData" id=2]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
size = 25
|
||||
font_data = ExtResource( 2 )
|
||||
|
||||
[node name="LineHeader" type="Label" groups=[
|
||||
"LineHeader",
|
||||
]]
|
||||
margin_right = 40.0
|
||||
margin_bottom = 14.0
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
align = 1
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
46
Pix.gd
Normal file
46
Pix.gd
Normal file
@ -0,0 +1,46 @@
|
||||
extends Button
|
||||
|
||||
|
||||
signal value_changed
|
||||
|
||||
|
||||
export var corner_radius = 5
|
||||
var normal_style = StyleBoxFlat.new()
|
||||
var outline_style = StyleBoxFlat.new()
|
||||
var value = 0
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
connect("pressed", self, "_on_Pix_pressed")
|
||||
|
||||
normal_style.set_corner_radius_all(corner_radius)
|
||||
|
||||
outline_style.set_corner_radius_all(corner_radius)
|
||||
outline_style.set_border_width_all(5)
|
||||
outline_style.set_border_color(Color.webpurple)
|
||||
|
||||
# Set default style
|
||||
_on_Pix_pressed(true)
|
||||
|
||||
|
||||
func _on_Pix_pressed(bypass: bool = false):
|
||||
if (!bypass):
|
||||
value = (value + 1) % 2
|
||||
|
||||
if value == 0:
|
||||
set_color(Color.blanchedalmond)
|
||||
else:
|
||||
set_color(Color.black)
|
||||
|
||||
if (!bypass):
|
||||
emit_signal("value_changed")
|
||||
|
||||
|
||||
func set_color(color):
|
||||
normal_style.set_bg_color(color)
|
||||
set("custom_styles/normal", normal_style)
|
||||
|
||||
outline_style.set_bg_color(color)
|
||||
set("custom_styles/focus", outline_style)
|
||||
set("custom_styles/hover", outline_style)
|
14
Pix.tscn
Normal file
14
Pix.tscn
Normal file
@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Pix.gd" type="Script" id=1]
|
||||
|
||||
[node name="Pix" type="Button" groups=[
|
||||
"Pix",
|
||||
]]
|
||||
margin_right = 100.0
|
||||
margin_bottom = 100.0
|
||||
rect_min_size = Vector2( 50, 50 )
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
5
README.md
Normal file
5
README.md
Normal file
@ -0,0 +1,5 @@
|
||||
# Picross clone made in Godot
|
||||
This is my first godot game (without counting the tutorial). It was made in a day (counting making the tutorial first) and polished a bit after. It is far from being a complete game since for now there is only one level and the puzzle is hardcoded.
|
||||
|
||||
The objective is to have a level selector and a level editor. The level files could be shared (in JSON ?).
|
||||
But truly the ojective was learning Godot and see how fast making a game could be (with almost 0 game making experience as a developper).
|
253
assets/fonts/FONTLOG.txt
Normal file
253
assets/fonts/FONTLOG.txt
Normal file
@ -0,0 +1,253 @@
|
||||
Please distribute this file along with the Xolonium fonts when possible.
|
||||
|
||||
|
||||
Source
|
||||
|
||||
Find the sourcefiles of Xolonium at
|
||||
<gitlab.com/sev/xolonium>
|
||||
|
||||
|
||||
Credits
|
||||
|
||||
Xolonium is created with FontForge <fontforge.org>,
|
||||
Inkscape <inkscape.org>, Python <python.org>, and
|
||||
FontTools <github.com/fonttools>.
|
||||
|
||||
It originated as a custom font for the open-source
|
||||
game Xonotic <xonotic.org>. With many thanks to the
|
||||
Xonotic community for your support.
|
||||
|
||||
|
||||
Supported OpenType features
|
||||
|
||||
case Provides case sensitive placement of punctuation,
|
||||
brackets, and math symbols for uppercase text.
|
||||
frac Replaces number/number sequences with diagonal fractions.
|
||||
Numbers that touch a slash should not exceed 10 digits.
|
||||
kern Provides kerning for Latin, Greek, and Cyrillic scripts.
|
||||
locl Dutch: Replaces j with a stressed version if it follows í.
|
||||
Sami: Replaces n-form Eng with the preferred N-form version.
|
||||
Romanian and Moldovan: Replaces ŞşŢţ with the preferred ȘșȚț.
|
||||
pnum Replaces monospaced digits with proportional versions.
|
||||
sinf Replaces digits with scientific inferiors below the baseline.
|
||||
subs Replaces digits with subscript versions on the baseline.
|
||||
sups Replaces digits with superscript versions.
|
||||
zero Replaces zero with a slashed version.
|
||||
|
||||
|
||||
Supported glyph sets
|
||||
|
||||
Adobe Latin 3
|
||||
OpenType W1G
|
||||
ISO 8859-1 Western European
|
||||
ISO 8859-2 Central European
|
||||
ISO 8859-3 South European
|
||||
ISO 8859-4 North European
|
||||
ISO 8859-5 Cyrillic
|
||||
ISO 8859-7 Greek
|
||||
ISO 8859-9 Turkish
|
||||
ISO 8859-10 Nordic
|
||||
ISO 8859-13 Baltic Rim
|
||||
ISO 8859-14 Celtic
|
||||
ISO 8859-15 Western European
|
||||
ISO 8859-16 South-Eastern European
|
||||
|
||||
|
||||
Available glyphs
|
||||
|
||||
!"#$%&'()*+,-./0123456789:;<=>?
|
||||
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
|
||||
`abcdefghijklmnopqrstuvwxyz{|}~
|
||||
|
||||
¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿
|
||||
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß
|
||||
àáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
|
||||
ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğ
|
||||
ĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľ
|
||||
ĿŀŁłŃńŅņŇňŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞş
|
||||
ŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽž
|
||||
ƒǺǻǼǽǾǿȘșȚțȷ
|
||||
|
||||
ˆˇˉ˘˙˚˛˜˝
|
||||
|
||||
ͺ;΄΅Ά·ΈΉΊΌΎΏΐ
|
||||
ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰ
|
||||
αβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ
|
||||
|
||||
ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОП
|
||||
РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп
|
||||
рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџ
|
||||
ѢѣѲѳѴѵҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩ
|
||||
ҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽӀӁӂӇӈӋӌӏӐӑӒӓ
|
||||
ӔӕӖӗӘәӜӝӞӟӠӡӢӣӤӥӦӧӨөӮӯӰӱӲӳӴӵӶӷӸӹ
|
||||
Ԥԥ
|
||||
|
||||
ḂḃḊḋḞḟṀṁṖṗṠṡṪṫẀẁẂẃẄẅẞỲỳ
|
||||
|
||||
‒–—―‘’‚‛“”„‟†‡•…‰′″‹›‽‾⁄
|
||||
⁰⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
|
||||
₤₦₩₫€₯₱₹₺₽₿
|
||||
℅ℓ№℗™Ω℮
|
||||
⅛⅜⅝⅞
|
||||
←↑→↓
|
||||
∂∆∏∑−∕∙√∞∟∫≈≠≤≥
|
||||
⌖
|
||||
■▬▮▰▲▶▼◀◆◊●◢◣◤◥
|
||||
☄★☠☢☣⚙⚛⚠⚡⛔
|
||||
❇❈❌❤❰❱❲❳
|
||||
fffiflffiffl
|
||||
🌌🌍🌎🌏👽💣🔥🔫
|
||||
😁😃😄😆😇😈😉😊😎😐😒😕😘
|
||||
😛😝😞😟😠😣😭😮😲😴😵
|
||||
🚀
|
||||
|
||||
|
||||
Debugging glyphs
|
||||
|
||||
U+EFFD Font version
|
||||
U+F000 Font hinting indicator
|
||||
|
||||
|
||||
Changelog
|
||||
|
||||
Xolonium 4.1 2016-11-22 Severin Meyer <sev.ch@web.de>
|
||||
Reverted frac OpenType feature to a more stable implementation
|
||||
|
||||
Xolonium 4.0 2016-10-08 Severin Meyer <sev.ch@web.de>
|
||||
Decreased width of most glyphs
|
||||
Thinner vertical stems in Xolonium-Regular
|
||||
Thicker horizontal stems in Xolonium-Bold
|
||||
Revised diagonal stems
|
||||
Lowered middle bars
|
||||
Revised diacritical bars
|
||||
Added glyphs:
|
||||
ӏẞ₿
|
||||
U+2007 U+2008 U+2009 U+200A U+202F
|
||||
U+EFFD U+F000
|
||||
Revised glyphs:
|
||||
$&,JKQRXkwxy~¢¤ßǻ˜ζκλμξφЖУжћѴѵ∕₱₺₦₩€ℓ№≈ffffiffl
|
||||
❤🌍🌎🌏😁😄😇😈😉😊😘😭😮😴🚀
|
||||
Removed uncommon glyphs:
|
||||
ʼnſʼҌҍҎҏҾҿӃӄӇӈӚӛӪӫӬӭ
|
||||
U+0312 U+0313 U+0326
|
||||
Simplified OpenType features pnum, zero, and case
|
||||
Removed OpenType feature dlig
|
||||
Revised vertical metrics
|
||||
Merged outlines of composite glyphs in otf version
|
||||
Added ttf version with custom outlines and instructions
|
||||
Added woff and woff2 version
|
||||
|
||||
Xolonium 3.1 2015-06-10 Severin Meyer <sev.ch@web.de>
|
||||
Added currency glyphs:
|
||||
₦₩₫₱₹₺₽
|
||||
Revised glyph:
|
||||
₯
|
||||
Relicensed public release under the SIL Open Font License 1.1
|
||||
|
||||
Xolonium 3.0 2015-05-04 Severin Meyer <sev.ch@web.de>
|
||||
Decreased width of glyphs
|
||||
Decreased descender height
|
||||
Increased height of super/subscript glyphs
|
||||
Revised width of dashes, underscore, and overscore
|
||||
Sharper bends with more circular proportions
|
||||
Decreased stroke thickness of mathematical glyphs
|
||||
Revised diacritical marks
|
||||
Revised diacritical bars
|
||||
Revised Cyrillic hooks
|
||||
Revised glyphs:
|
||||
GQRYjmuwßŊŒſƒǻfffiffiffl
|
||||
ΞΨΩδζιξπςστυφω
|
||||
ЉЄДЛУЭЯбдлэяєљђєћѢѣҨҩҼҽӃӄӘә
|
||||
#$&'()*,/69?@[]{}~¡£¤¥§©®¿
|
||||
‹›₤€₯ℓ№℗℮←↑→↓∂∏∑∞≈▰☄❈❰❱❲❳😝
|
||||
Raised vertical position of mathematical glyphs
|
||||
Unified advance width of numeral and monetary glyphs
|
||||
Unified advance width of mathematical glyphs
|
||||
Revised bearings
|
||||
Rewrote kern feature
|
||||
Bolder Xolonium-Bold with improved proportions
|
||||
Updated glyph names to conform to the AGLFN 1.7
|
||||
Revised hints and PS Private Dictionary
|
||||
Added glyphs:
|
||||
ӶӷԤԥ
|
||||
Added OpenType features:
|
||||
case frac liga locl pnum sinf subs sups zero
|
||||
|
||||
Xolonium 2.4 2014-12-23 Severin Meyer <sev.ch@web.de>
|
||||
Added dingbats:
|
||||
⛔💣🔥
|
||||
Revised size and design of emoticons
|
||||
Revised dingbats:
|
||||
⌖☄☠☣⚙⚛⚠⚡❇❈🌌🌍🌎🌏🔫
|
||||
Removed dingbat:
|
||||
💥
|
||||
|
||||
Xolonium 2.3 2014-08-14 Severin Meyer <sev.ch@web.de>
|
||||
Bugfixed ε and έ, thanks to bowzee for the feedback
|
||||
|
||||
Xolonium 2.2 2014-03-01 Severin Meyer <sev.ch@web.de>
|
||||
Added dingbats:
|
||||
⌖◆●❌💥
|
||||
Revised dingbats:
|
||||
•←↑→↓◊☄★☠☣⚙⚛⚠⚡❇❈❤🌌🌍🌎🌏👽🔫🚀
|
||||
Removed dingbats:
|
||||
♻✪💡📡🔋🔧🔭
|
||||
|
||||
Xolonium 2.1 2013-10-20 Severin Meyer <sev.ch@web.de>
|
||||
Added dingbats:
|
||||
←↑→↓❰❱❲❳■▬▮▰▲▶▼◀◢◣◤◥
|
||||
☄★☠☢☣♻⚙⚛⚠⚡✪❇❈❤
|
||||
🌌🌍🌎🌏👽💡📡🔋🔧🔫🔭🚀
|
||||
😁😃😄😆😇😈😉😊😎😐😒😕
|
||||
😘😛😝😞😟😠😣😭😮😲😴😵
|
||||
|
||||
Xolonium 2.0.1 2013-07-12 Severin Meyer <sev.ch@web.de>
|
||||
Reorganised and simplified files
|
||||
|
||||
Xolonium 2.0 2012-08-11 Severin Meyer <sev.ch@web.de>
|
||||
Revised bends
|
||||
Revised thickness of uppercase diagonal stems
|
||||
Revised diacritical marks
|
||||
Revised hints and PS Private Dictionary
|
||||
Revised glyphs:
|
||||
*1469@DPRly{}§©®¶ÐÞƒΘΞαεζνξνυЄЉЊ
|
||||
ЏБЗЛУЧЪЫЬЭЯбзлчъыьэяєљњџ•€∂∙√∞∫≠
|
||||
Completed glyph sets:
|
||||
Adobe Latin 3
|
||||
OpenType World Glyph Set 1 (W1G)
|
||||
Ghostscript Standard (ghostscript-fonts-std-8.11)
|
||||
Added OpenType kern feature
|
||||
Added Xolonium-Bold
|
||||
|
||||
Xolonium 1.2 2011-02-12 Severin Meyer <sev.ch@web.de>
|
||||
Revised glyphs:
|
||||
D·Ðı
|
||||
Completed glyph sets:
|
||||
ISO 8859-7 (Greek)
|
||||
Unicode Latin Extended-A block
|
||||
Added glyphs:
|
||||
†‡•…‰⁄™∂∑−√∞≠≤≥
|
||||
|
||||
Xolonium 1.1 2011-01-17 Severin Meyer <sev.ch@web.de>
|
||||
Revised placement of cedilla and ogonek in accented glyphs
|
||||
Revised glyphs:
|
||||
,;DKTjkvwxy¥§Ð˛€
|
||||
Completed glyph sets:
|
||||
ISO 8859-2 (Central European)
|
||||
ISO 8859-3 (South European, Esperanto)
|
||||
ISO 8859-4 (North European)
|
||||
ISO 8859-5 (Cyrillic)
|
||||
ISO 8859-9 (Turkish)
|
||||
ISO 8859-10 (Nordic)
|
||||
ISO 8859-13 (Baltic Rim)
|
||||
ISO 8859-14 (Celtic)
|
||||
ISO 8859-16 (South-Eastern European)
|
||||
Added glyphs:
|
||||
ȷʼ̒ ЀЍѐѝ‒–—‘’‚‛“”„‟‹›
|
||||
|
||||
Xolonium 1.0 2011-01-04 Severin Meyer <sev.ch@web.de>
|
||||
Completed glyph sets:
|
||||
ISO 8859-1 (Western European)
|
||||
ISO 8859-15 (Western European)
|
||||
Added glyphs:
|
||||
ĄĆĘŁŃŚŹŻąćęłńśźżıˆˇ˙˚˛˜
|
94
assets/fonts/LICENSE.txt
Normal file
94
assets/fonts/LICENSE.txt
Normal file
@ -0,0 +1,94 @@
|
||||
Copyright 2011-2016 Severin Meyer <sev.ch@web.de>,
|
||||
with Reserved Font Name Xolonium.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License,
|
||||
Version 1.1. This license is copied below, and is also available
|
||||
with a FAQ at <http://scripts.sil.org/OFL>
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
assets/fonts/Xolonium-Regular.ttf
Normal file
BIN
assets/fonts/Xolonium-Regular.ttf
Normal file
Binary file not shown.
7
default_env.tres
Normal file
7
default_env.tres
Normal file
@ -0,0 +1,7 @@
|
||||
[gd_resource type="Environment" load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="ProceduralSky" id=1]
|
||||
|
||||
[resource]
|
||||
background_mode = 2
|
||||
background_sky = SubResource( 1 )
|
16
git_api.gdnlib
Normal file
16
git_api.gdnlib
Normal file
@ -0,0 +1,16 @@
|
||||
[general]
|
||||
|
||||
singleton=true
|
||||
load_once=true
|
||||
symbol_prefix="godot_"
|
||||
reloadable=false
|
||||
|
||||
[entry]
|
||||
|
||||
Windows.64="res://bin/win64/release/libgitapi.dll"
|
||||
X11.64="res://bin/x11/release/libgitapi.so"
|
||||
|
||||
[dependencies]
|
||||
|
||||
Windows.64=[ ]
|
||||
X11.64=[ ]
|
9
git_api.gdns
Normal file
9
git_api.gdns
Normal file
@ -0,0 +1,9 @@
|
||||
[gd_resource type="NativeScript" load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://git_api.gdnlib" type="GDNativeLibrary" id=1]
|
||||
|
||||
[resource]
|
||||
resource_name = "GitAPI"
|
||||
class_name = "GitAPI"
|
||||
library = ExtResource( 1 )
|
||||
script_class_name = "GitAPI"
|
34
icon.png.import
Normal file
34
icon.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
39
project.godot
Normal file
39
project.godot
Normal file
@ -0,0 +1,39 @@
|
||||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=4
|
||||
|
||||
_global_script_classes=[ {
|
||||
"base": "",
|
||||
"class": "GitAPI",
|
||||
"language": "NativeScript",
|
||||
"path": "res://git_api.gdns"
|
||||
}, {
|
||||
"base": "Label",
|
||||
"class": "LineHeader",
|
||||
"language": "GDScript",
|
||||
"path": "res://LineHeader.gd"
|
||||
} ]
|
||||
_global_script_class_icons={
|
||||
"GitAPI": "",
|
||||
"LineHeader": ""
|
||||
}
|
||||
|
||||
[application]
|
||||
|
||||
config/name="Picross"
|
||||
run/main_scene="res://Grid.tscn"
|
||||
config/icon="res://icon.png"
|
||||
|
||||
[gdnative]
|
||||
|
||||
singletons=[ "res://git_api.gdnlib" ]
|
||||
|
||||
[rendering]
|
||||
|
||||
environment/default_environment="res://default_env.tres"
|
Loading…
Reference in New Issue
Block a user