First work on dialogic, resized guild, and started implementing portraits.

This commit is contained in:
2025-08-14 10:26:24 -04:00
parent 95a7db036b
commit 3aeb3d44e6
959 changed files with 47688 additions and 46 deletions

View File

@@ -0,0 +1,7 @@
[style]
type = "Layer"
name = "5 Portraits"
author = "Dialogic"
description = "A layer with 5 portrait position containers."
scene = "vn_portrait_layer.tscn"
icon = "portrait_layer_icon.svg"

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1"
id="svg13076" inkscape:export-filename="portrait_layre.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg" inkscape:export-ydpi="96" inkscape:export-xdpi="96" inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="100px"
viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
<sodipodi:namedview id="namedview13078" inkscape:pagecheckerboard="0" inkscape:cy="64.755078" inkscape:zoom="4.185" inkscape:cx="70.728793" pagecolor="#505050" showgrid="true" borderopacity="1" bordercolor="#eeeeee" inkscape:document-units="mm" inkscape:deskcolor="#505050" inkscape:pageopacity="0" inkscape:showpageshadow="0" inkscape:current-layer="layer1" inkscape:window-y="-8" inkscape:window-x="-8" inkscape:window-height="1017" inkscape:window-width="1920" inkscape:window-maximized="1">
<inkscape:grid id="grid14286" type="xygrid"></inkscape:grid>
</sodipodi:namedview>
<g>
<ellipse id="path23638" fill="#FFFFFF" cx="18.793" cy="33.473" rx="13.682" ry="14.261"/>
<path id="path23636" sodipodi:nodetypes="ccccc" fill="#FFFFFF" d="M6.903,80.789c0-11.847,0-23.693,4.756-35.539h14.268
c4.756,11.846,4.756,23.692,4.756,35.539H6.903"/>
<ellipse id="ellipse23642" fill="#FFFFFF" cx="49.999" cy="33.473" rx="13.683" ry="14.261"/>
<path id="path23640" sodipodi:nodetypes="ccccc" fill="#FFFFFF" d="M38.108,80.789c0-11.847,0-23.693,4.756-35.539h14.268
c4.756,11.846,4.756,23.692,4.756,35.539H38.108"/>
<path id="path23644" sodipodi:nodetypes="ccccc" fill="#FFFFFF" d="M69.316,80.789c0-11.847,0-23.693,4.756-35.539H88.34
c4.757,11.846,4.757,23.692,4.757,35.539H69.316"/>
<ellipse id="ellipse23646" fill="#FFFFFF" cx="81.206" cy="33.473" rx="13.683" ry="14.261"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,44 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://fwi64s4gbob2"
path="res://.godot/imported/portrait_layer_icon.svg-4bc8b0ebd4dd0977a12c09f30758d7e1.ctex"
metadata={
"has_editor_variant": true,
"vram_texture": false
}
[deps]
source_file="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Portraits/portrait_layer_icon.svg"
dest_files=["res://.godot/imported/portrait_layer_icon.svg-4bc8b0ebd4dd0977a12c09f30758d7e1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=0.3
editor/scale_with_editor_scale=true
editor/convert_colors_with_editor_theme=true

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ypmfci4n2abt"
path="res://.godot/imported/preview.png-8a6dae1a8e205382d354326ea6961ed2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Portraits/preview.png"
dest_files=["res://.godot/imported/preview.png-8a6dae1a8e205382d354326ea6961ed2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,14 @@
@tool
extends DialogicLayoutLayer
## A layer that allows showing 5 portraits, like in a visual novel.
## The canvas layer that the portraits are on.
@export var portrait_size_mode: DialogicNode_PortraitContainer.SizeModes = DialogicNode_PortraitContainer.SizeModes.FIT_SCALE_HEIGHT
func _apply_export_overrides() -> void:
# apply portrait size
for child: DialogicNode_PortraitContainer in %Portraits.get_children():
child.size_mode = portrait_size_mode
child.update_portrait_transforms()

View File

@@ -0,0 +1 @@
uid://dhu6skuji8f8q

View File

@@ -0,0 +1,84 @@
[gd_scene load_steps=3 format=3 uid="uid://cy1y14inwkplb"]
[ext_resource type="Script" path="res://addons/dialogic/Modules/DefaultLayoutParts/Layer_VN_Portraits/vn_portrait_layer.gd" id="1_1i7em"]
[ext_resource type="Script" path="res://addons/dialogic/Modules/Character/node_portrait_container.gd" id="1_rxdcc"]
[node name="VN_PortraitLayer" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_1i7em")
[node name="Portraits" type="Control" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="DialogicNode_PortraitContainer1" type="Control" parent="Portraits"]
layout_mode = 1
anchor_right = 0.2
anchor_bottom = 1.0
offset_right = -1.52588e-05
grow_vertical = 2
pivot_offset = Vector2(115.2, 648)
mouse_filter = 2
script = ExtResource("1_rxdcc")
container_ids = PackedStringArray("leftmost", "0")
metadata/_edit_use_anchors_ = true
[node name="DialogicNode_PortraitContainer2" type="Control" parent="Portraits"]
layout_mode = 1
anchor_left = 0.2
anchor_right = 0.4
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_rxdcc")
container_ids = PackedStringArray("left", "1")
metadata/_edit_use_anchors_ = true
[node name="DialogicNode_PortraitContainer3" type="Control" parent="Portraits"]
layout_mode = 1
anchor_left = 0.4
anchor_right = 0.6
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_rxdcc")
container_ids = PackedStringArray("center", "middle", "2")
metadata/_edit_use_anchors_ = true
[node name="DialogicNode_PortraitContainer4" type="Control" parent="Portraits"]
layout_mode = 1
anchor_left = 0.6
anchor_right = 0.8
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_rxdcc")
container_ids = PackedStringArray("right", "3")
metadata/_edit_use_anchors_ = true
[node name="DialogicNode_PortraitContainer5" type="Control" parent="Portraits"]
layout_mode = 1
anchor_left = 0.8
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_rxdcc")
container_ids = PackedStringArray("rightmost", "4")
metadata/_edit_use_anchors_ = true