local function PlayerName(player) local puns = { --TODO: add moar... ["asd"] = "qwe"; ["qwe"] = "asd"; }; return LoadFont("_arial black 20px")..{ --Text="PlaceHolder"; InitCommand=cmd(zoomx,1); SetCommand=function(self) self:settext(""); if PROFILEMAN:IsPersistentProfile(player) then local profile = PROFILEMAN:GetProfile(player) local name = profile:GetDisplayName() if name == "" then name = string.gsub(player,"Number_P"," ") end --max 20 chars ēvē name = string.sub(name,1,20) --name = puns[name] or name self:settext(name) end end; PlayerJoinedMessageCommand=cmd(playcommand,"Set"); CoinInsertedMessageCommand=cmd(playcommand,"Set"); CoinModeChangedMessageCommand=cmd(playcommand,"Set"); ScreenChangedMessageCommand=cmd(playcommand,"Set"); StorageDevicesChangedMessageCommand=cmd(playcommand,"Set"); }; end return Def.ActorFrame { LoadFont("_fixedsys")..{ InitCommand=cmd(blend,'BlendMode_Add'xy,10,5;shadowlength,0;Stroke,{0,0,0,1};wrapwidthpixels,SCREEN_WIDTH*0.45;maxwidth,SCREEN_WIDTH*0.45;horizalign,left;SetTextureFiltering,false;vertalign,top;zoom,1.5); SystemMessageMessageCommand=function(self,params) self:settext(params.Message); self:finishtweening(); self:diffusealpha(1); self:sleep(3); self:diffusealpha(0); end; HideSystemMessageMessageCommand=cmd(finishtweening); }; LoadFont("_arial black 20px")..{ InitCommand=cmd(xy,SCREEN_CENTER_X,SCREEN_HEIGHT-20;zoom,1;shadowlength,0;playcommand,"Text"); TextCommand=function(self) if GAMESTATE:GetCoinMode() == 'CoinMode_Pay' then local Coins = GAMESTATE:GetCoins() local CoinForCredit = GAMESTATE:GetCoinsNeededToJoin() local Credits = math.floor(Coins/CoinForCredit) local Remain = Coins % CoinForCredit self:settext(string.format("CREDIT(S) %i[%i/%i]", Credits, Remain, CoinForCredit)) elseif GAMESTATE:GetCoinMode() == 'CoinMode_Free' then self:settext("Free Play") else --homemode self:settext("Home Mode"); end end; PlayerJoinedMessageCommand=cmd(playcommand,"Text"); CoinInsertedMessageCommand=cmd(playcommand,"Text"); CoinModeChangedMessageCommand=cmd(playcommand,"Text"); ScreenChangedMessageCommand=cmd(playcommand,"Text"); }; ScreenChangedMessageCommand=function(self) self:visible(THEME:GetMetric(SCREENMAN:GetTopScreen():GetName(),"ShowCreditDisplay")); end; PlayerName(PLAYER_1)..{ InitCommand=cmd(xy,20,SCREEN_HEIGHT-20;horizalign,left); }; PlayerName(PLAYER_2)..{ InitCommand=cmd(xy,SCREEN_WIDTH-20,SCREEN_HEIGHT-20;horizalign,right); }; }