Quantcast
Channel: Recent Discussions — Unknown Worlds Forums
Viewing all articles
Browse latest Browse all 42799

How to properly register + instance a new custom entity class (Server.CreateEntity returning nil)

$
0
0
I'm having some difficulty instancing a very barebones custom entity class.

So far my steps are:
1. create a new lua script file
2. extend class Entity, have a unique kMapName, call Shared.LinkClassToMap
3. load script in desired vms (server+client)
4. Instance it using Server.CreateEntity(EntityClassName.kMapName) in server vm.

Server.CreateEntity however always returns nil. Debugging doesn't help me as stepping into Server.CreateEntity doesn't work. I suspect I'm missing a step or naming convention required to get this to work.

Am I missing a step? How do I debug this issue?

Class source
Spoiler:
Script.Load("lua/Entity.lua")

class 'SWSGameInfo' (Entity)

SWSGameInfo.kMapName = "sws_game_info"

function GetSwsGameInfoEntity()
    local entityList = Shared.GetEntitiesWithClassname("SWSGameInfo")
    if entityList:GetSize() > 0 then    
        return entityList:GetEntityAtIndex(0)
    end
end

local networkVars = 
{
    isTeamBased = "boolean",
}

function SWSGameInfo:OnCreate()
    self.isTeamBased = false
end

if Server then
    function SWSGameInfo:SetTeamBased(value)
        self.isTeamBased = value
    end
end

function SWSGameInfo:GetTeamBased()
    return self.isTeamBased
end

Shared.LinkClassToMap("SWSGameInfo", SWSGameInfo.kMapName, networkVars)

Viewing all articles
Browse latest Browse all 42799

Trending Articles