Blueprints are using meshes as models now, instead of packed scenes.

This commit is contained in:
mono 2022-01-01 13:55:01 +01:00
parent fd2204feb7
commit f6209c3aa9
9 changed files with 64 additions and 98 deletions

View File

@ -1,12 +1,8 @@
[gd_resource type="Resource" load_steps=4 format=2] [gd_resource type="Resource" load_steps=2 format=2]
[ext_resource path="res://addons/summer_day/data/scene/scene.gd" type="Script" id=1]
[ext_resource path="res://addons/summer_day/data/document/document.gd" type="Script" id=2] [ext_resource path="res://addons/summer_day/data/document/document.gd" type="Script" id=2]
[sub_resource type="Resource" id=1]
script = ExtResource( 1 )
aspect_ratio = Vector2( 12, 9 )
[resource] [resource]
script = ExtResource( 2 ) script = ExtResource( 2 )
scene = SubResource( 1 ) resolution = Vector2( 1920, 1080 )
tracks = [ ]

View File

@ -5,15 +5,11 @@ extends Resource
class_name SummerDayBlueprint class_name SummerDayBlueprint
export(PackedScene) var model = null export(Mesh) var model = null
var active = true # Not handled right now. var active = true # Not handled right now.
func _create_model() -> PackedScene: # Virtual. func _create_cell(table: SummerDayTable) -> SummerDayCell: # Virtual.
return null
func _create_cell(table: ImageTexture) -> SummerDayCell: # Virtual.
return null return null
@ -21,11 +17,6 @@ func _input(event): # Virtual.
pass pass
func get_model() -> PackedScene:
if model == null:
model = _create_model()
return model
func get_allocation_size() -> int: func get_allocation_size() -> int:
push_error("get_allocation_size wasn't overwritten")
return 0 return 0

View File

@ -54,7 +54,7 @@ func flush():
dirty_flag = false dirty_flag = false
# This needs to be called BEFORE anything, that makes changes to the image! # This needs to be called before anything, that makes changes to the image!
func _presage_changes(): func _presage_changes():
if !dirty_flag: if !dirty_flag:
image.lock() image.lock()

View File

@ -80,17 +80,19 @@ func _on_view_transform_changed(canvas_transform, spatial_transform):
var spatial_transform_listeners = get_tree().get_nodes_in_group( var spatial_transform_listeners = get_tree().get_nodes_in_group(
"SummerDaySpatialTransform" "SummerDaySpatialTransform"
) )
for i in spatial_transform_listeners: for l in spatial_transform_listeners:
var basis = Basis( var basis = Basis(
Vector3(spatial_transform.x.x, spatial_transform.x.y, 0.0), Vector3(spatial_transform.x.x, spatial_transform.x.y, 0.0),
Vector3(spatial_transform.y.x, spatial_transform.y.y, 0.0), Vector3(spatial_transform.y.x, spatial_transform.y.y, 0.0),
Vector3(spatial_transform.origin.x, spatial_transform.origin.y, 1.0) Vector3(spatial_transform.origin.x, spatial_transform.origin.y, 1.0)
) )
if i is MeshInstance: if l is MeshInstance:
var mat = i.material_override var mesh = l.mesh
mat.set_shader_param("canvas_transform", basis) for i in range(mesh.get_surface_count()):
var mat = mesh.surface_get_material(i)
mat.set_shader_param("canvas_transform", basis)
else: else:
i.get_material().set_shader_param("canvas_transform", basis) l.get_material().set_shader_param("canvas_transform", basis)
func _on_canvas_polygon_changed(new_polygon): func _on_canvas_polygon_changed(new_polygon):

View File

@ -3,8 +3,7 @@ extends Spatial
func _on_Document_add_track(track: SummerDayTrack): func _on_Document_add_track(track: SummerDayTrack):
var packed_scene = track.blueprint.get_model() var instance = MeshInstance.new()
print("I'm winning it") instance.add_to_group("SummerDaySpatialTransform")
var instance = packed_scene.instance() instance.mesh = track.blueprint.model
add_child(instance, true) add_child(instance, true)
print("pain")

View File

@ -30,8 +30,8 @@ func _init(initial_values: Array = [
static func from_Basis(from: Basis) -> SummerDayMatrix4: static func from_Basis(from: Basis) -> SummerDayMatrix4:
var _SummerDayMatrix4 = load("res://addons/summer_day/utilities/matrix_4.gd") var Self = load("res://addons/summer_day/utilities/matrix_4.gd")
return _SummerDayMatrix4.new([ return Self.new([
from.x.x, from.y.x, 0.0, from.z.x, from.x.x, from.y.x, 0.0, from.z.x,
from.x.y, from.y.y, 0.0, from.z.y, from.x.y, from.y.y, 0.0, from.z.y,
0.0, 0.0, 0.0, 0.0, # <-- Change to 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, # <-- Change to 0.0, 0.0, 1.0, 0.0,
@ -40,8 +40,8 @@ static func from_Basis(from: Basis) -> SummerDayMatrix4:
static func from_Transform(from: Transform) -> SummerDayMatrix4: static func from_Transform(from: Transform) -> SummerDayMatrix4:
var _SummerDayMatrix4 = load("res://addons/summer_day/utilities/matrix_4.gd") var Self = load("res://addons/summer_day/utilities/matrix_4.gd")
return _SummerDayMatrix4.new([ return Self.new([
from.basis.x.x, from.basis.x.y, from.basis.x.z, from.origin.x, from.basis.x.x, from.basis.x.y, from.basis.x.z, from.origin.x,
from.basis.y.x, from.basis.y.y, from.basis.y.z, from.origin.y, from.basis.y.x, from.basis.y.y, from.basis.y.z, from.origin.y,
from.basis.z.x, from.basis.z.y, from.basis.z.z, from.origin.z, from.basis.z.x, from.basis.z.y, from.basis.z.z, from.origin.z,
@ -52,7 +52,7 @@ static func from_Transform(from: Transform) -> SummerDayMatrix4:
static func mult( static func mult(
left: SummerDayMatrix4, right: SummerDayMatrix4 left: SummerDayMatrix4, right: SummerDayMatrix4
) -> SummerDayMatrix4: ) -> SummerDayMatrix4:
var _SummerDayMatrix4 = load("res://addons/summer_day/utilities/matrix_4.gd") var Self = load("res://addons/summer_day/utilities/matrix_4.gd")
var result = [] var result = []
for y in range(4): for y in range(4):
for x in range(4): for x in range(4):
@ -60,7 +60,7 @@ static func mult(
for i in range(4): for i in range(4):
sum += left.get_value(x, i) * right.get_value(i, y) sum += left.get_value(x, i) * right.get_value(i, y)
result.append(sum) result.append(sum)
return _SummerDayMatrix4.new(result) return Self.new(result)
# Get value per coordinates. # Get value per coordinates.

View File

@ -1,6 +1,7 @@
[gd_resource type="Resource" load_steps=9 format=2] [gd_resource type="Resource" load_steps=11 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/table.gd" type="Script" id=2]
[ext_resource path="res://addons/summer_day/data/document/cell.gd" type="Script" id=3] [ext_resource path="res://addons/summer_day/data/document/cell.gd" type="Script" id=3]
[ext_resource path="res://production/blueprints/mannequin/mannequin.tres" type="Resource" id=4] [ext_resource path="res://production/blueprints/mannequin/mannequin.tres" type="Resource" id=4]
[ext_resource path="res://addons/summer_day/data/document/track.gd" type="Script" id=5] [ext_resource path="res://addons/summer_day/data/document/track.gd" type="Script" id=5]
@ -13,9 +14,14 @@ script = ExtResource( 6 )
script = ExtResource( 3 ) script = ExtResource( 3 )
editable_list = [ SubResource( 1 ) ] editable_list = [ SubResource( 1 ) ]
[sub_resource type="Resource" id=4]
script = ExtResource( 2 )
allocation_size = 0
[sub_resource type="Resource" id=3] [sub_resource type="Resource" id=3]
script = ExtResource( 5 ) script = ExtResource( 5 )
blueprint = ExtResource( 4 ) blueprint = ExtResource( 4 )
table = SubResource( 4 )
cells = [ SubResource( 2 ) ] cells = [ SubResource( 2 ) ]
[resource] [resource]

Binary file not shown.

File diff suppressed because one or more lines are too long