Make the barrier stop pickables.
使屏障可阻止可拾捡物。
This commit is contained in:
parent
5b5a9ae198
commit
35dc2ee1b9
|
@ -92,6 +92,7 @@ collision_layer = 256
|
||||||
collision_mask = 160
|
collision_mask = 160
|
||||||
script = ExtResource("1_t1qdg")
|
script = ExtResource("1_t1qdg")
|
||||||
Path = "res://prefab/ui/SpellEditorUI.tscn"
|
Path = "res://prefab/ui/SpellEditorUI.tscn"
|
||||||
|
_furnitureName = "ui_spell_editor"
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
position = Vector2(-0.5, -0.5)
|
position = Vector2(-0.5, -0.5)
|
||||||
|
@ -108,3 +109,9 @@ scale = Vector2(0.7, 0.7)
|
||||||
sprite_frames = SubResource("SpriteFrames_mppe5")
|
sprite_frames = SubResource("SpriteFrames_mppe5")
|
||||||
autoplay = "default"
|
autoplay = "default"
|
||||||
frame_progress = 0.717769
|
frame_progress = 0.717769
|
||||||
|
|
||||||
|
[node name="TipLabel" type="Label" parent="."]
|
||||||
|
offset_left = -17.0
|
||||||
|
offset_top = 19.0
|
||||||
|
offset_right = 23.0
|
||||||
|
offset_bottom = 44.0
|
||||||
|
|
|
@ -103,9 +103,6 @@ position = Vector2(715, 200)
|
||||||
[node name="WoodenBox3" parent="." instance=ExtResource("7_jybe6")]
|
[node name="WoodenBox3" parent="." instance=ExtResource("7_jybe6")]
|
||||||
position = Vector2(715, 162)
|
position = Vector2(715, 162)
|
||||||
|
|
||||||
[node name="WoodenBox4" parent="." instance=ExtResource("7_jybe6")]
|
|
||||||
position = Vector2(714, 122)
|
|
||||||
|
|
||||||
[node name="AutoSpawn" type="Node2D" parent="."]
|
[node name="AutoSpawn" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="necromancy" type="Marker2D" parent="AutoSpawn"]
|
[node name="necromancy" type="Marker2D" parent="AutoSpawn"]
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using ColdMint.scripts.damage;
|
using ColdMint.scripts.damage;
|
||||||
|
using ColdMint.scripts.utils;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
namespace ColdMint.scripts.furniture;
|
namespace ColdMint.scripts.furniture;
|
||||||
|
@ -11,6 +12,41 @@ public partial class Furniture : RigidBody2D
|
||||||
{
|
{
|
||||||
[Export] private int _initialDurability;
|
[Export] private int _initialDurability;
|
||||||
[Export] private int _maxDurability;
|
[Export] private int _maxDurability;
|
||||||
|
[Export]
|
||||||
|
private string? _furnitureName;
|
||||||
|
|
||||||
|
private Label? _tipLabel;
|
||||||
|
|
||||||
|
public override void _MouseEnter()
|
||||||
|
{
|
||||||
|
if (_tipLabel == null || string.IsNullOrEmpty(_furnitureName))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var translation = TranslationServerUtils.Translate(_furnitureName);
|
||||||
|
if (string.IsNullOrEmpty(translation))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_tipLabel.Visible = true;
|
||||||
|
_tipLabel.Text = translation;
|
||||||
|
//Vertical Centering Tip
|
||||||
|
//垂直居中提示
|
||||||
|
var oldPosition = _tipLabel.Position;
|
||||||
|
oldPosition.X = -_tipLabel.Size.X / 2;
|
||||||
|
_tipLabel.Rotation = -Rotation;
|
||||||
|
_tipLabel.Position = oldPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _MouseExit()
|
||||||
|
{
|
||||||
|
if (_tipLabel == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_tipLabel.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <para></para>
|
/// <para></para>
|
||||||
|
@ -29,7 +65,8 @@ public partial class Furniture : RigidBody2D
|
||||||
{
|
{
|
||||||
_initialDurability = _maxDurability;
|
_initialDurability = _maxDurability;
|
||||||
}
|
}
|
||||||
|
_tipLabel = GetNodeOrNull<Label>("TipLabel");
|
||||||
|
InputPickable = true;
|
||||||
_durability = _initialDurability;
|
_durability = _initialDurability;
|
||||||
SetCollisionLayerValue(Config.LayerNumber.Furniture, true);
|
SetCollisionLayerValue(Config.LayerNumber.Furniture, true);
|
||||||
SetCollisionMaskValue(Config.LayerNumber.Wall, true);
|
SetCollisionMaskValue(Config.LayerNumber.Wall, true);
|
||||||
|
|
|
@ -38,7 +38,6 @@ public partial class GuiFurniture : Furniture
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
base._Ready();
|
base._Ready();
|
||||||
InputPickable = true;
|
|
||||||
_operateArea2D = GetNode<Area2D>("OperateArea2D");
|
_operateArea2D = GetNode<Area2D>("OperateArea2D");
|
||||||
_operateArea2D.BodyEntered += OnBodyEntered;
|
_operateArea2D.BodyEntered += OnBodyEntered;
|
||||||
_operateArea2D.BodyExited += OnBodyExited;
|
_operateArea2D.BodyExited += OnBodyExited;
|
||||||
|
@ -69,11 +68,13 @@ public partial class GuiFurniture : Furniture
|
||||||
|
|
||||||
public override void _MouseEnter()
|
public override void _MouseEnter()
|
||||||
{
|
{
|
||||||
|
base._MouseEnter();
|
||||||
_hasMouseOver = true;
|
_hasMouseOver = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _MouseExit()
|
public override void _MouseExit()
|
||||||
{
|
{
|
||||||
|
base._MouseExit();
|
||||||
_hasMouseOver = false;
|
_hasMouseOver = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -202,6 +202,7 @@ public partial class PickAbleTemplate : RigidBody2D, IItem
|
||||||
SetCollisionMaskValue(Config.LayerNumber.Wall, true);
|
SetCollisionMaskValue(Config.LayerNumber.Wall, true);
|
||||||
SetCollisionMaskValue(Config.LayerNumber.Platform, true);
|
SetCollisionMaskValue(Config.LayerNumber.Platform, true);
|
||||||
SetCollisionMaskValue(Config.LayerNumber.Floor, true);
|
SetCollisionMaskValue(Config.LayerNumber.Floor, true);
|
||||||
|
SetCollisionMaskValue(Config.LayerNumber.Barrier, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnBodyExited(Node node)
|
private void OnBodyExited(Node node)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user