public GameWorld() { GameContext = Kernel.Get <BaseGameContext>(); Server = Kernel.Get <BaseServer>(); Config = Kernel.Get <BaseConfig>(); WorldCore = new WorldCore(Server.MaxClients, GameContext.Tuning); }
public GameWorld() { Entities = new List <Entity>(); WorldCore = new WorldCore(Server.MaxClients, Tuning); PlayersDistances = new List <Pair <float, int> >(Server.MaxClients); for (var i = 0; i < Server.MaxClients; i++) { PlayersDistances.Add(new Pair <float, int>(0, 0)); } }
public override void Init(BasePlayer player, Vector2 spawnPos) { Player = player; Position = spawnPos; IsAlive = true; Health = 0; Armor = 0; EmoteStopTick = -1; Emote = Emote.Normal; Core = Kernel.Get <BaseCharacterCore>(); SendCore = Kernel.Get <BaseCharacterCore>(); ReckoningCore = Kernel.Get <BaseCharacterCore>(); ReckoningCore.IsPredicted = true; Core.Reset(); Core.Init(GameWorld.WorldCore, GameContext.MapCollision); Core.Position = Position; var worldCore = new WorldCore( GameWorld.WorldCore.CharacterCores.Length, Kernel.Get <BaseTuningParams>()); ReckoningCore.Init(worldCore, GameContext.MapCollision); GameContext.CreatePlayerSpawn(spawnPos); GameWorld.WorldCore.CharacterCores[player.ClientId] = Core; Input = new SnapshotPlayerInput(); LatestPrevInput = new SnapshotPlayerInput(); LatestInput = new SnapshotPlayerInput(); LastAction = -1; HitObjects = new List <Entity>(); NinjaStat = new NinjaStat(); ActiveWeapon = Weapon.Hammer; LastWeapon = Weapon.Gun; QueuedWeapon = (Weapon)(-1); Weapons = new WeaponStat[(int)Weapon.NumWeapons]; Weapons[(int)Weapon.Hammer].Got = true; Weapons[(int)Weapon.Hammer].Ammo = -1; Destroyed += OnDestroyed; Reseted += OnReseted; }
public Character(BasePlayer player, Vector2 spawnPos) : base(1) { HitObjects = new List <Entity>(); Weapons = new WeaponStat[(int)Weapon.NUM_WEAPONS]; NinjaStat = new NinjaStat(); ActiveWeapon = Weapon.GUN; LastWeapon = Weapon.HAMMER; QueuedWeapon = (Weapon)(-1); Position = spawnPos; Health = 0; Armor = 0; EmoteStopTick = -1; LastAction = -1; Player = player; IsAlive = true; Input = new SnapObj_PlayerInput(); LatestPrevInput = new SnapObj_PlayerInput(); LatestInput = new SnapObj_PlayerInput(); Core = new CharacterCore(); SendCore = new CharacterCore(); ReckoningCore = new CharacterCore(); Core.Reset(); Core.Init(GameWorld.WorldCore, GameContext.Collision); Core.Position = Position; var worldCore = new WorldCore( GameWorld.WorldCore.CharacterCores.Length, GameWorld.WorldCore.Tuning); ReckoningCore.Init(worldCore, GameContext.Collision); GameWorld.WorldCore.CharacterCores[player.ClientId] = Core; GameContext.GameController.OnCharacterSpawn(this); }
public abstract void Init(WorldCore worldCore, BaseMapCollision mapCollision);
protected void Example(string fileName, string fileContent) { if (string.IsNullOrWhiteSpace(fileContent)) { throw new ArgumentNullException(nameof(fileContent)); } _logger.Log($"fileContent = {fileContent}"); _logger.Log($"fileName = {fileName}"); var targetDirectoryName = string.Empty; if (fileName.EndsWith(".zip")) { targetDirectoryName = fileName.Replace(".zip", string.Empty); } else { targetDirectoryName = fileName; fileName = $"{fileName}.zip"; } WriteLineToReport("---------------------------------------------------------------------------------"); WriteLineToReport(targetDirectoryName); WriteLineToReport(" "); _logger.Log($"fileName (after) = {fileName}"); _logger.Log($"targetDirectoryName = {targetDirectoryName}"); var fullDestDirName = Path.Combine(_destDir, targetDirectoryName); var fullFileName = Path.Combine(_destDir, fileName); _logger.Log($"fullDestDirName = {fullDestDirName}"); _logger.Log($"fullFileName = {fullFileName}"); var relativeExampleHref = $"{_baseRelativeExampleHref}{fileName}"; _logger.Log($"relativeExampleHref = {relativeExampleHref}"); WriteLineToReport($"<code data-lng='soc' example-href='{relativeExampleHref}'>"); WriteLineToReport(fileContent); WriteLineToReport("</code>"); WriteLineToReport(" "); var testDir = Path.Combine(_rootDir, $"TstDir{Guid.NewGuid().ToString("D").Replace("-", string.Empty)}"); if (!Directory.Exists(testDir)) { Directory.CreateDirectory(testDir); } var worldSpaceCreationSettings = new WorldSpaceCreationSettings() { ProjectName = _projectName }; var wSpaceFile = WorldSpaceCreator.CreateWithOutWSpaceFile(worldSpaceCreationSettings, testDir , errorMsg => throw new Exception(errorMsg) ); var wSpaceDir = wSpaceFile.DirectoryName; _logger.Log($"testDir = {testDir}"); _logger.Log($"wSpaceDir = {wSpaceDir}"); var relativeFileName = _defaultRelativeFileName; if (relativeFileName.StartsWith("/") || relativeFileName.StartsWith("\\")) { relativeFileName = relativeFileName.Substring(1); } var targetFileName = Path.Combine(wSpaceDir, relativeFileName); File.WriteAllText(targetFileName, fileContent); var supportBasePath = Path.Combine(testDir, "SysDirs"); var logDir = Path.Combine(supportBasePath, "NpcLogs"); var invokingInMainThread = DefaultInvokerInMainThreadFactory.Create(); var instance = new WorldCore(); var settings = new WorldSettings(); settings.EnableAutoloadingConvertors = true; settings.SharedModulesDirs = new List <string>() { Path.Combine(wSpaceDir, "Modules") }; settings.ImagesRootDir = Path.Combine(supportBasePath, "Images"); settings.TmpDir = Path.Combine(supportBasePath, "TMP"); settings.HostFile = Path.Combine(wSpaceDir, "World/World.world"); settings.InvokerInMainThread = invokingInMainThread; var callBackLogger = new CallBackLogger( message => { WriteLineToReport(NormalizeTextForConsole(message)); _logger.Log(message); }, errorMsg => { _logger.Error(errorMsg); } ); settings.Logging = new LoggingSettings() { LogDir = logDir, RootContractName = "Hi1", PlatformLoggers = new List <IPlatformLogger>() { callBackLogger }, Enable = true, EnableRemoteConnection = true }; instance.SetSettings(settings); var platformListener = new object(); var npcSettings = new HumanoidNPCSettings(); npcSettings.Id = "#020ED339-6313-459A-900D-92F809CEBDC5"; npcSettings.LogicFile = Path.Combine(wSpaceDir, $"Npcs/{_projectName}/{_projectName}.sobj"); npcSettings.HostListener = platformListener; npcSettings.PlatformSupport = new PlatformSupportCLIStub(); var npc = instance.GetHumanoidNPC(npcSettings); WriteLineToReport("<console>"); instance.Start(); Thread.Sleep(_timeoutToEnd); WriteLineToReport("</console>"); Directory.Move(wSpaceDir, fullDestDirName); ZipFile.CreateFromDirectory(fullDestDirName, fullFileName); Directory.Delete(testDir, true); Directory.Delete(fullDestDirName, true); }
public bool Run(int timeoutToEnd, Action <string> logChannel, Action <string> error) { var result = true; var supportBasePath = Path.Combine(_testDir, "SysDirs"); var logDir = Path.Combine(supportBasePath, "NpcLogs"); var invokingInMainThread = DefaultInvokerInMainThreadFactory.Create(); var instance = new WorldCore(); var settings = new WorldSettings(); settings.EnableAutoloadingConvertors = true; settings.SharedModulesDirs = new List <string>() { Path.Combine(_wSpaceDir, "Modules") }; settings.ImagesRootDir = Path.Combine(supportBasePath, "Images"); settings.TmpDir = Path.Combine(supportBasePath, "TMP"); settings.HostFile = Path.Combine(_wSpaceDir, "World/World.world"); settings.InvokerInMainThread = invokingInMainThread; var callBackLogger = new CallBackLogger( message => { logChannel(message); }, errorMsg => { result = false; error(errorMsg); } ); settings.Logging = new LoggingSettings() { LogDir = logDir, RootContractName = "Hi1", PlatformLoggers = new List <IPlatformLogger>() { callBackLogger }, Enable = true, EnableRemoteConnection = true }; instance.SetSettings(settings); var platformListener = new object(); var npcSettings = new HumanoidNPCSettings(); npcSettings.Id = "#020ED339-6313-459A-900D-92F809CEBDC5"; npcSettings.LogicFile = Path.Combine(_wSpaceDir, $"Npcs/{_projectName}/{_projectName}.sobj"); npcSettings.HostListener = platformListener; npcSettings.PlatformSupport = new PlatformSupportCLIStub(); var npc = instance.GetHumanoidNPC(npcSettings); instance.Start(); Thread.Sleep(timeoutToEnd); return(result); }