void Awake() { if(_instance != null) { print("ERRROR: Deleting WorldRenderer(singleton) instance duplicate"); Destroy(gameObject); } else _instance = this; }
public void RenderDebugGeometry(WorldRenderer wr) { }
public IFinalizedRenderable PrepareRender(WorldRenderer wr) { return(this); }
protected override IEnumerable <IRenderable> RenderAnnotations(WorldRenderer wr, World world) { yield break; }
IEnumerable <IRenderable> IRenderAboveShroudWhenSelected.RenderAboveShroud(Actor self, WorldRenderer wr) { return(RangeCircleRenderables(self, wr)); }
public PathFinder(MapManager mapManager, WorldRenderer worldRenderer) { this.mapManager = mapManager; this.worldRenderer = worldRenderer; }
public ProductionPaletteWidget(ModData modData, OrderManager orderManager, World world, WorldRenderer worldRenderer) { this.modData = modData; this.orderManager = orderManager; World = world; this.worldRenderer = worldRenderer; GetTooltipIcon = () => TooltipIcon; tooltipContainer = Exts.Lazy(() => Ui.Root.Get <TooltipContainerWidget>(TooltipContainer)); cantBuild = new Animation(world, NotBuildableAnimation); cantBuild.PlayFetchIndex(NotBuildableSequence, () => 0); clock = new Animation(world, ClockAnimation); overlayFont = Game.Renderer.Fonts["TinyBold"]; Game.Renderer.Fonts.TryGetValue("Symbols", out symbolFont); }
public void Render(WorldRenderer wr) { var screenWidth = wr.ScreenVector(new WVec(width, WDist.Zero, WDist.Zero))[0]; Game.Renderer.WorldRgbaColorRenderer.DrawLine(offsets.Select(offset => wr.Screen3DPosition(offset)), screenWidth, color, false); }
public virtual IEnumerable <IRenderable> RenderAboveShroud(WorldRenderer wr, World world) { yield break; }
static IEnumerable <Actor> SelectActorsOnScreen(World world, WorldRenderer wr, IEnumerable <string> selectionClasses, IEnumerable <Player> players) { var actors = world.ScreenMap.ActorsInMouseBox(wr.Viewport.TopLeft, wr.Viewport.BottomRight).Select(a => a.Actor); return(SelectActorsByOwnerAndSelectionClass(actors, players, selectionClasses)); }
public void InitPalette(WorldRenderer wr) { var remap = new ScaledPaletteRemap(info.Scale, info.Offset); wr.AddPalette(info.Name, new Palette(wr.Palette(info.BasePalette).Palette, remap), info.AllowModifiers); }
public ActorPreviewInitializer(ActorInfo actor, WorldRenderer worldRenderer, TypeDictionary dict) { Actor = actor; WorldRenderer = worldRenderer; this.dict = dict; }
public void WorldLoaded(World w, WorldRenderer wr) { Fade(Info.Effect); }
public void WorldLoaded(World w, WorldRenderer wr) { var resources = w.WorldActor.TraitsImplementing <ResourceType>() .ToDictionary(r => r.Info.ResourceType, r => r); // Build the sprite layer dictionary for rendering resources // All resources that have the same palette must also share a sheet and blend mode foreach (var r in resources) { var layer = spriteLayers.GetOrAdd(r.Value.Palette, pal => { var first = r.Value.Variants.First().Value.First(); return(new TerrainSpriteLayer(w, wr, first.Sheet, first.BlendMode, pal, wr.World.Type != WorldType.Editor)); }); // Validate that sprites are compatible with this layer var sheet = layer.Sheet; if (r.Value.Variants.Any(kv => kv.Value.Any(s => s.Sheet != sheet))) { throw new InvalidDataException("Resource sprites span multiple sheets. Try loading their sequences earlier."); } var blendMode = layer.BlendMode; if (r.Value.Variants.Any(kv => kv.Value.Any(s => s.BlendMode != blendMode))) { throw new InvalidDataException("Resource sprites specify different blend modes. " + "Try using different palettes for resource types that use different blend modes."); } } foreach (var cell in w.Map.AllCells) { ResourceType t; if (!resources.TryGetValue(w.Map.Resources[cell].Type, out t)) { continue; } if (!AllowResourceAt(t, cell)) { continue; } Content[cell] = CreateResourceCell(t, cell); } foreach (var cell in w.Map.AllCells) { var type = Content[cell].Type; if (type != null) { // Set initial density based on the number of neighboring resources // Adjacent includes the current cell, so is always >= 1 var adjacent = GetAdjacentCellsWith(type, cell); var density = int2.Lerp(0, type.Info.MaxDensity, adjacent, 9); var temp = Content[cell]; temp.Density = Math.Max(density, 1); // Initialize the RenderContent with the initial map state // because the shroud may not be enabled. RenderContent[cell] = Content[cell] = temp; UpdateRenderedSprite(cell); } } }
public static void InitializeMod(string mod, Arguments args) { // Clear static state if we have switched mods LobbyInfoChanged = () => { }; ConnectionStateChanged = om => { }; BeforeGameStart = () => { }; OnRemoteDirectConnect = endpoint => { }; delayedActions = new ActionQueue(); Ui.ResetAll(); worldRenderer?.Dispose(); worldRenderer = null; server?.Shutdown(); OrderManager?.Dispose(); if (ModData != null) { ModData.ModFiles.UnmountAll(); ModData.Dispose(); } ModData = null; if (mod == null) { throw new InvalidOperationException("Game.Mod argument missing."); } if (!Mods.ContainsKey(mod)) { throw new InvalidOperationException("Unknown or invalid mod '{0}'.".F(mod)); } Console.WriteLine("Loading mod: {0}", mod); Sound.StopVideo(); ModData = new ModData(Mods[mod], Mods, true); LocalPlayerProfile = new LocalPlayerProfile(Path.Combine(Platform.SupportDir, Settings.Game.AuthProfile), ModData.Manifest.Get <PlayerDatabase>()); if (!ModData.LoadScreen.BeforeLoad()) { return; } using (new PerfTimer("LoadMaps")) ModData.MapCache.LoadMaps(); ModData.InitializeLoaders(ModData.DefaultFileSystem); Renderer.InitializeFonts(ModData); var grid = ModData.Manifest.Contains <MapGrid>() ? ModData.Manifest.Get <MapGrid>() : null; Renderer.InitializeDepthBuffer(grid); Cursor?.Dispose(); Cursor = new CursorManager(ModData.CursorProvider); PerfHistory.Items["render"].HasNormalTick = false; PerfHistory.Items["batches"].HasNormalTick = false; PerfHistory.Items["render_world"].HasNormalTick = false; PerfHistory.Items["render_widgets"].HasNormalTick = false; PerfHistory.Items["render_flip"].HasNormalTick = false; PerfHistory.Items["terrain_lighting"].HasNormalTick = false; JoinLocal(); try { discoverNat?.Wait(); } catch (Exception e) { Console.WriteLine("NAT discovery failed: {0}", e.Message); Log.Write("nat", e.ToString()); } ChromeMetrics.TryGet("ChatMessageColor", out chatMessageColor); ChromeMetrics.TryGet("SystemMessageColor", out systemMessageColor); if (!ChromeMetrics.TryGet("SystemMessageLabel", out systemMessageLabel)) { systemMessageLabel = "Battlefield Control"; } ModData.LoadScreen.StartGame(args); }
public IEnumerable <IRenderable> Render(WorldRenderer wr, World world) { yield break; }
public IEnumerable <IRenderable> Render(Actor self, WorldRenderer wr) { yield return(trail); }
public ObserverStatsLogic(World world, ModData modData, WorldRenderer worldRenderer, Widget widget, Action onExit, ObserverStatsPanel activePanel, Dictionary <string, MiniYaml> logicArgs) { this.world = world; this.worldRenderer = worldRenderer; MiniYaml yaml; string[] keyNames = Enum.GetNames(typeof(ObserverStatsPanel)); var statsHotkeys = new HotkeyReference[keyNames.Length]; for (var i = 0; i < keyNames.Length; i++) { statsHotkeys[i] = logicArgs.TryGetValue("Statistics" + keyNames[i] + "Key", out yaml) ? modData.Hotkeys[yaml.Value] : new HotkeyReference(); } players = world.Players.Where(p => !p.NonCombatant); basicStatsHeaders = widget.Get <ContainerWidget>("BASIC_STATS_HEADERS"); economyStatsHeaders = widget.Get <ContainerWidget>("ECONOMY_STATS_HEADERS"); productionStatsHeaders = widget.Get <ContainerWidget>("PRODUCTION_STATS_HEADERS"); combatStatsHeaders = widget.Get <ContainerWidget>("COMBAT_STATS_HEADERS"); earnedThisMinuteGraphHeaders = widget.Get <ContainerWidget>("EARNED_THIS_MIN_GRAPH_HEADERS"); playerStatsPanel = widget.Get <ScrollPanelWidget>("PLAYER_STATS_PANEL"); playerStatsPanel.Layout = new GridLayout(playerStatsPanel); basicPlayerTemplate = playerStatsPanel.Get <ScrollItemWidget>("BASIC_PLAYER_TEMPLATE"); economyPlayerTemplate = playerStatsPanel.Get <ScrollItemWidget>("ECONOMY_PLAYER_TEMPLATE"); productionPlayerTemplate = playerStatsPanel.Get <ScrollItemWidget>("PRODUCTION_PLAYER_TEMPLATE"); combatPlayerTemplate = playerStatsPanel.Get <ScrollItemWidget>("COMBAT_PLAYER_TEMPLATE"); earnedThisMinuteGraphTemplate = playerStatsPanel.Get <ContainerWidget>("EARNED_THIS_MIN_GRAPH_TEMPLATE"); teamTemplate = playerStatsPanel.Get <ScrollItemWidget>("TEAM_TEMPLATE"); var statsDropDown = widget.Get <DropDownButtonWidget>("STATS_DROPDOWN"); Func <string, ContainerWidget, Action, StatsDropDownOption> createStatsOption = (title, headers, a) => { return(new StatsDropDownOption { Title = title, IsSelected = () => headers.Visible, OnClick = () => { ClearStats(); statsDropDown.GetText = () => title; a(); } }); }; var statsDropDownOptions = new StatsDropDownOption[] { createStatsOption("Basic", basicStatsHeaders, () => DisplayStats(BasicStats)), createStatsOption("Economy", economyStatsHeaders, () => DisplayStats(EconomyStats)), createStatsOption("Production", productionStatsHeaders, () => DisplayStats(ProductionStats)), createStatsOption("Combat", combatStatsHeaders, () => DisplayStats(CombatStats)), createStatsOption("Earnings (graph)", earnedThisMinuteGraphHeaders, () => EarnedThisMinuteGraph()) }; Func <StatsDropDownOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) => { var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick); item.Get <LabelWidget>("LABEL").GetText = () => option.Title; return(item); }; statsDropDown.OnMouseDown = _ => statsDropDown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 150, statsDropDownOptions, setupItem); statsDropDownOptions[(int)activePanel].OnClick(); var close = widget.GetOrNull <ButtonWidget>("CLOSE"); if (close != null) { close.OnClick = () => { Ui.CloseWindow(); Ui.Root.RemoveChild(widget); onExit(); } } ; var keyListener = statsDropDown.Get <LogicKeyListenerWidget>("STATS_DROPDOWN_KEYHANDLER"); keyListener.AddHandler(e => { if (e.Event == KeyInputEvent.Down && !e.IsRepeat) { for (var i = 0; i < statsHotkeys.Length; i++) { if (statsHotkeys[i].IsActivatedBy(e)) { Game.Sound.PlayNotification(modData.DefaultRules, null, "Sounds", "ClickSound", null); statsDropDownOptions[i].OnClick(); return(true); } } } return(false); }); } void ClearStats() { playerStatsPanel.Children.Clear(); basicStatsHeaders.Visible = false; economyStatsHeaders.Visible = false; productionStatsHeaders.Visible = false; combatStatsHeaders.Visible = false; earnedThisMinuteGraphHeaders.Visible = false; } void EarnedThisMinuteGraph() { earnedThisMinuteGraphHeaders.Visible = true; var template = earnedThisMinuteGraphTemplate.Clone(); var graph = template.Get <LineGraphWidget>("EARNED_THIS_MIN_GRAPH"); graph.GetSeries = () => players.Select(p => new LineGraphSeries( p.PlayerName, p.Color.RGB, (p.PlayerActor.TraitOrDefault <PlayerStatistics>() ?? new PlayerStatistics(p.PlayerActor)).EarnedSamples.Select(s => (float)s))); playerStatsPanel.AddChild(template); playerStatsPanel.ScrollToTop(); } void DisplayStats(Func <Player, ScrollItemWidget> createItem) { var teams = players.GroupBy(p => (world.LobbyInfo.ClientWithIndex(p.ClientIndex) ?? new Session.Client()).Team).OrderBy(g => g.Key); foreach (var t in teams) { var team = t; var tt = ScrollItemWidget.Setup(teamTemplate, () => false, () => { }); tt.IgnoreMouseOver = true; tt.Get <LabelWidget>("TEAM").GetText = () => team.Key == 0 ? "No Team" : "Team " + team.Key; playerStatsPanel.AddChild(tt); foreach (var p in team) { var player = p; playerStatsPanel.AddChild(createItem(player)); } } } ScrollItemWidget CombatStats(Player player) { combatStatsHeaders.Visible = true; var template = SetupPlayerScrollItemWidget(combatPlayerTemplate, player); LobbyUtils.AddPlayerFlagAndName(template, player); var stats = player.PlayerActor.TraitOrDefault <PlayerStatistics>(); if (stats == null) { return(template); } template.Get <LabelWidget>("ASSETS_DESTROYED").GetText = () => "$" + stats.KillsCost; template.Get <LabelWidget>("ASSETS_LOST").GetText = () => "$" + stats.DeathsCost; template.Get <LabelWidget>("UNITS_KILLED").GetText = () => stats.UnitsKilled.ToString(); template.Get <LabelWidget>("UNITS_DEAD").GetText = () => stats.UnitsDead.ToString(); template.Get <LabelWidget>("BUILDINGS_KILLED").GetText = () => stats.BuildingsKilled.ToString(); template.Get <LabelWidget>("BUILDINGS_DEAD").GetText = () => stats.BuildingsDead.ToString(); return(template); } ScrollItemWidget ProductionStats(Player player) { productionStatsHeaders.Visible = true; var template = SetupPlayerScrollItemWidget(productionPlayerTemplate, player); LobbyUtils.AddPlayerFlagAndName(template, player); template.Get <ObserverProductionIconsWidget>("PRODUCTION_ICONS").GetPlayer = () => player; template.Get <ObserverSupportPowerIconsWidget>("SUPPORT_POWER_ICONS").GetPlayer = () => player; template.IgnoreChildMouseOver = false; return(template); } ScrollItemWidget EconomyStats(Player player) { economyStatsHeaders.Visible = true; var template = SetupPlayerScrollItemWidget(economyPlayerTemplate, player); LobbyUtils.AddPlayerFlagAndName(template, player); var res = player.PlayerActor.Trait <PlayerResources>(); var stats = player.PlayerActor.TraitOrDefault <PlayerStatistics>(); if (stats == null) { return(template); } template.Get <LabelWidget>("CASH").GetText = () => "$" + (res.Cash + res.Resources); template.Get <LabelWidget>("EARNED_MIN").GetText = () => AverageEarnedPerMinute(res.Earned); template.Get <LabelWidget>("EARNED_THIS_MIN").GetText = () => "$" + stats.EarnedThisMinute; template.Get <LabelWidget>("EARNED").GetText = () => "$" + res.Earned; template.Get <LabelWidget>("SPENT").GetText = () => "$" + res.Spent; var assets = template.Get <LabelWidget>("ASSETS"); assets.GetText = () => "$" + world.ActorsHavingTrait <Valued>() .Where(a => a.Owner == player && !a.IsDead) .Sum(a => a.Info.TraitInfos <ValuedInfo>().First().Cost); var harvesters = template.Get <LabelWidget>("HARVESTERS"); harvesters.GetText = () => world.ActorsHavingTrait <Harvester>().Count(a => a.Owner == player && !a.IsDead).ToString(); return(template); } ScrollItemWidget BasicStats(Player player) { basicStatsHeaders.Visible = true; var template = SetupPlayerScrollItemWidget(basicPlayerTemplate, player); LobbyUtils.AddPlayerFlagAndName(template, player); var res = player.PlayerActor.Trait <PlayerResources>(); template.Get <LabelWidget>("CASH").GetText = () => "$" + (res.Cash + res.Resources); template.Get <LabelWidget>("EARNED_MIN").GetText = () => AverageEarnedPerMinute(res.Earned); var powerRes = player.PlayerActor.Trait <PowerManager>(); var power = template.Get <LabelWidget>("POWER"); power.GetText = () => powerRes.PowerDrained + "/" + powerRes.PowerProvided; power.GetColor = () => GetPowerColor(powerRes.PowerState); var stats = player.PlayerActor.TraitOrDefault <PlayerStatistics>(); if (stats == null) { return(template); } template.Get <LabelWidget>("KILLS").GetText = () => (stats.UnitsKilled + stats.BuildingsKilled).ToString(); template.Get <LabelWidget>("DEATHS").GetText = () => (stats.UnitsDead + stats.BuildingsDead).ToString(); template.Get <LabelWidget>("ASSETS_DESTROYED").GetText = () => "$" + stats.KillsCost; template.Get <LabelWidget>("ASSETS_LOST").GetText = () => "$" + stats.DeathsCost; template.Get <LabelWidget>("EXPERIENCE").GetText = () => stats.Experience.ToString(); template.Get <LabelWidget>("ACTIONS_MIN").GetText = () => AverageOrdersPerMinute(stats.OrderCount); return(template); } ScrollItemWidget SetupPlayerScrollItemWidget(ScrollItemWidget template, Player player) { return(ScrollItemWidget.Setup(template, () => false, () => { var playerBase = world.ActorsHavingTrait <BaseBuilding>().FirstOrDefault(a => !a.IsDead && a.Owner == player); if (playerBase != null) { worldRenderer.Viewport.Center(playerBase.CenterPosition); } })); }
public SupportPowerBinWidget(World world, WorldRenderer worldRenderer) { this.world = world; this.worldRenderer = worldRenderer; }
public static void InitializeWithMod(string mod, string replay) { // Clear static state if we have switched mods LobbyInfoChanged = () => { }; AddChatLine = (a, b, c) => { }; ConnectionStateChanged = om => { }; BeforeGameStart = () => { }; Ui.ResetAll(); worldRenderer = null; if (server != null) { server.Shutdown(); } if (orderManager != null) { orderManager.Dispose(); } // Fall back to default if the mod doesn't exist if (!ModMetadata.AllMods.ContainsKey(mod)) { mod = new GameSettings().Mod; } Console.WriteLine("Loading mod: {0}", mod); Settings.Game.Mod = mod; Sound.StopMusic(); Sound.StopVideo(); Sound.Initialize(); modData = new ModData(mod); Renderer.InitializeFonts(modData.Manifest); modData.InitializeLoaders(); using (new PerfTimer("LoadMaps")) modData.MapCache.LoadMaps(); PerfHistory.items["render"].hasNormalTick = false; PerfHistory.items["batches"].hasNormalTick = false; PerfHistory.items["render_widgets"].hasNormalTick = false; PerfHistory.items["render_flip"].hasNormalTick = false; JoinLocal(); if (Settings.Server.Dedicated) { while (true) { Settings.Server.Map = WidgetUtils.ChooseInitialMap(Settings.Server.Map); Settings.Save(); CreateServer(new ServerSettings(Settings.Server)); while (true) { System.Threading.Thread.Sleep(100); if (server.State == Server.ServerState.GameStarted && server.Conns.Count < 1) { Console.WriteLine("No one is playing, shutting down..."); server.Shutdown(); break; } } if (Settings.Server.DedicatedLoop) { Console.WriteLine("Starting a new server instance..."); modData.MapCache.LoadMaps(); continue; } break; } Environment.Exit(0); } else { modData.LoadScreen.StartGame(); Settings.Save(); if (!string.IsNullOrEmpty(replay)) { Game.JoinReplay(replay); } } }
public IEnumerable <IRenderable> Render(WorldRenderer wr) { return(anim.Render(pos, wr.Palette(palette))); }
public EditorActorBrush(EditorViewportControllerWidget editorWidget, ActorInfo actor, PlayerReference owner, WorldRenderer wr) { this.editorWidget = editorWidget; worldRenderer = wr; world = wr.World; editorLayer = world.WorldActor.Trait <EditorActorLayer>(); Actor = actor; this.owner = owner; preview = editorWidget.Get <ActorPreviewWidget>("DRAG_ACTOR_PREVIEW"); preview.GetScale = () => worldRenderer.Viewport.Zoom; preview.IsVisible = () => editorWidget.CurrentBrush == this; var buildingInfo = actor.Traits.GetOrDefault <BuildingInfo>(); if (buildingInfo != null) { locationOffset = -FootprintUtils.AdjustForBuildingSize(buildingInfo); previewOffset = FootprintUtils.CenterOffset(world, buildingInfo); } var td = new TypeDictionary(); td.Add(new FacingInit(facing)); td.Add(new TurretFacingInit(facing)); td.Add(new OwnerInit(owner.Name)); td.Add(new FactionInit(owner.Faction)); preview.SetPreview(actor, td); var ios = actor.Traits.GetOrDefault <IOccupySpaceInfo>(); if (ios != null) { footprint = ios.OccupiedCells(actor, CPos.Zero) .Select(c => c.Key - CPos.Zero) .ToArray(); } else { footprint = new CVec[0]; } // The preview widget may be rendered by the higher-level code before it is ticked. // Force a manual tick to ensure the bounds are set correctly for this first draw. Tick(); }
public WorldCommandWidget(World world, WorldRenderer worldRenderer) { this.world = world; this.worldRenderer = worldRenderer; radarPings = world.WorldActor.TraitOrDefault <RadarPings>(); }
protected override IEnumerable <IRenderable> RenderAboveShroud(WorldRenderer wr, World world) { yield break; }
public IEnumerable <IRenderable> Render(WorldRenderer wr) { return(SpriteRenderable.None); }
public Rectangle ScreenBounds(WorldRenderer wr) { return(Rectangle.Empty); }
public void CachePalette(WorldRenderer wr, Player owner) { PaletteReference = wr.Palette(IsPlayerPalette ? Palette + owner.InternalName : Palette); }
IEnumerable <IRenderable> IEffect.Render(WorldRenderer wr) { return(SpriteRenderable.None); }
public IEnumerable <IRenderable> Render(WorldRenderer r) { yield break; }
void Awake() { if (WRENDERER == null) { WRENDERER = this; } else if (WRENDERER != this) { Destroy(gameObject); } }
public ScriptContext(World world, WorldRenderer worldRenderer, IEnumerable <string> scripts) { runtime = new MemoryConstrainedLuaRuntime(); Log.AddChannel("lua", "lua.log"); World = world; WorldRenderer = worldRenderer; knownActorCommands = Game.ModData.ObjectCreator .GetTypesImplementing <ScriptActorProperties>() .ToArray(); ActorCommands = new Cache <ActorInfo, Type[]>(FilterActorCommands); var knownPlayerCommands = Game.ModData.ObjectCreator .GetTypesImplementing <ScriptPlayerProperties>() .ToArray(); PlayerCommands = FilterCommands(world.Map.Rules.Actors["player"], knownPlayerCommands); runtime.Globals["GameDir"] = Platform.GameDir; runtime.DoBuffer(File.Open(Platform.ResolvePath(".", "lua", "scriptwrapper.lua"), FileMode.Open, FileAccess.Read).ReadAllText(), "scriptwrapper.lua").Dispose(); tick = (LuaFunction)runtime.Globals["Tick"]; // Register globals using (var fn = runtime.CreateFunctionFromDelegate((Action <string>)FatalError)) runtime.Globals["FatalError"] = fn; runtime.Globals["MaxUserScriptInstructions"] = MaxUserScriptInstructions; using (var registerGlobal = (LuaFunction)runtime.Globals["RegisterSandboxedGlobal"]) { using (var fn = runtime.CreateFunctionFromDelegate((Action <string>)LogDebugMessage)) registerGlobal.Call("print", fn).Dispose(); // Register global tables var bindings = Game.ModData.ObjectCreator.GetTypesImplementing <ScriptGlobal>(); foreach (var b in bindings) { var ctor = b.GetConstructors(BindingFlags.Public | BindingFlags.Instance).FirstOrDefault(c => { var p = c.GetParameters(); return(p.Length == 1 && p.First().ParameterType == typeof(ScriptContext)); }); if (ctor == null) { throw new InvalidOperationException("{0} must define a constructor that takes a ScriptContext context parameter".F(b.Name)); } var binding = (ScriptGlobal)ctor.Invoke(new[] { this }); using (var obj = binding.ToLuaValue(this)) registerGlobal.Call(binding.Name, obj).Dispose(); } } // System functions do not count towards the memory limit runtime.MaxMemoryUse = runtime.MemoryUse + MaxUserScriptMemory; using (var loadScript = (LuaFunction)runtime.Globals["ExecuteSandboxedScript"]) { foreach (var s in scripts) { loadScript.Call(s, world.Map.Open(s).ReadAllText()).Dispose(); } } }
public World Initialize(bool loadWorld = false) { simplex = new SimplexNoise(GameManager.gameSeed); octaves = Random.Range(4, 4); multiplier = Random.Range(10, 10); amplitude = Random.Range(0.6f, 1f); lacunarity = Random.Range(0.7f, .9f); dAmplitude = Random.Range(0.5f, .1f); if (loadWorld) { activeWorld = LoadWorld(); } else { activeWorld = new World(); activeWorld.PrepForCache(worldScale, worldSubdivisions); } //Seed the world heights SetHeights(); //CreateOcean(); currentWorldObject = new GameObject("World"); currentWorldTrans = currentWorldObject.transform; //currentWorld = new World(WorldSize.Small, WorldType.Verdant, Season.Spring, AxisTilt.Slight); worldRenderer = GetComponent<WorldRenderer>(); //changed this to run RenderPlates instead of RenderWorld foreach (GameObject g in worldRenderer.RenderPlates(activeWorld, regularTileSet)) { g.transform.parent =currentWorldTrans; } //layermask = 1 << 8; // Layer 8 is set up as "Chunk" in the Tags & Layers manager labelDirections = true; //DrawHexIndices(); return activeWorld; }
public CncWorldInteractionControllerWidget(World world, WorldRenderer worldRenderer) : base(world, worldRenderer) { tooltipContainer = Lazy.New(() => Ui.Root.Get <TooltipContainerWidget>(TooltipContainer)); }