I get error 3512 for lines 58 and 70. I have no idea how to fix it because the code seems fine to me.
Here the full code:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/UI }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Fortnite.com/UI }
using { /Verse.org/Colors }
using { /Verse.org/Colors/NamedColors }
ResourceManager := class(creative_device):
SeparateNumberWithCommas(Number:int):string=
var ConvertedString : string = "{Number}"
var ReturnString : string = ""
for(Index:=0..ConvertedString.Length-1):
if(Mod[ConvertedString.Length-Index,3] = 0 and Index<>0):
set ReturnString = ReturnString + ","
if(Char:=ConvertedString[Index]):
set ReturnString = ReturnString + "{Char}"
return ReturnString
var UIStuffPerAgent : [agent]?tuple(canvas,text_block,text_block,text_block) = map{}
@editable RefreshRate : float = 0.5
@editable GoldTracker : tracker_device = tracker_device{}
@editable WoodTracker : tracker_device = tracker_device{}
@editable RockTracker : tracker_device = tracker_device{}
@editable PlayerSpawners : []player_spawner_device = array{}
OnBegin<override>()<suspends>:void=
for(PS:PlayerSpawners):
PS.SpawnedEvent.Subscribe(PlayerSpawned)
S2M<localizes>(S:string):message="{S}"
UpdateUI(A:agent):void=
if(Stuff:=UIStuffPerAgent[A]?):
MyGold:=GoldTracker.GetValue(A)
Stuff(1).SetText(S2M("{SeparateNumberWithCommas(MyGold)}"))
MyWood:=WoodTracker.GetValue(A)
Stuff(2).SetText(S2M("{SeparateNumberWithCommas(MyWood)}"))
MyRock:=RockTracker.GetValue(A)
Stuff(3).SetText(S2M("{SeparateNumberWithCommas(MyRock)}"))
PlayerSpawned(A:agent):void=
if(Stuff:=UIStuffPerAgent[A]?):
# Do Nothing
else:
AddUI(A)
RemoveUI(A:agent):void=
if:
PlayerUI:=GetPlayerUI[player[A]]
Stuff:=UIStuffPerAgent[A]?
then:
PlayerUI.RemoveWidget(Stuff(0))
set UIStuffPerAgent[A] = false
AddUI(A:agent):void=
if:
PlayerUI:=GetPlayerUI[player[A]]
then:
Stuff:=MakeCanvas()
Canvas:=Stuff(0)
GoldBlock:=Stuff(1)
WoodBlock:=Stuff(2)
RockBlock:=Stuff(3)
PlayerUI.AddWidget(Canvas)
set UIStuffPerAgent[A] = option{Stuff}
spawn{LoopUpdate(A)}
LoopUpdate(A:agent)<suspends>:void=
loop:
Sleep(RefreshRate)
UpdateUI(A)
if(not UIStuffPerAgent[A]?):
return
MakeCanvas():tuple(canvas,text_block,text_block,text_block)=
GoldTextBlock:=text_block{DefaultText:=S2M(""),DefaultTextColor:=White,DefaultShadowOffset:=option{vector2{X:=2.5,Y:=2.5}},DefaultShadowColor:=Black}
GoldTextBlock.SetShadowOpacity(1.0)
WoodTextBlock:=text_block{DefaultText:=S2M(""),DefaultTextColor:=White,DefaultShadowOffset:=option{vector2{X:=2.5,Y:=2.5}},DefaultShadowColor:=Black}
WoodTextBlock.SetShadowOpacity(1.0)
RockTextBlock:=text_block{DefaultText:=S2M(""),DefaultTextColor:=White,DefaultShadowOffset:=option{vector2{X:=2.5,Y:=2.5}},DefaultShadowColor:=Black}
RockTextBlock.SetShadowOpacity(1.0)
MyCanvas := canvas:
Slots:=array:
canvas_slot:
Anchors:=anchors{Minimum:=vector2{X:=0.0,Y:=0.2},Maximum:=vector2{X:=0.0,Y:=0.2}}
Offsets:=margin{}
Alignment:=vector2{X:=0.0,Y:=1.0}
SizeToContent:=true
Widget:=stack_box:
Orientation:=orientation.Vertical
Slots:=array:
stack_box_slot:
HorizontalAlignment:=horizontal_alignment.Left
VerticalAlignment:=vertical_alignment.Fill
Widget:=overlay:
Slots:=array:
overlay_slot:
HorizontalAlignment:=horizontal_alignment.Fill
VerticalAlignment:=vertical_alignment.Fill
Widget:=texture_block{
DefaultImage:=Icons.Untitled_design__8_removebgpreview__1_
DefaultDesiredSize:=vector2{X:=76.0,Y:=32.0}
}
Padding:=margin{Left:=20.0, Right:=20.0, Top:=20.0, Bottom:=20.0}
overlay_slot:
Widget:=stack_box:
Orientation:=orientation.Horizontal
Slots:=array:
stack_box_slot:
Widget:=texture_block{
DefaultImage:=Icons.goldcoin
DefaultDesiredSize:=vector2{X:=60.0,Y:=60.0}
}
stack_box_slot:
Widget:=GoldTextBlock
Padding:=margin{Left:=5.0, Right:=30.0}
HorizontalAlignment:=horizontal_alignment.Fill
VerticalAlignment:=vertical_alignment.Center
HorizontalAlignment:=horizontal_alignment.Center
VerticalAlignment:=vertical_alignment.Center
# Repeat for Wood and Rock, moving Padding to the slot, not the widget
stack_box_slot:
HorizontalAlignment:=horizontal_alignment.Left
VerticalAlignment:=vertical_alignment.Fill
Widget:=overlay:
Slots:=array:
overlay_slot:
HorizontalAlignment:=horizontal_alignment.Fill
VerticalAlignment:=vertical_alignment.Fill
Widget:=texture_block{
DefaultImage:=Icons.Untitled_design__7_removebgpreview__1_
DefaultDesiredSize:=vector2{X:=76.0,Y:=32.0}
}
Padding:=margin{Left:=20.0, Right:=20.0, Top:=20.0, Bottom:=20.0}
overlay_slot:
Widget:=stack_box:
Orientation:=orientation.Horizontal
Slots:=array:
stack_box_slot:
Widget:=texture_block{
DefaultImage:=Icons.wood
DefaultDesiredSize:=vector2{X:=70.0,Y:=70.0}
}
stack_box_slot:
Widget:=WoodTextBlock
Padding:=margin{Left:=5.0, Right:=30.0}
HorizontalAlignment:=horizontal_alignment.Fill
VerticalAlignment:=vertical_alignment.Center
HorizontalAlignment:=horizontal_alignment.Center
VerticalAlignment:=vertical_alignment.Center
stack_box_slot:
HorizontalAlignment:=horizontal_alignment.Left
VerticalAlignment:=vertical_alignment.Fill
Widget:=overlay:
Slots:=array:
overlay_slot:
HorizontalAlignment:=horizontal_alignment.Fill
VerticalAlignment:=vertical_alignment.Fill
Widget:=texture_block{
DefaultImage:=Icons.Untitled_design__6_removebgpreview__1_
DefaultDesiredSize:=vector2{X:=76.0,Y:=32.0}
}
Padding:=margin{Left:=20.0, Right:=20.0, Top:=20.0, Bottom:=20.0}
overlay_slot:
Widget:=stack_box:
Orientation:=orientation.Horizontal
Slots:=array:
stack_box_slot:
Widget:=texture_block{
DefaultImage:=Icons.rock
DefaultDesiredSize:=vector2{X:=60.0,Y:=60.0}
}
stack_box_slot:
Widget:=RockTextBlock
Padding:=margin{Left:=5.0, Right:=30.0}
HorizontalAlignment:=horizontal_alignment.Fill
VerticalAlignment:=vertical_alignment.Center
HorizontalAlignment:=horizontal_alignment.Center
VerticalAlignment:=vertical_alignment.Center
return (MyCanvas,GoldTextBlock,WoodTextBlock,RockTextBlock)