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]
[sub_resource type="Resource" id=1]
script = ExtResource( 1 )
aspect_ratio = Vector2( 12, 9 )
[resource]
script = ExtResource( 2 )
scene = SubResource( 1 )
resolution = Vector2( 1920, 1080 )
tracks = [ ]

View File

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

View File

@ -54,7 +54,7 @@ func flush():
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():
if !dirty_flag:
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(
"SummerDaySpatialTransform"
)
for i in spatial_transform_listeners:
for l in spatial_transform_listeners:
var basis = Basis(
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.origin.x, spatial_transform.origin.y, 1.0)
)
if i is MeshInstance:
var mat = i.material_override
mat.set_shader_param("canvas_transform", basis)
if l is MeshInstance:
var mesh = l.mesh
for i in range(mesh.get_surface_count()):
var mat = mesh.surface_get_material(i)
mat.set_shader_param("canvas_transform", basis)
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):

View File

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

View File

@ -30,8 +30,8 @@ func _init(initial_values: Array = [
static func from_Basis(from: Basis) -> SummerDayMatrix4:
var _SummerDayMatrix4 = load("res://addons/summer_day/utilities/matrix_4.gd")
return _SummerDayMatrix4.new([
var Self = load("res://addons/summer_day/utilities/matrix_4.gd")
return Self.new([
from.x.x, from.y.x, 0.0, from.z.x,
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,
@ -40,8 +40,8 @@ static func from_Basis(from: Basis) -> SummerDayMatrix4:
static func from_Transform(from: Transform) -> SummerDayMatrix4:
var _SummerDayMatrix4 = load("res://addons/summer_day/utilities/matrix_4.gd")
return _SummerDayMatrix4.new([
var Self = load("res://addons/summer_day/utilities/matrix_4.gd")
return Self.new([
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.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(
left: SummerDayMatrix4, right: 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 = []
for y in range(4):
for x in range(4):
@ -60,7 +60,7 @@ static func mult(
for i in range(4):
sum += left.get_value(x, i) * right.get_value(i, y)
result.append(sum)
return _SummerDayMatrix4.new(result)
return Self.new(result)
# 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/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://production/blueprints/mannequin/mannequin.tres" type="Resource" id=4]
[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 )
editable_list = [ SubResource( 1 ) ]
[sub_resource type="Resource" id=4]
script = ExtResource( 2 )
allocation_size = 0
[sub_resource type="Resource" id=3]
script = ExtResource( 5 )
blueprint = ExtResource( 4 )
table = SubResource( 4 )
cells = [ SubResource( 2 ) ]
[resource]

Binary file not shown.

File diff suppressed because one or more lines are too long