2024-01-20 12:17:43 +00:00
|
|
|
class_name PermissionManager extends Node
|
|
|
|
|
|
|
|
@export var roundManager : RoundManager
|
|
|
|
@export var itemManager : ItemManager
|
|
|
|
@export var indicatorArray : Array[PickupIndicator]
|
|
|
|
@export var interactionBranchArray : Array[InteractionBranch]
|
|
|
|
@export var description : DescriptionManager
|
|
|
|
@export var userItemsParent : Node3D
|
|
|
|
@export var stackDisabledItemArray : Array[String]
|
|
|
|
@export var stackDisabledItemArray_bools : Array[bool]
|
|
|
|
|
|
|
|
func _ready():
|
|
|
|
#SetItemInteraction(true)
|
|
|
|
pass
|
|
|
|
|
|
|
|
func SetIndicators(state : bool):
|
|
|
|
if (state):
|
|
|
|
for i in range(indicatorArray.size()):
|
|
|
|
indicatorArray[i].interactionAllowed = true
|
|
|
|
if (!state):
|
|
|
|
for i in range(indicatorArray.size()):
|
|
|
|
indicatorArray[i].interactionAllowed = false
|
|
|
|
indicatorArray[i].moving = false
|
|
|
|
|
2024-04-05 10:52:30 +01:00
|
|
|
func DisableShotgun():
|
|
|
|
for i in range (interactionBranchArray.size()):
|
|
|
|
if (interactionBranchArray[i].interactionAlias == "shotgun"):
|
|
|
|
interactionBranchArray[i].interactionAllowed = false
|
|
|
|
break
|
|
|
|
for i in range (indicatorArray.size()):
|
|
|
|
if (indicatorArray[i].itemName == "SHOTGUN"):
|
|
|
|
indicatorArray[i].interactionAllowed = false
|
|
|
|
break
|
|
|
|
|
|
|
|
|
2024-01-20 12:17:43 +00:00
|
|
|
func SetInteractionPermissions(state : bool):
|
|
|
|
if (state):
|
|
|
|
for i in range(interactionBranchArray.size()):
|
|
|
|
interactionBranchArray[i].interactionAllowed = true
|
|
|
|
if (!state):
|
|
|
|
for i in range(interactionBranchArray.size()):
|
|
|
|
interactionBranchArray[i].interactionAllowed = false
|
|
|
|
if (roundManager.roundArray[roundManager.currentRound].usingItems && itemManager.items_dynamicIndicatorArray.size() != 0):
|
|
|
|
if (state):
|
|
|
|
for i in range(itemManager.items_dynamicInteractionArray.size()):
|
|
|
|
itemManager.items_dynamicInteractionArray[i].interactionAllowed = true
|
|
|
|
itemManager.items_dynamicIndicatorArray[i].interactionAllowed = true
|
|
|
|
else:
|
|
|
|
for i in range(itemManager.items_dynamicInteractionArray.size()):
|
|
|
|
itemManager.items_dynamicInteractionArray[i].interactionAllowed = false
|
|
|
|
itemManager.items_dynamicIndicatorArray[i].interactionAllowed = false
|
|
|
|
|
|
|
|
func SetItemInteraction(state : bool):
|
|
|
|
var children = userItemsParent.get_children()
|
|
|
|
for i in range(children.size()):
|
|
|
|
if (children[i].get_child(0) != null):
|
|
|
|
if (children[i].get_child(0) is PickupIndicator):
|
|
|
|
var tempindicator : PickupIndicator = children[i].get_child(0)
|
|
|
|
tempindicator.interactionAllowed = state
|
|
|
|
if (children[i].get_child(1) is InteractionBranch):
|
|
|
|
var tempBranch : InteractionBranch = children[i].get_child(1)
|
|
|
|
tempBranch.interactionAllowed = state
|
|
|
|
|
2024-04-05 10:52:30 +01:00
|
|
|
@export var inter : ItemInteraction
|
2024-01-20 12:17:43 +00:00
|
|
|
func SetStackInvalidIndicators():
|
2024-04-05 10:52:30 +01:00
|
|
|
if (inter.stealing): stackDisabledItemArray_bools[5] = true
|
|
|
|
else: stackDisabledItemArray_bools[5] = false
|
2024-01-20 12:17:43 +00:00
|
|
|
if (roundManager.dealerCuffed): stackDisabledItemArray_bools[4] = true
|
|
|
|
else: stackDisabledItemArray_bools[4] = false
|
|
|
|
if (roundManager.barrelSawedOff): stackDisabledItemArray_bools[0] = true
|
|
|
|
else: stackDisabledItemArray_bools[0] = false
|
|
|
|
if (roundManager.roundArray[roundManager.currentRound].usingItems && itemManager.items_dynamicIndicatorArray.size() != 0):
|
|
|
|
for i in range(stackDisabledItemArray.size()):
|
|
|
|
for c in range(itemManager.items_dynamicInteractionArray.size()):
|
|
|
|
if (itemManager.items_dynamicInteractionArray[c].itemName == stackDisabledItemArray[i] && stackDisabledItemArray_bools[i]):
|
|
|
|
itemManager.items_dynamicInteractionArray[c].interactionInvalid = true
|
|
|
|
itemManager.items_dynamicIndicatorArray[c].interactionInvalid = true
|
|
|
|
if (itemManager.items_dynamicInteractionArray[c].itemName == stackDisabledItemArray[i] && !stackDisabledItemArray_bools[i]):
|
|
|
|
itemManager.items_dynamicInteractionArray[c].interactionInvalid = false
|
|
|
|
itemManager.items_dynamicIndicatorArray[c].interactionInvalid = false
|
|
|
|
|
|
|
|
func RevertDescriptionUI():
|
|
|
|
description.EndLerp()
|