Roughly implemented z indexing.
This commit is contained in:
parent
a98c19ad72
commit
2c3390ff13
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[sub_resource type="Image" id=1]
|
[sub_resource type="Image" id=1]
|
||||||
data = {
|
data = {
|
||||||
"data": PoolByteArray( 146, 121, 211, 61, 105, 86, 230, 188, 0, 0, 0, 0, 252, 152, 127, 63, 240, 63, 201, 188, 72, 62, 73, 62, 0, 0, 0, 0, 29, 23, 26, 63, 192, 134, 71, 189, 169, 77, 108, 187, 0, 0, 0, 0, 0, 0, 128, 63, 192, 134, 71, 189, 169, 77, 108, 187, 0, 0, 0, 0, 0, 0, 128, 63, 225, 221, 100, 62, 58, 251, 45, 189, 0, 0, 0, 0, 220, 162, 139, 62, 30, 240, 195, 188, 186, 74, 183, 62, 0, 0, 0, 0, 248, 30, 185, 62, 11, 245, 66, 60, 50, 221, 41, 189, 0, 0, 0, 0, 0, 0, 128, 191, 11, 245, 66, 188, 50, 221, 41, 61, 0, 0, 0, 0, 0, 0, 128, 63 ),
|
"data": PoolByteArray( 163, 97, 129, 190, 169, 186, 124, 187, 0, 0, 0, 0, 134, 159, 23, 62, 35, 171, 151, 187, 128, 246, 130, 190, 0, 0, 0, 0, 174, 147, 27, 62, 235, 149, 61, 61, 170, 244, 29, 61, 0, 0, 0, 0, 0, 0, 128, 63, 235, 149, 61, 61, 170, 244, 29, 61, 0, 0, 0, 0, 0, 0, 128, 63, 149, 180, 151, 190, 43, 243, 217, 188, 0, 0, 0, 0, 194, 193, 28, 190, 74, 160, 139, 188, 18, 181, 131, 190, 0, 0, 0, 0, 105, 78, 11, 190, 170, 140, 27, 62, 130, 27, 96, 62, 0, 0, 0, 0, 0, 0, 128, 191, 170, 140, 27, 190, 130, 27, 96, 190, 0, 0, 0, 0, 0, 0, 128, 63 ),
|
||||||
"format": "RGBAFloat",
|
"format": "RGBAFloat",
|
||||||
"height": 1,
|
"height": 1,
|
||||||
"mipmaps": false,
|
"mipmaps": false,
|
||||||
|
|
|
@ -4,6 +4,7 @@ class_name SummerDayEditable
|
||||||
|
|
||||||
|
|
||||||
export(Resource) var table
|
export(Resource) var table
|
||||||
|
var z_range := SummerDayZRange.new()
|
||||||
var preference_number = 0
|
var preference_number = 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,3 +45,7 @@ func draw_line(position_1: Vector3, position_2: Vector3,
|
||||||
SummerDay.interaction_hint.draw_line(
|
SummerDay.interaction_hint.draw_line(
|
||||||
position_1, position_2, color, color_2
|
position_1, position_2, color, color_2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func get_z_range() -> Array:
|
||||||
|
return []
|
||||||
|
|
|
@ -17,6 +17,10 @@ export(PoolVector2Array) var vertices = PoolVector2Array([
|
||||||
var picked_point = -1
|
var picked_point = -1
|
||||||
|
|
||||||
|
|
||||||
|
func _init():
|
||||||
|
z_range.index = 0
|
||||||
|
|
||||||
|
|
||||||
func _check_for_selection_candidate(event: InputEvent) -> bool: # Virtual.
|
func _check_for_selection_candidate(event: InputEvent) -> bool: # Virtual.
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
if event.button_index == BUTTON_LEFT and event.pressed:
|
if event.button_index == BUTTON_LEFT and event.pressed:
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
extends Reference
|
||||||
|
class_name SummerDayZRange
|
||||||
|
|
||||||
|
|
||||||
|
signal changed_from_external
|
||||||
|
|
||||||
|
|
||||||
|
var listed: bool = false
|
||||||
|
var index: int setget _set_index, _get_index
|
||||||
|
var _index: int
|
||||||
|
|
||||||
|
var real_z_rear_limit: float
|
||||||
|
var real_z_front_limit: float
|
||||||
|
|
||||||
|
var squished_z_rear_limit: float
|
||||||
|
var squished_z_front_limit: float
|
||||||
|
|
||||||
|
|
||||||
|
func _set_index(value: int):
|
||||||
|
if listed:
|
||||||
|
SummerDay.z_range_manager.move_z_range(self, value)
|
||||||
|
_index = value
|
||||||
|
else:
|
||||||
|
_index = value
|
||||||
|
SummerDay.z_range_manager.add_z_range(self)
|
||||||
|
listed = true
|
||||||
|
|
||||||
|
|
||||||
|
func _get_index():
|
||||||
|
return _index
|
|
@ -0,0 +1,56 @@
|
||||||
|
tool
|
||||||
|
extends Reference
|
||||||
|
class_name SummerDayZRangeManager
|
||||||
|
|
||||||
|
var z_ranges := []
|
||||||
|
|
||||||
|
|
||||||
|
# FIXME: Binary is probably only relevant when readding all the z_ranges
|
||||||
|
# from a loaded document. But not when adding entirely new ones, as the
|
||||||
|
# z_index should be aquivalent to the array index.
|
||||||
|
|
||||||
|
func load_z_index(z_range_instance):
|
||||||
|
var from = z_range_instance._index
|
||||||
|
var dest = z_ranges.bsearch_custom(from, self, "_compare_index")
|
||||||
|
for i in range(from, z_ranges.size()):
|
||||||
|
z_ranges[i]._index += 1
|
||||||
|
z_ranges.insert(dest, z_range_instance)
|
||||||
|
|
||||||
|
_print_indices()
|
||||||
|
|
||||||
|
|
||||||
|
func add_z_range(z_range_instance):
|
||||||
|
var from = z_range_instance._index
|
||||||
|
for i in range(from, z_ranges.size()):
|
||||||
|
z_ranges[i]._index += 1
|
||||||
|
z_ranges.insert(from, z_range_instance)
|
||||||
|
|
||||||
|
_print_indices()
|
||||||
|
|
||||||
|
|
||||||
|
func move_z_range(z_range_instance, to: int):
|
||||||
|
var from = z_range_instance._index
|
||||||
|
|
||||||
|
if from < to: # Index raises.
|
||||||
|
z_ranges.remove(from)
|
||||||
|
for i in range(from, to):
|
||||||
|
z_ranges[i]._index -= 1
|
||||||
|
z_ranges.insert(to, z_range_instance)
|
||||||
|
else: # Index lowers.
|
||||||
|
for i in range(to, from):
|
||||||
|
z_ranges[i]._index += 1
|
||||||
|
z_ranges.remove(from)
|
||||||
|
z_ranges.insert(to, z_range_instance)
|
||||||
|
|
||||||
|
_print_indices()
|
||||||
|
|
||||||
|
|
||||||
|
func _compare_index(a, b) -> bool:
|
||||||
|
return a._index < b
|
||||||
|
|
||||||
|
|
||||||
|
func _print_indices():
|
||||||
|
var debug_str = ""
|
||||||
|
for j in z_ranges:
|
||||||
|
debug_str += str(j._index) + ",\n"
|
||||||
|
SummerDay.debug_info.text = debug_str
|
|
@ -46,6 +46,8 @@ func _exit_tree():
|
||||||
remove_custom_type("SummerDayDocument")
|
remove_custom_type("SummerDayDocument")
|
||||||
remove_custom_type("SummerDayDisplay")
|
remove_custom_type("SummerDayDisplay")
|
||||||
remove_control_from_bottom_panel(timeline_instance)
|
remove_control_from_bottom_panel(timeline_instance)
|
||||||
|
# $"/root/SummerDay".canvas_state.free()
|
||||||
|
# $"/root/SummerDay".z_range_manager.free()
|
||||||
|
|
||||||
|
|
||||||
func enable_plugin():
|
func enable_plugin():
|
||||||
|
|
|
@ -13,6 +13,7 @@ var tool_pool := SummerDayCanvasToolPool.new()
|
||||||
func _ready():
|
func _ready():
|
||||||
SummerDay.canvas_state = canvas_state
|
SummerDay.canvas_state = canvas_state
|
||||||
SummerDay.interaction_hint = InteractionHint
|
SummerDay.interaction_hint = InteractionHint
|
||||||
|
SummerDay.debug_info = $Render/DebugInfo
|
||||||
canvas_state.connect("view_transform_changed",
|
canvas_state.connect("view_transform_changed",
|
||||||
self, "_on_view_transform_changed")
|
self, "_on_view_transform_changed")
|
||||||
canvas_state.connect("canvas_polygon_changed",
|
canvas_state.connect("canvas_polygon_changed",
|
||||||
|
@ -48,7 +49,6 @@ func _on_SummerDay_document_changed(new_doc):
|
||||||
canvas_state.update_fill_transform()
|
canvas_state.update_fill_transform()
|
||||||
new_doc.connect("resolution_changed",
|
new_doc.connect("resolution_changed",
|
||||||
self, "_on_scene_aspect_ratio_changed")
|
self, "_on_scene_aspect_ratio_changed")
|
||||||
$Render/Label.text = str(new_doc) + "\n" + str(new_doc.resolution)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_Canvas_resized():
|
func _on_Canvas_resized():
|
||||||
|
|
|
@ -51,7 +51,7 @@ void fragment() {
|
||||||
[sub_resource type="ShaderMaterial" id=7]
|
[sub_resource type="ShaderMaterial" id=7]
|
||||||
render_priority = 1
|
render_priority = 1
|
||||||
shader = SubResource( 6 )
|
shader = SubResource( 6 )
|
||||||
shader_param/canvas_transform = Basis( 0.715913, 0, -0.474076, 0, -1.32223, 0.449119, 0, 0, 1 )
|
shader_param/canvas_transform = Basis( 0.00240964, 0, -1, 0, -0.00326797, 1, 0, 0, 1 )
|
||||||
|
|
||||||
[node name="Canvas" type="PanelContainer"]
|
[node name="Canvas" type="PanelContainer"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -130,6 +130,6 @@ usage = 0
|
||||||
render_target_update_mode = 3
|
render_target_update_mode = 3
|
||||||
gui_disable_input = true
|
gui_disable_input = true
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Render"]
|
[node name="DebugInfo" type="Label" parent="Render"]
|
||||||
margin_right = 40.0
|
margin_right = 40.0
|
||||||
margin_bottom = 14.0
|
margin_bottom = 14.0
|
||||||
|
|
|
@ -4,4 +4,7 @@ extends Node
|
||||||
|
|
||||||
var document: SummerDayDocument
|
var document: SummerDayDocument
|
||||||
var canvas_state: SummerDayCanvasState
|
var canvas_state: SummerDayCanvasState
|
||||||
|
var z_range_manager := SummerDayZRangeManager.new()
|
||||||
|
|
||||||
var interaction_hint: SummerDayInteractionHint
|
var interaction_hint: SummerDayInteractionHint
|
||||||
|
var debug_info: Label
|
||||||
|
|
|
@ -20,6 +20,7 @@ nodes/use_legacy_names=false
|
||||||
materials/location=1
|
materials/location=1
|
||||||
materials/storage=1
|
materials/storage=1
|
||||||
materials/keep_on_reimport=true
|
materials/keep_on_reimport=true
|
||||||
|
meshes/octahedral_compression=true
|
||||||
meshes/compress=true
|
meshes/compress=true
|
||||||
meshes/ensure_tangents=true
|
meshes/ensure_tangents=true
|
||||||
meshes/storage=0
|
meshes/storage=0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_resource type="Resource" load_steps=20 format=2]
|
[gd_resource type="Resource" load_steps=13 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/summer_day/data/document/document.gd" type="Script" id=1]
|
[ext_resource path="res://addons/summer_day/data/document/document.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://addons/summer_day/data/document/cell.gd" type="Script" id=2]
|
[ext_resource path="res://addons/summer_day/data/document/cell.gd" type="Script" id=2]
|
||||||
|
@ -38,52 +38,7 @@ blueprint = ExtResource( 5 )
|
||||||
table = SubResource( 2 )
|
table = SubResource( 2 )
|
||||||
cells = [ SubResource( 4 ) ]
|
cells = [ SubResource( 4 ) ]
|
||||||
|
|
||||||
[sub_resource type="Image" id=6]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 232, 246, 173, 190, 47, 95, 49, 189, 0, 0, 0, 0, 246, 232, 104, 62, 58, 231, 73, 188, 112, 8, 93, 190, 0, 0, 0, 0, 123, 148, 148, 61, 8, 97, 252, 61, 251, 182, 221, 62, 0, 0, 0, 0, 0, 0, 128, 63, 8, 97, 252, 61, 251, 182, 221, 62, 0, 0, 0, 0, 0, 0, 128, 63, 149, 180, 151, 190, 60, 243, 217, 188, 0, 0, 0, 0, 206, 193, 28, 190, 104, 160, 139, 188, 17, 181, 131, 190, 0, 0, 0, 0, 95, 78, 11, 190, 159, 140, 27, 62, 126, 27, 96, 62, 0, 0, 0, 0, 0, 0, 128, 191, 159, 140, 27, 190, 126, 27, 96, 190, 0, 0, 0, 0, 0, 0, 128, 63 ),
|
|
||||||
"format": "RGBAFloat",
|
|
||||||
"height": 1,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 8
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Image" id=13]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 232, 246, 173, 190, 47, 95, 49, 189, 0, 0, 0, 0, 246, 232, 104, 62, 58, 231, 73, 188, 112, 8, 93, 190, 0, 0, 0, 0, 123, 148, 148, 61, 8, 97, 252, 61, 251, 182, 221, 62, 0, 0, 0, 0, 0, 0, 128, 63, 8, 97, 252, 61, 251, 182, 221, 62, 0, 0, 0, 0, 0, 0, 128, 63, 149, 180, 151, 190, 60, 243, 217, 188, 0, 0, 0, 0, 206, 193, 28, 190, 104, 160, 139, 188, 17, 181, 131, 190, 0, 0, 0, 0, 95, 78, 11, 190, 159, 140, 27, 62, 126, 27, 96, 62, 0, 0, 0, 0, 0, 0, 128, 191, 159, 140, 27, 190, 126, 27, 96, 190, 0, 0, 0, 0, 0, 0, 128, 63 ),
|
|
||||||
"format": "RGBAFloat",
|
|
||||||
"height": 1,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 8
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=8]
|
|
||||||
flags = 0
|
|
||||||
flags = 0
|
|
||||||
image = SubResource( 13 )
|
|
||||||
size = Vector2( 8, 1 )
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id=9]
|
|
||||||
script = ExtResource( 3 )
|
|
||||||
allocation_size = 2
|
|
||||||
texture = SubResource( 8 )
|
|
||||||
image = SubResource( 6 )
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id=10]
|
|
||||||
script = ExtResource( 6 )
|
|
||||||
table = SubResource( 9 )
|
|
||||||
vertices = PoolVector2Array( -0.756447, -0.652097, 0.124979, -0.403235, 0.123889, 0.100852, -0.396248, 0.0976196, -0.1, -0.1, 0.4, -0.1, 1.3759, 0.677717, -0.1, 0.4 )
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id=11]
|
|
||||||
script = ExtResource( 2 )
|
|
||||||
editable_list = [ SubResource( 10 ) ]
|
|
||||||
|
|
||||||
[sub_resource type="Resource" id=12]
|
|
||||||
script = ExtResource( 4 )
|
|
||||||
blueprint = ExtResource( 5 )
|
|
||||||
table = SubResource( 9 )
|
|
||||||
cells = [ SubResource( 11 ) ]
|
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
resolution = Vector2( 1920, 1080 )
|
resolution = Vector2( 1920, 1080 )
|
||||||
tracks = [ SubResource( 5 ), SubResource( 12 ) ]
|
tracks = [ SubResource( 5 ) ]
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
[gd_resource type="ShaderMaterial" load_steps=4 format=2]
|
[gd_resource type="ShaderMaterial" load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://Bullshit/THIS SHOULD FIX IThoefully.tres" type="Texture" id=1]
|
||||||
|
|
||||||
[sub_resource type="Shader" id=1]
|
[sub_resource type="Shader" id=1]
|
||||||
code = "shader_type spatial;
|
code = "shader_type spatial;
|
||||||
|
@ -53,22 +55,7 @@ void fragment() {
|
||||||
ALBEDO = texture(table, UV).rgb;
|
ALBEDO = texture(table, UV).rgb;
|
||||||
}"
|
}"
|
||||||
|
|
||||||
[sub_resource type="Image" id=9]
|
|
||||||
data = {
|
|
||||||
"data": PoolByteArray( 146, 121, 211, 61, 105, 86, 230, 188, 0, 0, 0, 0, 252, 152, 127, 63, 240, 63, 201, 188, 72, 62, 73, 62, 0, 0, 0, 0, 29, 23, 26, 63, 192, 134, 71, 189, 169, 77, 108, 187, 0, 0, 0, 0, 0, 0, 128, 63, 192, 134, 71, 189, 169, 77, 108, 187, 0, 0, 0, 0, 0, 0, 128, 63, 225, 221, 100, 62, 58, 251, 45, 189, 0, 0, 0, 0, 220, 162, 139, 62, 30, 240, 195, 188, 186, 74, 183, 62, 0, 0, 0, 0, 248, 30, 185, 62, 11, 245, 66, 60, 50, 221, 41, 189, 0, 0, 0, 0, 0, 0, 128, 191, 11, 245, 66, 188, 50, 221, 41, 61, 0, 0, 0, 0, 0, 0, 128, 63 ),
|
|
||||||
"format": "RGBAFloat",
|
|
||||||
"height": 1,
|
|
||||||
"mipmaps": false,
|
|
||||||
"width": 8
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ImageTexture" id=8]
|
|
||||||
flags = 0
|
|
||||||
flags = 0
|
|
||||||
image = SubResource( 9 )
|
|
||||||
size = Vector2( 8, 1 )
|
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
shader = SubResource( 1 )
|
shader = SubResource( 1 )
|
||||||
shader_param/canvas_transform = Basis( 0.715913, 0, -0.474076, 0, -1.32223, 0.449119, 0, 0, 1 )
|
shader_param/canvas_transform = Basis( 1.08434, 0, -0.963855, 0, -2, 1, 0, 0, 1 )
|
||||||
shader_param/table = SubResource( 8 )
|
shader_param/table = ExtResource( 1 )
|
||||||
|
|
|
@ -179,6 +179,16 @@ _global_script_classes=[ {
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
"path": "res://addons/summer_day/user_interface/canvas/rendering/viewport_handler.gd"
|
"path": "res://addons/summer_day/user_interface/canvas/rendering/viewport_handler.gd"
|
||||||
}, {
|
}, {
|
||||||
|
"base": "Reference",
|
||||||
|
"class": "SummerDayZRange",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/summer_day/data/blueprint/z_range.gd"
|
||||||
|
}, {
|
||||||
|
"base": "Reference",
|
||||||
|
"class": "SummerDayZRangeManager",
|
||||||
|
"language": "GDScript",
|
||||||
|
"path": "res://addons/summer_day/data/blueprint/z_range_manager.gd"
|
||||||
|
}, {
|
||||||
"base": "SummerDayTool",
|
"base": "SummerDayTool",
|
||||||
"class": "SummerDayZoomCanvasTool",
|
"class": "SummerDayZoomCanvasTool",
|
||||||
"language": "GDScript",
|
"language": "GDScript",
|
||||||
|
@ -224,6 +234,8 @@ _global_script_class_icons={
|
||||||
"SummerDayToolPool": "",
|
"SummerDayToolPool": "",
|
||||||
"SummerDayTrack": "",
|
"SummerDayTrack": "",
|
||||||
"SummerDayViewportHandler": "",
|
"SummerDayViewportHandler": "",
|
||||||
|
"SummerDayZRange": "",
|
||||||
|
"SummerDayZRangeManager": "",
|
||||||
"SummerDayZoomCanvasTool": "",
|
"SummerDayZoomCanvasTool": "",
|
||||||
"VeryWorse": ""
|
"VeryWorse": ""
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user