Compare commits
63 commits
Author | SHA1 | Date | |
---|---|---|---|
|
4f0d91132f | ||
|
63887e9864 | ||
|
464be1696d | ||
|
7c3c758877 | ||
|
1284a9cedd | ||
|
699aa1097b | ||
2a88506f85 | |||
271af8f49d | |||
2cf0baffb0 | |||
466394cca6 | |||
2c5138eb74 | |||
a6b6bb36c7 | |||
11b0eb46c1 | |||
01756f1f6b | |||
388d1a5391 | |||
1d9ec43b34 | |||
b45a195efc | |||
2521d143ab | |||
0369218025 | |||
75e5b05b24 | |||
e8f6a8ad49 | |||
a412daf632 | |||
520ac8f36c | |||
f619971496 | |||
bfe71ec37c | |||
a22e8db3fe | |||
4919a117ab | |||
c9340d55d6 | |||
460289025b | |||
80c67686b9 | |||
07b364f11d | |||
fe375adea7 | |||
8e5fad8d89 | |||
500b4bc2e0 | |||
d35faf34ba | |||
b3b1029785 | |||
7d44d8132b | |||
|
db3cb83817 | ||
|
403742b1ad | ||
|
894f4d732c | ||
|
04fa1488d0 | ||
|
c71b983694 | ||
|
71bbdf4c0c | ||
|
9ea371191f | ||
|
59a76dc7c3 | ||
|
7978318bf7 | ||
|
0edfbd21c0 | ||
|
0f22aaa2ff | ||
|
5dbf4b3f0a | ||
|
a80cdba5eb | ||
|
60f5c2b9e6 | ||
|
128fba0f65 | ||
|
94097c456b | ||
|
dd2ade1de0 | ||
|
d33896b009 | ||
|
c57248f2ab | ||
|
29d3e7e548 | ||
|
70b5d6be09 | ||
|
83881a821f | ||
|
342b806370 | ||
|
44f1d9239b | ||
|
9eb6e8ccbd | ||
|
487da1e938 |
21
.gitignore
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
|
||||
# Godot-specific ignores
|
||||
.import/
|
||||
export.cfg
|
||||
export_presets.cfg
|
||||
|
||||
# Mono-specific ignores
|
||||
.mono/
|
||||
|
||||
# System/tool-specific ignores
|
||||
.directory
|
||||
*~
|
||||
|
||||
# Ignore binary & package
|
||||
*.pck
|
||||
|
||||
# Ignore lib gdnaive
|
||||
libgdnative.*.so
|
||||
|
||||
# Ignore temp
|
||||
temp/
|
6
AUTHORS
Normal file
|
@ -0,0 +1,6 @@
|
|||
Yannk
|
||||
Zatalyz
|
||||
Deed
|
||||
Lyne
|
||||
Osquallo
|
||||
AleaJactaEst
|
1
NEWS
Normal file
|
@ -0,0 +1 @@
|
|||
# What's new on khanat?
|
39
NEWS_fr
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Quels sont les dernières nouvelles ?
|
||||
|
||||
1) Configuration de l'internationalisation (fr & en)
|
||||
|
||||
2) Dans la page principale, ajout d'un menu, en haut à droite, afin d'avoir d'accessible les actions rapides suivantes:
|
||||
* les nouvelles
|
||||
* configuration de la langue
|
||||
* activer le son
|
||||
* l'aide
|
||||
* configuration
|
||||
* sortir
|
||||
|
||||
3) Ajout d'un A propos
|
||||
a) Auteur
|
||||
b) License
|
||||
|
||||
4) Ajout d'un image pour les icons OPTIONS afin de savoir lequel est actif (fond jaune au lieu de blanc)
|
||||
|
||||
5) Ajout de l'option paramètres
|
||||
I) Paramétrage vidéo
|
||||
a) Plein écran
|
||||
b) Fenêtre redimensionnable
|
||||
c) Orientation de l'écran (à vérifier)
|
||||
d) Fenêtre sans bord
|
||||
e) Choisir l'écran
|
||||
f) Garder la fenêtre dessus
|
||||
II) Paramétrage son
|
||||
|
||||
6) Correction du menu de selection de la langue
|
||||
|
||||
7) Activer la sortie audio en fonction de la selection dans le menu option
|
||||
|
||||
8) Ajouter un icon JukeBox dans la page de démarrage
|
||||
|
||||
9) A l'ouverture du JukeBox, il retaille la fenetre afin de ne pas avoir du scrolling (si possible)
|
||||
|
||||
10) Ajout d'une scene simple (damier + personnage avec annimation, et ajout d'autre créature)
|
||||
|
||||
11) Ajout du menu (quand on presse Escape) pendant la scene pour voir les options/quitter/...
|
61
README.md
|
@ -0,0 +1,61 @@
|
|||
# Khanat
|
||||
|
||||
## Launch Game
|
||||
|
||||
### Download Version Godot
|
||||
|
||||
We use version GODOT : 3.3.3
|
||||
|
||||
wget https://downloads.tuxfamily.org/godotengine/3.3.3/Godot_v3.3.3-stable_x11.64.zip
|
||||
unzip Godot_v3.3.3-stable_x11.64.zip
|
||||
|
||||
### Clone our project
|
||||
|
||||
git clone https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-client.git
|
||||
(cd khanat-client;git checkout develop)
|
||||
|
||||
### Launch Godot
|
||||
|
||||
./Godot_v3.3.3-stable_x11.64 khanat-client/project.godot
|
||||
|
||||
## Add/update your language
|
||||
|
||||
Welcome to help us to improve our translation.
|
||||
We need clone our project.
|
||||
|
||||
### Create a new language
|
||||
|
||||
* On Linux :
|
||||
|
||||
Edit file : khanat-client/locale/locale.sh
|
||||
(You need add in section [# LIST LANGUAGE] your locale)
|
||||
After launch this script : bash khanat-client/locale/locale.sh
|
||||
|
||||
### Edit your local
|
||||
|
||||
khanat-client/locale/<your locale].po
|
||||
|
||||
keyword msgid is Id used in khanat, and msgstr is translation (if you have some doubt, don't hesitate to see other translation)
|
||||
|
||||
* msgid "MAIN_MENU_PLAY"
|
||||
* msgstr "Jouer"
|
||||
|
||||
### Activate your language
|
||||
|
||||
Two option to activate (just use one)
|
||||
|
||||
1/ Use godot editor
|
||||
|
||||
in Parameter, localization, add your file
|
||||
|
||||
2/ Edit project.godot
|
||||
|
||||
Edit line :
|
||||
|
||||
translations=PoolStringArray( "res://locale/fr.po", "res://locale/en.po", "res//locale/<your language>.po" )
|
||||
|
||||
|
||||
### Push your update
|
||||
|
||||
To send your update, could you please create a branch and send us this branch?
|
||||
|
45
addons/kh_slider/kh_h_slider.gd
Normal file
|
@ -0,0 +1,45 @@
|
|||
tool
|
||||
extends HBoxContainer
|
||||
|
||||
signal changed
|
||||
signal value_changed( value )
|
||||
|
||||
export( Texture ) var minus_texture setget set_minus_texture, get_minus_texture
|
||||
func set_minus_texture( value ):
|
||||
minus_texture = value
|
||||
if self.has_node( "kh_h_slider/minus" ):
|
||||
$kh_h_slider/minus.texture_normal = minus_texture
|
||||
func get_minus_texture():
|
||||
return minus_texture
|
||||
|
||||
export( Texture ) var plus_texture setget set_plus_texture, get_plus_texture
|
||||
func set_plus_texture( value ):
|
||||
plus_texture = value
|
||||
if self.has_node( "kh_h_slider/plus" ):
|
||||
$kh_h_slider/plus.texture_normal = plus_texture
|
||||
func get_plus_texture():
|
||||
return plus_texture
|
||||
|
||||
|
||||
func _ready():
|
||||
self.add_child( load( "res://addons/kh_slider/kh_h_slider.tscn" ).instance() )
|
||||
|
||||
$kh_h_slider/minus.connect( "pressed", self, "_on_minus_pressed" )
|
||||
$kh_h_slider/value.connect( "changed", self, "_on_value_changed" )
|
||||
$kh_h_slider/value.connect( "value_changed", self, "_on_value_value_changed" )
|
||||
$kh_h_slider/plus.connect( "pressed", self, "_on_plus_pressed" )
|
||||
$kh_h_slider/minus.texture_normal = minus_texture
|
||||
$kh_h_slider/plus.texture_normal = plus_texture
|
||||
|
||||
func _on_minus_pressed():
|
||||
$kh_h_slider/value.value -= $kh_h_slider/value.step
|
||||
|
||||
func _on_plus_pressed():
|
||||
$kh_h_slider/value.value += $kh_h_slider/value.step
|
||||
|
||||
func _on_value_changed():
|
||||
emit_signal( "changed" )
|
||||
|
||||
|
||||
func _on_value_value_changed( value ):
|
||||
emit_signal( "value_changed", value )
|
BIN
addons/kh_slider/kh_h_slider.png
Normal file
After Width: | Height: | Size: 263 B |
34
addons/kh_slider/kh_h_slider.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/kh_h_slider.png-67a63c5d56a5b193fc3e01ab381c3118.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_slider/kh_h_slider.png"
|
||||
dest_files=[ "res://.import/kh_h_slider.png-67a63c5d56a5b193fc3e01ab381c3118.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
|
28
addons/kh_slider/kh_h_slider.tscn
Normal file
|
@ -0,0 +1,28 @@
|
|||
[gd_scene format=2]
|
||||
|
||||
[node name="kh_h_slider" type="HBoxContainer"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
size_flags_horizontal = 3
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="minus" type="TextureButton" parent="."]
|
||||
margin_bottom = 720.0
|
||||
|
||||
[node name="value" type="HSlider" parent="."]
|
||||
margin_left = 4.0
|
||||
margin_top = 352.0
|
||||
margin_right = 1276.0
|
||||
margin_bottom = 368.0
|
||||
size_flags_horizontal = 7
|
||||
size_flags_vertical = 4
|
||||
max_value = 1.0
|
||||
step = 0.1
|
||||
|
||||
[node name="plus" type="TextureButton" parent="."]
|
||||
margin_left = 1280.0
|
||||
margin_right = 1280.0
|
||||
margin_bottom = 720.0
|
||||
size_flags_horizontal = 9
|
8
addons/kh_slider/kh_h_slider_plugin.gd
Normal file
|
@ -0,0 +1,8 @@
|
|||
tool
|
||||
extends EditorPlugin
|
||||
|
||||
func _enter_tree():
|
||||
add_custom_type("KhHSlider", "HBoxContainer", load("kh_h_slider.gd"), load("kh_h_slider.png"))
|
||||
|
||||
func _exit_tree():
|
||||
remove_custom_type("KhHSlider")
|
7
addons/kh_slider/plugin.cfg
Normal file
|
@ -0,0 +1,7 @@
|
|||
[plugin]
|
||||
|
||||
name="Kh horizontal slider"
|
||||
description="A custom horizontal slider with plus and minus button."
|
||||
author="Osquallo"
|
||||
version="1.0.0"
|
||||
script="kh_h_slider_plugin.gd"
|
BIN
addons/kh_window/background_default.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
34
addons/kh_window/background_default.jpg.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/background_default.jpg-aed41b89e186db61ec5b400eb27d94fe.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_window/background_default.jpg"
|
||||
dest_files=[ "res://.import/background_default.jpg-aed41b89e186db61ec5b400eb27d94fe.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
|
BIN
addons/kh_window/button_close.png
Normal file
After Width: | Height: | Size: 520 B |
34
addons/kh_window/button_close.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/button_close.png-9f34349deeb08d840d7647855ab7a353.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_window/button_close.png"
|
||||
dest_files=[ "res://.import/button_close.png-9f34349deeb08d840d7647855ab7a353.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
|
BIN
addons/kh_window/button_move.png
Normal file
After Width: | Height: | Size: 674 B |
34
addons/kh_window/button_move.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/button_move.png-ef2fe32f15d58529bfc1f6cc2f9fe63d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_window/button_move.png"
|
||||
dest_files=[ "res://.import/button_move.png-ef2fe32f15d58529bfc1f6cc2f9fe63d.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
|
BIN
addons/kh_window/button_open.png
Normal file
After Width: | Height: | Size: 604 B |
34
addons/kh_window/button_open.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/button_open.png-cf783205f34dd914a0cab8fab62f56a1.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_window/button_open.png"
|
||||
dest_files=[ "res://.import/button_open.png-cf783205f34dd914a0cab8fab62f56a1.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
|
BIN
addons/kh_window/button_quit.png
Normal file
After Width: | Height: | Size: 605 B |
34
addons/kh_window/button_quit.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/button_quit.png-fa2aecf0e0a85388ff2448905317b767.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_window/button_quit.png"
|
||||
dest_files=[ "res://.import/button_quit.png-fa2aecf0e0a85388ff2448905317b767.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
|
BIN
addons/kh_window/button_resize.png
Normal file
After Width: | Height: | Size: 514 B |
34
addons/kh_window/button_resize.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/button_resize.png-27c492f856c7bdc09432edfe41351140.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_window/button_resize.png"
|
||||
dest_files=[ "res://.import/button_resize.png-27c492f856c7bdc09432edfe41351140.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
|
BIN
addons/kh_window/icon.png
Normal file
After Width: | Height: | Size: 246 B |
34
addons/kh_window/icon.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-daf83600099f6f3efdabc205448f4e6d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kh_window/icon.png"
|
||||
dest_files=[ "res://.import/icon.png-daf83600099f6f3efdabc205448f4e6d.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
|
532
addons/kh_window/kh_window.gd
Normal file
|
@ -0,0 +1,532 @@
|
|||
extends MarginContainer
|
||||
|
||||
export( bool ) var is_movable = true
|
||||
export( bool ) var is_resizable = true
|
||||
export( bool ) var is_borderless = false
|
||||
export( bool ) var has_footer = true
|
||||
export( bool ) var has_scrollbar = true
|
||||
export( bool ) var is_dragged_by_header_only = true
|
||||
|
||||
|
||||
export( String ) var title = "Window"
|
||||
|
||||
export( Color ) var content_color = Color( 1.0, 1.0, 1.0, 1.0 )# test
|
||||
export( Color ) var background_color = Color( 1.0, 1.0, 1.0, 1.0 )
|
||||
export( Texture ) var background_texture = null
|
||||
|
||||
export( Vector2 ) var min_size = Vector2( 128, 128 )
|
||||
export( Rect2 ) var content_margin = Rect2( 8, 8, 8, 8 )
|
||||
|
||||
signal window_clicked( window )
|
||||
|
||||
onready var header_box = $parts/header_box
|
||||
onready var content_box = $parts/content_box
|
||||
onready var footer_box = $parts/footer_box
|
||||
|
||||
var current_rect_size = Vector2( 0, 0 )
|
||||
var current_rect_position = Vector2( -1, -1 )
|
||||
var is_resizing = false
|
||||
var is_moving = false
|
||||
var size_changed = true
|
||||
|
||||
|
||||
func add_child_to_content( node):
|
||||
if self.get_content():
|
||||
self.get_content().add_child(node)
|
||||
|
||||
|
||||
func add_window_part( node ):
|
||||
add_child( node )
|
||||
|
||||
func set_mouse_pass_to_children( node ):
|
||||
for child in node.get_children():
|
||||
set_mouse_pass_to_children( child )
|
||||
if node is Control:
|
||||
node.mouse_filter = MOUSE_FILTER_PASS
|
||||
|
||||
#func _ready():
|
||||
func _enter_tree():
|
||||
########
|
||||
#### Window's part création.
|
||||
# The internal elements structure is:
|
||||
# self - MarginContainer
|
||||
# background - NinePatchRect
|
||||
# parts - VBoxContainer
|
||||
# header_box - MarginContainer
|
||||
# header - HBoxContainer
|
||||
# quit - TextureButton
|
||||
# close - TextureButton
|
||||
# open - TextureButton
|
||||
# label - Label
|
||||
# content_box - MarginContainer
|
||||
# scroll_container - Scrollcontainer
|
||||
# content - VBoxContainer
|
||||
# footer_box - MarginContainer
|
||||
# footer - HBoxContainer
|
||||
# contextual_help - Label
|
||||
# resize - TextureButton
|
||||
|
||||
###
|
||||
# self
|
||||
self.size_flags_horizontal = SIZE_EXPAND
|
||||
self.size_flags_vertical = SIZE_EXPAND
|
||||
|
||||
self.set( "custom_constants/margin_right", 0)
|
||||
self.set( "custom_constants/margin_top", 0)
|
||||
self.set( "custom_constants/margin_left", 0)
|
||||
self.set( "custom_constants/margin_bottom", 0)
|
||||
|
||||
|
||||
self.connect ( "gui_input", self, "_on_window_gui_input" )
|
||||
if is_movable and not self.is_dragged_by_header_only:
|
||||
self.mouse_default_cursor_shape = CURSOR_MOVE
|
||||
###
|
||||
###
|
||||
# background
|
||||
var background
|
||||
if not self.has_node( "background" ):
|
||||
background = NinePatchRect.new()
|
||||
background.name = "background"
|
||||
if not background_texture:
|
||||
# var background_image = Image.new()
|
||||
# var stream_texture = load('res://addons/ui_window/background_default.jpg')
|
||||
# if not stream_texture :
|
||||
# print("Erreur lors du chargement de l'image: "+str("res://addons/ui_window/background_default.jpg") )
|
||||
# else:
|
||||
# background_image = stream_texture.get_data()
|
||||
# background.texture = ImageTexture.new()
|
||||
# background.texture.create_from_image( background_image )
|
||||
# background.texture.flags = Texture.FLAG_FILTER | Texture.FLAG_REPEAT
|
||||
pass
|
||||
else:
|
||||
background.texture = background_texture
|
||||
background.texture.flags = Texture.FLAG_FILTER | Texture.FLAG_REPEAT
|
||||
|
||||
background.axis_stretch_horizontal = NinePatchRect.AXIS_STRETCH_MODE_TILE
|
||||
background.axis_stretch_vertical = NinePatchRect.AXIS_STRETCH_MODE_TILE
|
||||
|
||||
background.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
background.size_flags_vertical = SIZE_EXPAND_FILL
|
||||
|
||||
background.region_rect = Rect2( 0, 0, 0, 0 )
|
||||
background.patch_margin_left = 4
|
||||
background.patch_margin_top = 32
|
||||
background.patch_margin_right = 4
|
||||
background.patch_margin_bottom = 4
|
||||
|
||||
background.self_modulate = background_color
|
||||
self.add_window_part( background )
|
||||
# background.set_owner( self )
|
||||
###
|
||||
###
|
||||
# parts
|
||||
var parts
|
||||
if not self.has_node( "parts" ):
|
||||
parts = VBoxContainer.new()
|
||||
parts.name = "parts"
|
||||
parts.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
parts.size_flags_vertical = SIZE_EXPAND_FILL
|
||||
self.add_window_part( parts )
|
||||
# parts.set_owner( self )
|
||||
###
|
||||
###
|
||||
# header_box
|
||||
var header_box
|
||||
if not parts.has_node( "header_box" ):
|
||||
header_box = MarginContainer.new()
|
||||
header_box.name = "header_box"
|
||||
header_box.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
header_box.size_flags_vertical = SIZE_SHRINK_CENTER
|
||||
|
||||
header_box.set( "custom_constants/margin_right", 4)
|
||||
header_box.set( "custom_constants/margin_top", 4)
|
||||
header_box.set( "custom_constants/margin_left", 4)
|
||||
header_box.set( "custom_constants/margin_bottom", 4)
|
||||
|
||||
if is_movable:
|
||||
header_box.mouse_default_cursor_shape = CURSOR_MOVE
|
||||
parts.add_child( header_box )
|
||||
# header_box.set_owner( parts )
|
||||
header_box.connect ( "gui_input", self, "_on_Header_gui_input" )
|
||||
###
|
||||
###
|
||||
# header
|
||||
var header
|
||||
if not header_box.has_node( "header" ):
|
||||
header = HBoxContainer.new()
|
||||
header.name = "header"
|
||||
header.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
header.size_flags_vertical = SIZE_EXPAND | SIZE_SHRINK_CENTER
|
||||
if is_movable:
|
||||
header.mouse_default_cursor_shape = CURSOR_MOVE
|
||||
header_box.add_child( header )
|
||||
# header.set_owner( header_box )
|
||||
###
|
||||
###
|
||||
# quit
|
||||
var quit_button
|
||||
if not header.has_node( "quit" ):
|
||||
quit_button = TextureButton.new()
|
||||
quit_button.name = "quit"
|
||||
quit_button.size_flags_horizontal = SIZE_SHRINK_END
|
||||
quit_button.size_flags_vertical = SIZE_SHRINK_CENTER
|
||||
|
||||
var tex_quit = ImageTexture.new()
|
||||
var img_quit = Image.new()
|
||||
var stream_texture = load( "res://addons/kh_window/button_quit.png")
|
||||
img_quit = stream_texture.get_data()
|
||||
tex_quit.create_from_image( img_quit )
|
||||
quit_button.texture_normal = tex_quit
|
||||
|
||||
header.add_child( quit_button )
|
||||
# quit_button.set_owner( header )
|
||||
quit_button.connect ( "pressed", self, "_on_Quit_pressed" )
|
||||
###
|
||||
# close
|
||||
var close_button = TextureButton.new()
|
||||
if not header.has_node( "close" ):
|
||||
close_button = TextureButton.new()
|
||||
close_button.name = "close"
|
||||
close_button.size_flags_horizontal = SIZE_SHRINK_END
|
||||
close_button.size_flags_vertical = SIZE_SHRINK_CENTER
|
||||
|
||||
var tex_close = ImageTexture.new()
|
||||
var img_close = Image.new()
|
||||
var stream_texture = load("res://addons/kh_window/button_close.png")
|
||||
img_close = stream_texture.get_data()
|
||||
tex_close.create_from_image( img_close )
|
||||
close_button.texture_normal = tex_close
|
||||
|
||||
header.add_child( close_button )
|
||||
# close_button.set_owner( header )
|
||||
close_button.connect ( "pressed", self, "_on_Close_pressed" )
|
||||
###
|
||||
# open
|
||||
var open_button
|
||||
if not header.has_node( "open" ):
|
||||
open_button = TextureButton.new()
|
||||
open_button.name = "open"
|
||||
open_button.size_flags_horizontal = SIZE_SHRINK_END
|
||||
open_button.size_flags_vertical = SIZE_SHRINK_CENTER
|
||||
|
||||
var tex_open = ImageTexture.new()
|
||||
var img_open = Image.new()
|
||||
var stream_texture = load("res://addons/kh_window/button_open.png")
|
||||
img_open = stream_texture.get_data()
|
||||
tex_open.create_from_image( img_open )
|
||||
open_button.texture_normal = tex_open
|
||||
open_button.visible = false
|
||||
header.add_child( open_button )
|
||||
# open_button.set_owner( header )
|
||||
open_button.connect ( "pressed", self, "_on_Open_pressed" )
|
||||
###
|
||||
###
|
||||
# Title Label
|
||||
var title_label
|
||||
if not header.has_node( "label" ):
|
||||
title_label = Label.new()
|
||||
title_label.name = "label"
|
||||
title_label.text = title
|
||||
title_label.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
title_label.size_flags_vertical = SIZE_SHRINK_CENTER
|
||||
if is_movable:
|
||||
title_label.mouse_default_cursor_shape = CURSOR_MOVE
|
||||
header.add_child( title_label )
|
||||
# title_label.set_owner( header )
|
||||
###
|
||||
###
|
||||
# Content
|
||||
var content_box
|
||||
if not parts.has_node( "content_box" ):
|
||||
content_box = MarginContainer.new()
|
||||
content_box.name = "content_box"
|
||||
content_box.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
content_box.size_flags_vertical = SIZE_EXPAND_FILL
|
||||
content_box.set( "custom_constants/margin_right", 8)
|
||||
content_box.set( "custom_constants/margin_top", 8)
|
||||
content_box.set( "custom_constants/margin_left", 8)
|
||||
content_box.set( "custom_constants/margin_bottom", 8)
|
||||
parts.add_child( content_box )
|
||||
# content_box.set_owner( parts )
|
||||
###
|
||||
###
|
||||
if self.has_scrollbar:
|
||||
# content_box/scroll_container
|
||||
var content_scroll_container
|
||||
if not content_box.has_node( "scroll_container" ):
|
||||
content_scroll_container = ScrollContainer.new()
|
||||
content_scroll_container.name = "scroll_container"
|
||||
content_scroll_container.size_flags_horizontal = SIZE_FILL
|
||||
content_scroll_container.size_flags_vertical = SIZE_FILL
|
||||
content_scroll_container.scroll_deadzone = 0
|
||||
content_box.add_child( content_scroll_container )
|
||||
# content_scroll_container.set_owner( content_box )
|
||||
###
|
||||
###
|
||||
# content
|
||||
var content
|
||||
if not content_scroll_container.has_node( "content" ):
|
||||
content = MarginContainer.new()
|
||||
content.name = "content"
|
||||
content.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
content.size_flags_vertical = SIZE_EXPAND_FILL
|
||||
content_scroll_container.add_child( content )
|
||||
# content.set_owner( content_scroll_container )
|
||||
###
|
||||
else:
|
||||
var content
|
||||
if not content_box.has_node( "content" ):
|
||||
content = MarginContainer.new()
|
||||
content.name = "content"
|
||||
content.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
content.size_flags_vertical = SIZE_EXPAND_FILL
|
||||
content_box.add_child( content )
|
||||
|
||||
|
||||
###
|
||||
# Footer
|
||||
var footer_box
|
||||
if not parts.has_node( "footer_box" ):
|
||||
footer_box = MarginContainer.new()
|
||||
footer_box.name = "footer_box"
|
||||
footer_box.size_flags_horizontal = SIZE_FILL
|
||||
footer_box.size_flags_vertical = SIZE_FILL
|
||||
footer_box.set( "custom_constants/margin_right", content_margin.position.y)
|
||||
footer_box.set( "custom_constants/margin_top", content_margin.size.x)
|
||||
footer_box.set( "custom_constants/margin_left", content_margin.position.x)
|
||||
footer_box.set( "custom_constants/margin_bottom", content_margin.size.y)
|
||||
parts.add_child( footer_box )
|
||||
# footer_box.set_owner( parts )
|
||||
###
|
||||
###
|
||||
# footer_box/footer
|
||||
var footer
|
||||
if not footer_box.has_node( "footer" ):
|
||||
footer = HBoxContainer.new()
|
||||
footer.name = "footer"
|
||||
footer.size_flags_horizontal = SIZE_EXPAND_FILL
|
||||
footer.size_flags_vertical = SIZE_EXPAND_FILL
|
||||
footer_box.add_child( footer )
|
||||
# footer.set_owner( footer_box )
|
||||
###
|
||||
###
|
||||
# footer_label
|
||||
var footer_label
|
||||
if not footer.has_node( "footer_label" ):
|
||||
footer_label = Label.new()
|
||||
footer_label.name = "footer_label"
|
||||
footer_label.size_flags_horizontal = SIZE_EXPAND
|
||||
footer_label.size_flags_vertical = SIZE_EXPAND
|
||||
|
||||
footer.add_child( footer_label )
|
||||
|
||||
###
|
||||
# resize
|
||||
var resize_button
|
||||
if not footer.has_node( "resize" ):
|
||||
resize_button = TextureButton.new()
|
||||
resize_button.name = "resize"
|
||||
resize_button.size_flags_horizontal = SIZE_FILL | SIZE_SHRINK_END
|
||||
resize_button.size_flags_vertical = SIZE_SHRINK_END
|
||||
|
||||
var tex_resize = ImageTexture.new()
|
||||
var img_resize = Image.new()
|
||||
var stream_texture = load("res://addons/kh_window/button_resize.png")
|
||||
img_resize = stream_texture.get_data()
|
||||
tex_resize.create_from_image( img_resize )
|
||||
resize_button.texture_normal = tex_resize
|
||||
resize_button.mouse_default_cursor_shape = CURSOR_FDIAGSIZE
|
||||
resize_button.action_mode = Button.ACTION_MODE_BUTTON_PRESS
|
||||
# resize_button.mouse_filter = MOUSE_FILTER_STOP
|
||||
footer.add_child( resize_button )
|
||||
# resize_button.set_owner( footer )
|
||||
resize_button.connect ( "button_down", self, "_on_Resize_pressed" )
|
||||
###er_label.set_owner( footer )
|
||||
###
|
||||
|
||||
current_rect_size = self.rect_min_size
|
||||
|
||||
if is_borderless:
|
||||
$background.region_rect = Rect2( $background.patch_margin_left-1
|
||||
, $background.patch_margin_top-1
|
||||
, 256-($background.patch_margin_left+$background.patch_margin_right)+2
|
||||
, 256-($background.patch_margin_top+$background.patch_margin_bottom)+2 )
|
||||
$background.patch_margin_left = 1
|
||||
$background.patch_margin_top = 1
|
||||
$background.patch_margin_right = 1
|
||||
$background.patch_margin_bottom = 1
|
||||
header_box.rect_min_size.y = 1
|
||||
close_button.visible = false
|
||||
open_button.visible = false
|
||||
quit_button.visible = false
|
||||
title_label.visible = false
|
||||
|
||||
|
||||
|
||||
|
||||
if not is_resizable:
|
||||
if not has_footer:
|
||||
footer_box.visible = false
|
||||
else:
|
||||
footer_box.get_node( "footer/resize" ).visible = false
|
||||
|
||||
func _ready():
|
||||
# On déplace les enfants ajouter via l'editeur sous content.
|
||||
for child in self.get_children():
|
||||
if not child.name =="parts" and not child.name =="background":
|
||||
if child.name.begins_with( "footer_" ):
|
||||
if footer_box.get_node("footer").has_node("footer_label"):
|
||||
footer_box.get_node("footer").remove_child( footer_box.get_node("footer").get_node("footer_label") )
|
||||
|
||||
self.remove_child( child )
|
||||
get_footer().add_child( child )
|
||||
get_footer().move_child( child, 0 )
|
||||
else:
|
||||
self.remove_child( child )
|
||||
get_content().add_child( child )
|
||||
|
||||
set_mouse_pass_to_children( self )
|
||||
|
||||
func _process(delta):
|
||||
if size_changed:
|
||||
self.rect_size = Vector2( clamp( self.rect_size.x, min_size.x, self.rect_size.x ), clamp( self.rect_size.y, min_size.y, self.rect_size.y ) )
|
||||
size_changed = false
|
||||
|
||||
func _on_Window_mouse_entered():
|
||||
print("mouse_entered")
|
||||
|
||||
|
||||
func _on_Window_focus_entered():
|
||||
print("focus_entered")
|
||||
|
||||
|
||||
func _on_Quit_pressed():
|
||||
self.visible = false
|
||||
|
||||
func get_content_child( p_node ):
|
||||
return get_content().get_node( p_node )
|
||||
|
||||
func get_content():
|
||||
if self.has_scrollbar:
|
||||
return content_box.get_node( "scroll_container/content" )
|
||||
else:
|
||||
return content_box.get_node( "content" )
|
||||
|
||||
func get_footer():
|
||||
return footer_box.get_node( "footer" )
|
||||
|
||||
|
||||
func close():
|
||||
if not self.is_borderless:
|
||||
self.header_box.get_node( "header/close" ).visible = false
|
||||
self.header_box.get_node( "header/open" ).visible = true
|
||||
self.content_box.visible = false
|
||||
self.footer_box.visible = false
|
||||
self.current_rect_size = self.rect_size
|
||||
self.rect_size = Vector2( 0, 0 )
|
||||
$background.rect_size = Vector2( 0, 0 )
|
||||
$background.rect_min_size = Vector2( 0, 0 )
|
||||
else:
|
||||
self.header_box.get_node( "header/close" ).visible = false
|
||||
self.header_box.get_node( "header/open" ).visible = false
|
||||
self.content_box.visible = false
|
||||
self.footer_box.visible = false
|
||||
self.current_rect_size = self.rect_size
|
||||
self.rect_size = Vector2( 0, 0 )
|
||||
$background.rect_size = Vector2( 0, 0 )
|
||||
$background.rect_min_size = Vector2( 0, 0 )
|
||||
|
||||
|
||||
func _on_Close_pressed():
|
||||
close()
|
||||
|
||||
func open():
|
||||
if not is_borderless:
|
||||
header_box.get_node( "header/close" ).visible = true
|
||||
header_box.get_node( "header/open" ).visible = false
|
||||
content_box.visible = true
|
||||
footer_box.visible = true
|
||||
self.rect_size = current_rect_size
|
||||
else:
|
||||
header_box.get_node( "header/close" ).visible = false
|
||||
header_box.get_node( "header/open" ).visible = false
|
||||
content_box.visible = true
|
||||
footer_box.visible = true
|
||||
self.rect_size = current_rect_size
|
||||
|
||||
func _on_Open_pressed():
|
||||
open()
|
||||
|
||||
func _on_Resize_pressed():
|
||||
is_resizing = true
|
||||
|
||||
func _input( event ):
|
||||
if is_resizable:
|
||||
if is_resizing and event is InputEventMouseButton and not event.pressed:
|
||||
is_resizing = false
|
||||
if event is InputEventMouseMotion and is_resizing:
|
||||
var delta = event.relative
|
||||
self.rect_size += delta
|
||||
size_changed = true
|
||||
|
||||
func check_if_clicked( event ):
|
||||
if not is_moving and event is InputEventMouseButton and event.is_pressed() and not event.is_echo() and event.button_index == 1 :
|
||||
emit_signal( "window_clicked", self )
|
||||
|
||||
func _on_Header_gui_input( event ):
|
||||
|
||||
check_if_clicked( event )
|
||||
|
||||
if self.is_dragged_by_header_only:
|
||||
if is_movable:
|
||||
if is_moving and event is InputEventMouseButton and not event.pressed:
|
||||
is_moving = false
|
||||
elif not is_moving and event is InputEventMouseButton and event.pressed:
|
||||
is_moving = true
|
||||
if event is InputEventMouseMotion and is_moving:
|
||||
var delta = event.relative
|
||||
self.rect_position += delta
|
||||
|
||||
func _on_window_gui_input( event ):
|
||||
check_if_clicked( event )
|
||||
if not self.is_dragged_by_header_only:
|
||||
if is_movable:
|
||||
if is_moving and event is InputEventMouseButton and not event.pressed:
|
||||
is_moving = false
|
||||
elif not is_moving and event is InputEventMouseButton and event.pressed:
|
||||
is_moving = true
|
||||
if event is InputEventMouseMotion and is_moving:
|
||||
var delta = event.relative
|
||||
self.rect_position += delta
|
||||
|
||||
func load_from_file( config_file ):
|
||||
print("[res://addons/kh_window/kh_window.gd] load_from_file")
|
||||
if config_file.has_section( self.name ):
|
||||
self.rect_position = config_file.get_value( self.name, "position" )
|
||||
self.rect_size = config_file.get_value( self.name, "size" )
|
||||
self.is_borderless = config_file.get_value( self.name, "borderless" )
|
||||
current_rect_position = self.rect_position
|
||||
current_rect_size = self.rect_size
|
||||
if config_file.get_value( self.name, "opened" ):
|
||||
open()
|
||||
else:
|
||||
close()
|
||||
|
||||
|
||||
func save_to_file( config_file ):
|
||||
|
||||
var is_open = content_box.visible
|
||||
|
||||
config_file.set_value(self.name, "position", self.rect_position)
|
||||
|
||||
if not is_open:
|
||||
config_file.set_value(self.name, "size", current_rect_size)
|
||||
else:
|
||||
config_file.set_value(self.name, "size", self.rect_size)
|
||||
|
||||
if is_open:
|
||||
config_file.set_value(self.name, "opened", true)
|
||||
else:
|
||||
config_file.set_value(self.name, "opened", false)
|
||||
|
||||
config_file.set_value(self.name, "borderless", is_borderless)
|
12
addons/kh_window/kh_window_plugin.gd
Normal file
|
@ -0,0 +1,12 @@
|
|||
tool
|
||||
extends EditorPlugin
|
||||
|
||||
func _enter_tree():
|
||||
# Initialization of the plugin goes here
|
||||
# Add the new type with a name, a parent type, a script and an icon
|
||||
add_custom_type("kh_window", "MarginContainer", load("res://addons/kh_window/kh_window.gd"), load("res://addons/kh_window/icon.png"))
|
||||
|
||||
func _exit_tree():
|
||||
# Clean-up of the plugin goes here
|
||||
# Always remember to remove it from the engine when deactivated
|
||||
remove_custom_type("kh_window")
|
7
addons/kh_window/plugin.cfg
Normal file
|
@ -0,0 +1,7 @@
|
|||
[plugin]
|
||||
|
||||
name="KH Window"
|
||||
description="A custom window control."
|
||||
author="Osquallo"
|
||||
version="1.0.0"
|
||||
script="kh_window_plugin.gd"
|
BIN
assets/creatures/arche/MatArcheBleue.material
Normal file
BIN
assets/creatures/arche/MatArcheCyan.material
Normal file
BIN
assets/creatures/arche/MatArcheJaune.material
Normal file
BIN
assets/creatures/arche/MatArcheRose.material
Normal file
BIN
assets/creatures/arche/MatArcheRouge.material
Normal file
BIN
assets/creatures/arche/MatArcheVert.material
Normal file
BIN
assets/creatures/arche/arche.bin
Normal file
BIN
assets/creatures/arche/arche.glb
Normal file
1064
assets/creatures/arche/arche.glb.import
Normal file
1933
assets/creatures/arche/arche.gltf
Normal file
1064
assets/creatures/arche/arche.gltf.import
Normal file
5
assets/creatures/arche/arche.tscn
Normal file
|
@ -0,0 +1,5 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://assets/creatures/arche/arche.gltf" type="PackedScene" id=1]
|
||||
|
||||
[node name="arche" instance=ExtResource( 1 )]
|
BIN
assets/creatures/human/human_female_skin.material
Normal file
BIN
assets/creatures/human/human_male_skin.material
Normal file
14912
assets/creatures/human/mh_human_female.escn
Normal file
1064
assets/creatures/human/mh_human_female.escn.import
Normal file
BIN
assets/creatures/human/mh_human_female_body.material
Normal file
BIN
assets/creatures/human/mh_human_female_eyebrow.material
Normal file
BIN
assets/creatures/human/mh_human_female_eyelashes.material
Normal file
BIN
assets/creatures/human/mh_human_female_eyes.material
Normal file
12693
assets/creatures/human/mh_human_female_hair.escn
Normal file
1064
assets/creatures/human/mh_human_female_hair.escn.import
Normal file
BIN
assets/creatures/human/mh_human_female_hair.material
Normal file
12693
assets/creatures/human/mh_human_female_pant.escn
Normal file
1064
assets/creatures/human/mh_human_female_pant.escn.import
Normal file
BIN
assets/creatures/human/mh_human_female_pant.material
Normal file
12693
assets/creatures/human/mh_human_female_shoes.escn
Normal file
1064
assets/creatures/human/mh_human_female_shoes.escn.import
Normal file
BIN
assets/creatures/human/mh_human_female_shoes.material
Normal file
BIN
assets/creatures/human/mh_human_female_teeth.material
Normal file
BIN
assets/creatures/human/mh_human_female_tongue.material
Normal file
12705
assets/creatures/human/mh_human_female_tshirt.escn
Normal file
1064
assets/creatures/human/mh_human_female_tshirt.escn.import
Normal file
BIN
assets/creatures/human/mh_human_female_tshirt.material
Normal file
14676
assets/creatures/human/mh_human_male.escn
Normal file
1064
assets/creatures/human/mh_human_male.escn.import
Normal file
BIN
assets/creatures/human/mh_human_male.material
Normal file
BIN
assets/creatures/human/mh_human_male_eyebrow.material
Normal file
BIN
assets/creatures/human/mh_human_male_eyelashes.material
Normal file
BIN
assets/creatures/human/mh_human_male_eyes.material
Normal file
12659
assets/creatures/human/mh_human_male_hair.escn
Normal file
1064
assets/creatures/human/mh_human_male_hair.escn.import
Normal file
BIN
assets/creatures/human/mh_human_male_hair.material
Normal file
12659
assets/creatures/human/mh_human_male_pant.escn
Normal file
1064
assets/creatures/human/mh_human_male_pant.escn.import
Normal file
BIN
assets/creatures/human/mh_human_male_pant.material
Normal file
12659
assets/creatures/human/mh_human_male_shoes.escn
Normal file
1064
assets/creatures/human/mh_human_male_shoes.escn.import
Normal file
BIN
assets/creatures/human/mh_human_male_shoes.material
Normal file
BIN
assets/creatures/human/mh_human_male_teeth.material
Normal file
BIN
assets/creatures/human/mh_human_male_tongue.material
Normal file
12659
assets/creatures/human/mh_human_male_tshirt.escn
Normal file
1064
assets/creatures/human/mh_human_male_tshirt.escn.import
Normal file
BIN
assets/creatures/human/mh_human_male_tshirt.material
Normal file
BIN
assets/creatures/human/textures/blue_eye.png
Normal file
After Width: | Height: | Size: 650 KiB |
34
assets/creatures/human/textures/blue_eye.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/blue_eye.png-d7d2301f5e528b59c3005a04c86ddb4d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/blue_eye.png"
|
||||
dest_files=[ "res://.import/blue_eye.png-d7d2301f5e528b59c3005a04c86ddb4d.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
|
BIN
assets/creatures/human/textures/bluegreen_eye.png
Normal file
After Width: | Height: | Size: 682 KiB |
34
assets/creatures/human/textures/bluegreen_eye.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/bluegreen_eye.png-c5c1be7f8fa9c7af282cec47ddb1d6c4.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/bluegreen_eye.png"
|
||||
dest_files=[ "res://.import/bluegreen_eye.png-c5c1be7f8fa9c7af282cec47ddb1d6c4.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
|
BIN
assets/creatures/human/textures/brown_eye.png
Normal file
After Width: | Height: | Size: 596 KiB |
34
assets/creatures/human/textures/brown_eye.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/brown_eye.png-ac17310139718dd36b9a18837722afbe.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/brown_eye.png"
|
||||
dest_files=[ "res://.import/brown_eye.png-ac17310139718dd36b9a18837722afbe.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
|
BIN
assets/creatures/human/textures/brownlight_eye.png
Normal file
After Width: | Height: | Size: 665 KiB |
34
assets/creatures/human/textures/brownlight_eye.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/brownlight_eye.png-6411d1783f3a60be2b6d561cae8a6032.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/brownlight_eye.png"
|
||||
dest_files=[ "res://.import/brownlight_eye.png-6411d1783f3a60be2b6d561cae8a6032.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
|
BIN
assets/creatures/human/textures/deepblue_eye.png
Normal file
After Width: | Height: | Size: 644 KiB |
34
assets/creatures/human/textures/deepblue_eye.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/deepblue_eye.png-7548b9d978d6a9035ef4bf858104c20d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/deepblue_eye.png"
|
||||
dest_files=[ "res://.import/deepblue_eye.png-7548b9d978d6a9035ef4bf858104c20d.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
|
BIN
assets/creatures/human/textures/eyebrow001.png
Normal file
After Width: | Height: | Size: 88 KiB |
36
assets/creatures/human/textures/eyebrow001.png.import
Normal file
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path.s3tc="res://.import/eyebrow001.png-b1079b39568ce7239cae7a3440b4c742.s3tc.stex"
|
||||
path.etc2="res://.import/eyebrow001.png-b1079b39568ce7239cae7a3440b4c742.etc2.stex"
|
||||
metadata={
|
||||
"imported_formats": [ "s3tc", "etc2" ],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/eyebrow001.png"
|
||||
dest_files=[ "res://.import/eyebrow001.png-b1079b39568ce7239cae7a3440b4c742.s3tc.stex", "res://.import/eyebrow001.png-b1079b39568ce7239cae7a3440b4c742.etc2.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=true
|
||||
flags/filter=true
|
||||
flags/mipmaps=true
|
||||
flags/anisotropic=false
|
||||
flags/srgb=1
|
||||
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=false
|
||||
svg/scale=1.0
|
BIN
assets/creatures/human/textures/eyelashes01.png
Normal file
After Width: | Height: | Size: 90 KiB |
36
assets/creatures/human/textures/eyelashes01.png.import
Normal file
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path.s3tc="res://.import/eyelashes01.png-d24859d80efa1225842a7331e0eb0d9f.s3tc.stex"
|
||||
path.etc2="res://.import/eyelashes01.png-d24859d80efa1225842a7331e0eb0d9f.etc2.stex"
|
||||
metadata={
|
||||
"imported_formats": [ "s3tc", "etc2" ],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/eyelashes01.png"
|
||||
dest_files=[ "res://.import/eyelashes01.png-d24859d80efa1225842a7331e0eb0d9f.s3tc.stex", "res://.import/eyelashes01.png-d24859d80efa1225842a7331e0eb0d9f.etc2.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=true
|
||||
flags/filter=true
|
||||
flags/mipmaps=true
|
||||
flags/anisotropic=false
|
||||
flags/srgb=1
|
||||
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=false
|
||||
svg/scale=1.0
|
BIN
assets/creatures/human/textures/green_eye.png
Normal file
After Width: | Height: | Size: 647 KiB |
36
assets/creatures/human/textures/green_eye.png.import
Normal file
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path.s3tc="res://.import/green_eye.png-53836a205e64e346a80fb1aaa9d9b0f7.s3tc.stex"
|
||||
path.etc2="res://.import/green_eye.png-53836a205e64e346a80fb1aaa9d9b0f7.etc2.stex"
|
||||
metadata={
|
||||
"imported_formats": [ "s3tc", "etc2" ],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/green_eye.png"
|
||||
dest_files=[ "res://.import/green_eye.png-53836a205e64e346a80fb1aaa9d9b0f7.s3tc.stex", "res://.import/green_eye.png-53836a205e64e346a80fb1aaa9d9b0f7.etc2.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=true
|
||||
flags/filter=true
|
||||
flags/mipmaps=true
|
||||
flags/anisotropic=false
|
||||
flags/srgb=1
|
||||
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=false
|
||||
svg/scale=1.0
|
BIN
assets/creatures/human/textures/grey_eye.png
Normal file
After Width: | Height: | Size: 654 KiB |
34
assets/creatures/human/textures/grey_eye.png.import
Normal file
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/grey_eye.png-6eb34815c7268510225eb2b02829ab74.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/creatures/human/textures/grey_eye.png"
|
||||
dest_files=[ "res://.import/grey_eye.png-6eb34815c7268510225eb2b02829ab74.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
|