diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/menu/communicate/item/item_message.gd | 11 | ||||
-rw-r--r-- | client/menu/communicate/item/item_render.gd | 7 | ||||
-rw-r--r-- | client/menu/communicate/popup_message/pinned_item_messages.gd | 2 | ||||
-rw-r--r-- | client/menu/grayscale_material.tres | 6 |
4 files changed, 23 insertions, 3 deletions
diff --git a/client/menu/communicate/item/item_message.gd b/client/menu/communicate/item/item_message.gd index b99e8552..bd517d1d 100644 --- a/client/menu/communicate/item/item_message.gd +++ b/client/menu/communicate/item/item_message.gd @@ -17,16 +17,25 @@ class_name ItemMessage extends Control +const GRAYSCALE_MAT := preload("res://menu/grayscale_material.tres") + +@export var enable_rotation := true +@export var enable_grayscale := false + var timeout_remaining := 0. var timeout_initial := 0. @onready var item_render: ItemRender = $VBoxContainer/SubViewportContainer/SubViewport/ItemRender @onready var progress: ProgressBar = $VBoxContainer/ProgressBar @onready var sub_viewport: SubViewport = $VBoxContainer/SubViewportContainer/SubViewport +@onready var sub_viewport_container: SubViewportContainer = $VBoxContainer/SubViewportContainer @onready var v_box_container: VBoxContainer = $VBoxContainer func _ready() -> void: Global.configure_viewport_aa(sub_viewport, Global.get_setting("graphics.aa")) + + if enable_grayscale: + sub_viewport_container.material = GRAYSCALE_MAT func set_subviewport_size(sub_viewport_size: Vector2): sub_viewport.size = sub_viewport_size @@ -43,7 +52,7 @@ func set_round_corner_radius_progress(radius: int): style_fill.corner_radius_bottom_right = radius func set_item(item_name: String, timeout_initial_: float, timeout_remaining_: float): - item_render.set_item(item_name) + item_render.set_item(item_name, enable_rotation) timeout_remaining = timeout_remaining_ timeout_initial = timeout_initial_ diff --git a/client/menu/communicate/item/item_render.gd b/client/menu/communicate/item/item_render.gd index cd7d726a..d0a9c49b 100644 --- a/client/menu/communicate/item/item_render.gd +++ b/client/menu/communicate/item/item_render.gd @@ -17,14 +17,16 @@ extends Node3D class_name ItemRender var item: Item +var rotate: bool @onready var base = $ItemBase -func set_item(item_name: String): +func set_item(item_name: String, enable_rotation := true): if item != null: remove_item() item = ItemFactory.produce(item_name, base) + rotate = enable_rotation base.add_child(item) func remove_item(): @@ -32,4 +34,5 @@ func remove_item(): item.queue_free() func _process(delta: float): - base.rotation.y += delta * TAU * .025 + if rotate: + base.rotation.y += delta * TAU * .025 diff --git a/client/menu/communicate/popup_message/pinned_item_messages.gd b/client/menu/communicate/popup_message/pinned_item_messages.gd index 3d7df81e..0d032a0d 100644 --- a/client/menu/communicate/popup_message/pinned_item_messages.gd +++ b/client/menu/communicate/popup_message/pinned_item_messages.gd @@ -26,6 +26,8 @@ var pinned_items := {} func pin_item(item_name: String, timeout_initial_: float, timeout_remaining_: float, player_id: float): var item_message: ItemMessage = ITEM_MESSAGE_SCENE.instantiate() item_message.remove_theme_stylebox_override("panel") + item_message.enable_rotation = false + item_message.enable_grayscale = true item_message.add_theme_stylebox_override("panel", PAPER_PANEL_STYLE) pinned_items_container.add_child(item_message) item_message.set_subviewport_size(Vector2(96, 84)) diff --git a/client/menu/grayscale_material.tres b/client/menu/grayscale_material.tres new file mode 100644 index 00000000..06d5e698 --- /dev/null +++ b/client/menu/grayscale_material.tres @@ -0,0 +1,6 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://bplhkekj6rebp"] + +[ext_resource type="Shader" path="res://menu/grayscale.gdshader" id="1_u0c2c"] + +[resource] +shader = ExtResource("1_u0c2c") |