Add orbit camera and hovering stuff
This commit is contained in:
		
							parent
							
								
									f6b7f9e319
								
							
						
					
					
						commit
						bf10022d3b
					
				| @ -126,6 +126,11 @@ interact={ | |||||||
| "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) | "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) | ||||||
| ] | ] | ||||||
| } | } | ||||||
|  | drag_orbit={ | ||||||
|  | "deadzone": 0.5, | ||||||
|  | "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":4,"position":Vector2(272, 24),"global_position":Vector2(286, 94),"factor":1.0,"button_index":3,"canceled":false,"pressed":true,"double_click":false,"script":null) | ||||||
|  | ] | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| [internationalization] | [internationalization] | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,20 +0,0 @@ | |||||||
| [gd_scene load_steps=4 format=3 uid="uid://bmewhw3f0n2s8"] |  | ||||||
| 
 |  | ||||||
| [ext_resource type="Script" path="res://scripts/BuildingBlock.cs" id="1_htnym"] |  | ||||||
| [ext_resource type="Shader" path="res://textures/building_block.gdshader" id="2_dc3y0"] |  | ||||||
| 
 |  | ||||||
| [sub_resource type="ShaderMaterial" id="ShaderMaterial_q3u5a"] |  | ||||||
| render_priority = 0 |  | ||||||
| shader = ExtResource("2_dc3y0") |  | ||||||
| shader_parameter/albedo = Color(0.417896, 0.417896, 0.417896, 1) |  | ||||||
| shader_parameter/roughness = 0.533 |  | ||||||
| shader_parameter/specular = 0.45 |  | ||||||
| shader_parameter/metallic = null |  | ||||||
| shader_parameter/uv1_scale = Vector3(1, 1, 1) |  | ||||||
| shader_parameter/uv1_offset = null |  | ||||||
| 
 |  | ||||||
| [node name="BuildingBlockScene" type="RigidBody3D"] |  | ||||||
| script = ExtResource("1_htnym") |  | ||||||
| 
 |  | ||||||
| [node name="MeshInstance" type="MeshInstance3D" parent="."] |  | ||||||
| material_override = SubResource("ShaderMaterial_q3u5a") |  | ||||||
| @ -1,8 +1,10 @@ | |||||||
| [gd_scene load_steps=8 format=3 uid="uid://d02cqylu3xwos"] | [gd_scene load_steps=10 format=3 uid="uid://d02cqylu3xwos"] | ||||||
| 
 | 
 | ||||||
| [ext_resource type="PackedScene" uid="uid://diwlyi146eroa" path="res://models/table.fbx" id="1_1soa3"] | [ext_resource type="PackedScene" uid="uid://diwlyi146eroa" path="res://models/table.fbx" id="1_1soa3"] | ||||||
| [ext_resource type="Script" path="res://scripts/Table.cs" id="1_cb7s1"] | [ext_resource type="Script" path="res://scripts/Table.cs" id="1_cb7s1"] | ||||||
| [ext_resource type="Material" uid="uid://bq5oqyuwekryv" path="res://textures/building_block.tres" id="2_1s35y"] | [ext_resource type="Material" uid="uid://bq5oqyuwekryv" path="res://textures/building_block.tres" id="2_1s35y"] | ||||||
|  | [ext_resource type="Material" uid="uid://pu02smf107o8" path="res://textures/building_block_hover.tres" id="3_m64id"] | ||||||
|  | [ext_resource type="Script" path="res://scripts/Orbit.cs" id="4_nyqjn"] | ||||||
| 
 | 
 | ||||||
| [sub_resource type="BoxShape3D" id="BoxShape3D_iiew7"] | [sub_resource type="BoxShape3D" id="BoxShape3D_iiew7"] | ||||||
| size = Vector3(1.26587, 1.10037, 2.3989) | size = Vector3(1.26587, 1.10037, 2.3989) | ||||||
| @ -16,13 +18,17 @@ size = Vector3(2.4, 5, 0.01) | |||||||
| [sub_resource type="BoxShape3D" id="BoxShape3D_3kmm7"] | [sub_resource type="BoxShape3D" id="BoxShape3D_3kmm7"] | ||||||
| size = Vector3(1.3, 0.2, 2.4) | size = Vector3(1.3, 0.2, 2.4) | ||||||
| 
 | 
 | ||||||
| [node name="table" type="StaticBody3D" node_paths=PackedStringArray("SpawnPoint")] | [node name="table" type="RigidBody3D" node_paths=PackedStringArray("SpawnPoint", "Orbit")] | ||||||
| collision_layer = 7 | collision_layer = 7 | ||||||
| collision_mask = 7 | collision_mask = 7 | ||||||
|  | lock_rotation = true | ||||||
|  | freeze = true | ||||||
| script = ExtResource("1_cb7s1") | script = ExtResource("1_cb7s1") | ||||||
| BlockMaterial = ExtResource("2_1s35y") | BlockMaterial = ExtResource("2_1s35y") | ||||||
|  | BlockHoverMaterial = ExtResource("3_m64id") | ||||||
| SpawnPoint = NodePath("SpawnPoint") | SpawnPoint = NodePath("SpawnPoint") | ||||||
| BlockMask = 2 | BlockMask = 10 | ||||||
|  | Orbit = NodePath("Orbit") | ||||||
| InteractName = "build" | InteractName = "build" | ||||||
| 
 | 
 | ||||||
| [node name="table" parent="." instance=ExtResource("1_1soa3")] | [node name="table" parent="." instance=ExtResource("1_1soa3")] | ||||||
| @ -57,3 +63,13 @@ shape = SubResource("BoxShape3D_5k7xn") | |||||||
| [node name="Roof" type="CollisionShape3D" parent="TableWalls"] | [node name="Roof" type="CollisionShape3D" parent="TableWalls"] | ||||||
| transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 6, 0) | transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 6, 0) | ||||||
| shape = SubResource("BoxShape3D_3kmm7") | shape = SubResource("BoxShape3D_3kmm7") | ||||||
|  | 
 | ||||||
|  | [node name="Orbit" type="Node3D" parent="." node_paths=PackedStringArray("Camera")] | ||||||
|  | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.12311, 0) | ||||||
|  | script = ExtResource("4_nyqjn") | ||||||
|  | Camera = NodePath("OrbitCamera") | ||||||
|  | 
 | ||||||
|  | [node name="OrbitCamera" type="Camera3D" parent="Orbit"] | ||||||
|  | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1) | ||||||
|  | 
 | ||||||
|  | [connection signal="Interacted" from="." to="." method="Interact"] | ||||||
|  | |||||||
| @ -1,13 +1,18 @@ | |||||||
| using Godot; | using Godot; | ||||||
| using Godot.Collections; | using Godot.Collections; | ||||||
| using System; |  | ||||||
| 
 | 
 | ||||||
| namespace Gmtk24 { | namespace Gmtk24 { | ||||||
|     public partial class BuildingBlock : RigidBody3D { |     public partial class BuildingBlock : Interactible { | ||||||
|         public BaseBlock Base; |         public BaseBlock Base; | ||||||
|         public ShaderMaterial Material; |         public ShaderMaterial Material; | ||||||
|  |         public ShaderMaterial HoverMaterial; | ||||||
|         public float RelativeScale; |         public float RelativeScale; | ||||||
| 
 | 
 | ||||||
|  |         private MeshInstance3D MeshInstance; | ||||||
|  | 
 | ||||||
|  |         private ShaderMaterial[] NormalMaterialArr; | ||||||
|  |         private ShaderMaterial[] HoverMaterialArr; | ||||||
|  | 
 | ||||||
|         public BuildingBlock() { |         public BuildingBlock() { | ||||||
|             Name = "BuildingBlock"; |             Name = "BuildingBlock"; | ||||||
|         } |         } | ||||||
| @ -15,22 +20,37 @@ namespace Gmtk24 { | |||||||
|         public override void _Ready() { |         public override void _Ready() { | ||||||
|             base._Ready(); |             base._Ready(); | ||||||
| 
 | 
 | ||||||
|             var meshInstance = new MeshInstance3D() { |             HoverMaterial ??= Material; | ||||||
|  | 
 | ||||||
|  |             Hovered += OnHover; | ||||||
|  | 
 | ||||||
|  |             MeshInstance = new MeshInstance3D() { | ||||||
|                 Mesh = Base.Mesh, |                 Mesh = Base.Mesh, | ||||||
|                 Scale = Vector3.One * RelativeScale, |                 Scale = Vector3.One * RelativeScale, | ||||||
|             }; |             }; | ||||||
|             AddChild(meshInstance); |             AddChild(MeshInstance); | ||||||
| 
 | 
 | ||||||
|             for (int i = 0; i < meshInstance.GetSurfaceOverrideMaterialCount(); i++) { |             int count = MeshInstance.GetSurfaceOverrideMaterialCount(); | ||||||
|                 var replacedMaterial = meshInstance.Mesh.SurfaceGetMaterial(i); | 
 | ||||||
|  |             NormalMaterialArr = new ShaderMaterial[count]; | ||||||
|  |             HoverMaterialArr = new ShaderMaterial[count]; | ||||||
|  | 
 | ||||||
|  |             for (int i = 0; i < MeshInstance.GetSurfaceOverrideMaterialCount(); i++) { | ||||||
|  |                 var replacedMaterial = MeshInstance.Mesh.SurfaceGetMaterial(i); | ||||||
|                 var transparency = replacedMaterial.Get("transparency"); |                 var transparency = replacedMaterial.Get("transparency"); | ||||||
|                 if (((int)transparency) != 0) { |                 if (((int)transparency) != 0) { | ||||||
|                     ShaderMaterial newMat = (ShaderMaterial)Material.Duplicate(); |                     ShaderMaterial newMat = (ShaderMaterial)Material.Duplicate(); | ||||||
|                     newMat.SetShaderParameter("texture_albedo_for_alpha", replacedMaterial.Get("albedo_texture")); |                     newMat.SetShaderParameter("texture_albedo_for_alpha", replacedMaterial.Get("albedo_texture")); | ||||||
|                     meshInstance.SetSurfaceOverrideMaterial(i, newMat); | 
 | ||||||
|  |                     ShaderMaterial newHoverMat = (ShaderMaterial)HoverMaterial.Duplicate(); | ||||||
|  |                     newHoverMat.SetShaderParameter("texture_albedo_for_alpha", replacedMaterial.Get("albedo_texture")); | ||||||
|  | 
 | ||||||
|  |                     NormalMaterialArr[i] = newMat; | ||||||
|  |                     HoverMaterialArr[i] = newHoverMat; | ||||||
|                 } else { |                 } else { | ||||||
|                     meshInstance.SetSurfaceOverrideMaterial(i, Material); |                     NormalMaterialArr[i] = Material; | ||||||
|                 } |                 } | ||||||
|  |                 MeshInstance.SetSurfaceOverrideMaterial(i, NormalMaterialArr[i]); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             foreach (var shape in Base.Colliders) { |             foreach (var shape in Base.Colliders) { | ||||||
| @ -47,6 +67,15 @@ namespace Gmtk24 { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         public void OnHover(bool hovered) { | ||||||
|  |             for (int i = 0; i < MeshInstance.GetSurfaceOverrideMaterialCount(); i++) { | ||||||
|  |                 if (hovered) | ||||||
|  |                     MeshInstance.SetSurfaceOverrideMaterial(i, HoverMaterialArr[i]); | ||||||
|  |                 else | ||||||
|  |                     MeshInstance.SetSurfaceOverrideMaterial(i, NormalMaterialArr[i]); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         public struct BaseBlock { |         public struct BaseBlock { | ||||||
|             public Mesh Mesh; |             public Mesh Mesh; | ||||||
|             public Array<CollisionShape3D> Colliders; |             public Array<CollisionShape3D> Colliders; | ||||||
|  | |||||||
| @ -14,19 +14,20 @@ namespace Gmtk24 { | |||||||
|             if (Player == null) |             if (Player == null) | ||||||
|                 return; |                 return; | ||||||
| 
 | 
 | ||||||
|             GodotObject collider; |             GodotObject collider = null; | ||||||
|             if (Input.MouseMode == Input.MouseModeEnum.Captured) { |             if (Input.MouseMode == Input.MouseModeEnum.Captured) { | ||||||
|  |                 if (Player.Eye.Current) | ||||||
|                     collider = Player.LookingAt.GetCollider(); |                     collider = Player.LookingAt.GetCollider(); | ||||||
|             } else { |             } else { | ||||||
|                 var viewport = GetViewport(); |                 var viewport = GetViewport(); | ||||||
|                 var camera = GetViewport().GetCamera3D(); |                 var camera = GetViewport().GetCamera3D(); | ||||||
|                 var origin = camera.ProjectRayOrigin(viewport.GetMousePosition()); |                 var origin = camera.ProjectRayOrigin(viewport.GetMousePosition()); | ||||||
|                 var normal = camera.ProjectRayNormal(viewport.GetMousePosition()); |                 var normal = camera.ProjectRayNormal(viewport.GetMousePosition()) * 10000; | ||||||
|                 var ray = new PhysicsRayQueryParameters3D { |                 var ray = new PhysicsRayQueryParameters3D { | ||||||
|                     From = origin, |                     From = origin, | ||||||
|                     To = normal, |                     To = normal, | ||||||
|                     CollideWithBodies = true, |                     CollideWithBodies = true, | ||||||
|                     CollisionMask = 0b100, |                     CollisionMask = 0b1000, | ||||||
|                     HitBackFaces = false, |                     HitBackFaces = false, | ||||||
|                     HitFromInside = false, |                     HitFromInside = false, | ||||||
|                 }; |                 }; | ||||||
| @ -34,13 +35,16 @@ namespace Gmtk24 { | |||||||
| 
 | 
 | ||||||
|                 if (results.ContainsKey("collider")) { |                 if (results.ContainsKey("collider")) { | ||||||
|                     collider = (GodotObject)results["collider"]; |                     collider = (GodotObject)results["collider"]; | ||||||
|                 } else { |  | ||||||
|                     collider = null; |  | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|             if (collider is Interactible interactible) { |             if (collider is Interactible interactible) { | ||||||
|  |                 if (interactible != Hovered) { | ||||||
|  |                     Hovered?.SetHovered(false); | ||||||
|  |                     interactible.SetHovered(true); | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|                 Hovered = interactible; |                 Hovered = interactible; | ||||||
| 
 | 
 | ||||||
|                 StringBuilder Builder = new StringBuilder(); |                 StringBuilder Builder = new StringBuilder(); | ||||||
| @ -50,6 +54,7 @@ namespace Gmtk24 { | |||||||
| 
 | 
 | ||||||
|                 HoverText.Text = Builder.ToString(); |                 HoverText.Text = Builder.ToString(); | ||||||
|             } else { |             } else { | ||||||
|  |                 Hovered?.SetHovered(false); | ||||||
|                 Hovered = null; |                 Hovered = null; | ||||||
|                 HoverText.Text = ""; |                 HoverText.Text = ""; | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -2,15 +2,21 @@ | |||||||
| using Godot; | using Godot; | ||||||
| 
 | 
 | ||||||
| namespace Gmtk24 { | namespace Gmtk24 { | ||||||
|     public partial class Interactible : StaticBody3D { |     public partial class Interactible : RigidBody3D { | ||||||
|         [Signal] |         [Signal] | ||||||
|         public delegate void OnInteractedEventHandler(InputEvent e); |         public delegate void InteractedEventHandler(InputEvent e); | ||||||
|  |         [Signal] | ||||||
|  |         public delegate void HoveredEventHandler(bool hovered); | ||||||
| 
 | 
 | ||||||
|         [Export] |         [Export] | ||||||
|         public string InteractName; |         public string InteractName; | ||||||
| 
 | 
 | ||||||
|         public void HandleInput(InputEvent e) { |         public void HandleInput(InputEvent e) { | ||||||
|             EmitSignal(SignalName.OnInteracted, e); |             EmitSignal(SignalName.Interacted, e); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public void SetHovered(bool hovered) { | ||||||
|  |             EmitSignal(SignalName.Hovered, hovered); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
							
								
								
									
										57
									
								
								scripts/Orbit.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								scripts/Orbit.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | using Godot; | ||||||
|  | using System; | ||||||
|  | 
 | ||||||
|  | namespace Gmtk24 { | ||||||
|  |     public partial class Orbit : Node3D { | ||||||
|  |         [Export(PropertyHint.Range, "0,10,0.1")] | ||||||
|  |         public float MaxCameraDistance = 1f; | ||||||
|  |         [Export(PropertyHint.Range, "0,10,0.1")] | ||||||
|  |         public float MinCameraDistance = 0.1f; | ||||||
|  | 
 | ||||||
|  |         [Export] | ||||||
|  |         public Camera3D Camera; | ||||||
|  | 
 | ||||||
|  |         [Export] | ||||||
|  |         public bool IsEnabled { private set; get; } = false; | ||||||
|  | 
 | ||||||
|  |         private float CurrentYaw = 0; | ||||||
|  |         private float CurrentPitch = 0; | ||||||
|  | 
 | ||||||
|  |         // Called when the node enters the scene tree for the first time. | ||||||
|  |         public override void _Ready() { | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         // Called every frame. 'delta' is the elapsed time since the previous frame. | ||||||
|  |         public override void _Process(double delta) { | ||||||
|  |             Quaternion = new Quaternion(Vector3.Up, CurrentYaw) * new Quaternion(Vector3.Right, CurrentPitch); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public void SetEnabled(bool enabled) { | ||||||
|  |             IsEnabled = enabled; | ||||||
|  |             Camera.Current = enabled; | ||||||
|  |             if (IsEnabled) | ||||||
|  |                 Input.MouseMode = Input.MouseModeEnum.Visible; | ||||||
|  |             else | ||||||
|  |                 Input.MouseMode = Input.MouseModeEnum.Captured; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         public override void _UnhandledInput(InputEvent @event) { | ||||||
|  |             if (!IsEnabled) | ||||||
|  |                 return; | ||||||
|  | 
 | ||||||
|  |             if (@event.IsActionPressed("drag_orbit")) | ||||||
|  |                 Input.MouseMode = Input.MouseModeEnum.Captured; | ||||||
|  |             if (@event.IsActionReleased("drag_orbit")) | ||||||
|  |                 Input.MouseMode = Input.MouseModeEnum.Visible; | ||||||
|  | 
 | ||||||
|  |             if (Input.IsActionPressed("drag_orbit") && @event is InputEventMouseMotion mouseMotion) { | ||||||
|  |                 var cameraSensitivity = UserSettings.Singleton.GetCameraSpeedMultipliers(); | ||||||
|  |                 var mouseMultiplier = 0.0003f; | ||||||
|  |                 CurrentYaw -= mouseMotion.ScreenRelative.X * mouseMultiplier * cameraSensitivity.X; | ||||||
|  |                 CurrentPitch -= mouseMotion.ScreenRelative.Y * mouseMultiplier * cameraSensitivity.Y; | ||||||
|  | 
 | ||||||
|  |                 CurrentPitch = Mathf.Clamp(CurrentPitch, -Mathf.Pi * 0.49f, 0); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -15,7 +15,7 @@ namespace Gmtk24 { | |||||||
|         public float Gravity = 20; |         public float Gravity = 20; | ||||||
|         [ExportCategory("Vision")] |         [ExportCategory("Vision")] | ||||||
|         [Export] |         [Export] | ||||||
|         public Node3D Eye; |         public Camera3D Eye; | ||||||
|         [Export] |         [Export] | ||||||
|         public RayCast3D LookingAt; |         public RayCast3D LookingAt; | ||||||
|         [ExportCategory("Noises")] |         [ExportCategory("Noises")] | ||||||
|  | |||||||
| @ -10,10 +10,15 @@ namespace Gmtk24 { | |||||||
|         [Export] |         [Export] | ||||||
|         public ShaderMaterial BlockMaterial; |         public ShaderMaterial BlockMaterial; | ||||||
|         [Export] |         [Export] | ||||||
|  |         public ShaderMaterial BlockHoverMaterial; | ||||||
|  |         [Export] | ||||||
|         public Node3D SpawnPoint; |         public Node3D SpawnPoint; | ||||||
|         [Export(PropertyHint.LayersAvoidance)] |         [Export(PropertyHint.LayersAvoidance)] | ||||||
|         public uint BlockMask; |         public uint BlockMask; | ||||||
| 
 | 
 | ||||||
|  |         [Export] | ||||||
|  |         public Orbit Orbit; | ||||||
|  | 
 | ||||||
|         // Called when the node enters the scene tree for the first time. |         // Called when the node enters the scene tree for the first time. | ||||||
|         public override void _Ready() { |         public override void _Ready() { | ||||||
|             Vector3 SpawnPos = Vector3.Zero; |             Vector3 SpawnPos = Vector3.Zero; | ||||||
| @ -22,10 +27,6 @@ namespace Gmtk24 { | |||||||
|                 SpawnPos = SpawnPoint.GlobalPosition - GlobalPosition; |                 SpawnPos = SpawnPoint.GlobalPosition - GlobalPosition; | ||||||
| 
 | 
 | ||||||
|             SpawnBlocks(SpawnPos); |             SpawnBlocks(SpawnPos); | ||||||
| 
 |  | ||||||
|             OnInteracted += (e) => { |  | ||||||
|                 GD.Print("hello!"); |  | ||||||
|             }; |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public void SpawnBlocks(Vector3 position) { |         public void SpawnBlocks(Vector3 position) { | ||||||
| @ -39,6 +40,7 @@ namespace Gmtk24 { | |||||||
|                 var block = new BuildingBlock() { |                 var block = new BuildingBlock() { | ||||||
|                     Base = baseBlock, |                     Base = baseBlock, | ||||||
|                     Material = BlockMaterial, |                     Material = BlockMaterial, | ||||||
|  |                     HoverMaterial = BlockHoverMaterial, | ||||||
|                     Position = position + Vector3.One * (rng.Randf() * 0.5f - 0.25f) + Vector3.Up * rng.Randf(), |                     Position = position + Vector3.One * (rng.Randf() * 0.5f - 0.25f) + Vector3.Up * rng.Randf(), | ||||||
|                     CollisionMask = BlockMask, |                     CollisionMask = BlockMask, | ||||||
|                     CollisionLayer = BlockMask, |                     CollisionLayer = BlockMask, | ||||||
| @ -49,5 +51,9 @@ namespace Gmtk24 { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         public void Interact(InputEvent _) { | ||||||
|  |             Orbit.SetEnabled(true); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
							
								
								
									
										13
									
								
								textures/building_block_hover.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								textures/building_block_hover.tres
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | [gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://pu02smf107o8"] | ||||||
|  | 
 | ||||||
|  | [ext_resource type="Shader" path="res://textures/building_block.gdshader" id="1_fkxdu"] | ||||||
|  | 
 | ||||||
|  | [resource] | ||||||
|  | render_priority = 0 | ||||||
|  | shader = ExtResource("1_fkxdu") | ||||||
|  | shader_parameter/albedo = Color(0.356373, 0.507339, 1, 1) | ||||||
|  | shader_parameter/roughness = 0.533 | ||||||
|  | shader_parameter/specular = 0.45 | ||||||
|  | shader_parameter/metallic = null | ||||||
|  | shader_parameter/uv1_scale = Vector3(1, 1, 1) | ||||||
|  | shader_parameter/uv1_offset = null | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user