added machine item slots so ican start building gameplay
This commit is contained in:
47
Objects/Scripts/IItemSlot.gd
Normal file
47
Objects/Scripts/IItemSlot.gd
Normal file
@@ -0,0 +1,47 @@
|
||||
extends StaticBody3D
|
||||
|
||||
@export var isFirstPlace = true
|
||||
|
||||
func _ready() -> void:
|
||||
initialize_material.call_deferred()
|
||||
|
||||
func initialize_material() -> void:
|
||||
$MeshInstance3D.material_override = $MeshInstance3D.material_override.duplicate()
|
||||
$MeshInstance3D.material_override.albedo_color = Color("00000041")
|
||||
|
||||
if isFirstPlace:
|
||||
placeItem("base:air")
|
||||
isFirstPlace = false
|
||||
|
||||
func startHighlight():
|
||||
$MeshInstance3D.material_override.albedo_color = Color("00FF0041")
|
||||
|
||||
func stopHighlight():
|
||||
$MeshInstance3D.material_override.albedo_color = Color("00000041")
|
||||
|
||||
func placeItem(ItemID: String):
|
||||
var segments = ItemID.split(":")
|
||||
|
||||
var itemResource: ItemData = load("res://GameShit/ItemHandlers/{namespace}/{id}.tres".format({"namespace": segments[0], "id": segments[1]}))
|
||||
if itemResource == null:
|
||||
itemResource = load("res://GameShit/ItemHandlers/base/air.tres")
|
||||
|
||||
if "texture" in itemResource:
|
||||
$"..".ItemTexture = itemResource.texture
|
||||
$"..".ItemID = itemResource.ID
|
||||
|
||||
isFirstPlace = false
|
||||
|
||||
func removeItem():
|
||||
$"..".ItemTexture = null
|
||||
$"..".ItemID = "base:air"
|
||||
|
||||
func _interact_press(isRight):
|
||||
if !isRight:
|
||||
if $"..".ItemID == "base:air":
|
||||
placeItem(MainGame.currentHeldItemID)
|
||||
InventoryBus.removeHeldItem.emit()
|
||||
elif isRight:
|
||||
if $"..".ItemID != "base:air":
|
||||
InventoryBus.givePlayerItem.emit($"..".ItemID)
|
||||
removeItem()
|
||||
Reference in New Issue
Block a user