internal WIGInternalImpl(Engine engine, LuaDataFactory dataFactory) { this._engine = engine; this._dataFactory = dataFactory; this._mathHelper = new GeoMathHelper(dataFactory); LuaDataContainer wiginternal = dataFactory.CreateContainerAt("WIGInternal"); // WIGInternal Lua hooks: UI-related events AddMethodToTable(wiginternal, "LogMessage"); AddMethodToTable(wiginternal, "MessageBox"); AddMethodToTable(wiginternal, "GetInput"); AddMethodToTable(wiginternal, "NotifyOS"); AddMethodToTable(wiginternal, "ShowScreen"); AddMethodToTable(wiginternal, "ShowStatusText"); // WIGInternal Lua hooks: gameplay-related events AddMethodToTable(wiginternal, "AttributeChangedEvent"); AddMethodToTable(wiginternal, "CartridgeEvent"); AddMethodToTable(wiginternal, "CommandChangedEvent"); AddMethodToTable(wiginternal, "InventoryEvent"); AddMethodToTable(wiginternal, "MediaEvent"); AddMethodToTable(wiginternal, "TimerEvent"); AddMethodToTable(wiginternal, "ZoneStateChangedEvent"); // WIGInternal Lua hooks: internal functions AddMethodToTable(wiginternal, "IsPointInZone", "IsPointInZoneLua"); AddMethodToTable(wiginternal, "VectorToZone", "VectorToZoneLua"); AddMethodToTable(wiginternal, "VectorToSegment", "VectorToSegmentLua"); AddMethodToTable(wiginternal, "VectorToPoint", "VectorToPointLua"); AddMethodToTable(wiginternal, "TranslatePoint", "TranslatePointLua"); // Marks package WIGInternal as loaded dataFactory.SetContainerAt("package.loaded.WIGInternal", wiginternal); dataFactory.SetContainerAt("package.preload.WIGInternal", wiginternal); // Loads the Wherigo LUA engine. dataFactory.LoadAndRunEngine(); }
/// <summary> /// Initializes a new instance of the <see cref="WF.Player.CartridgeDetailViewModel"/> class. /// </summary> /// <param name="tag">CartridgeTag to show.</param> public CartridgeDetailViewModel(CartridgeTag tag) { this.cartridgeTag = tag; this.geoMathHelper = new GeoMathHelper(); this.target = new ZonePoint(cartridgeTag.Cartridge.StartingLocationLatitude, cartridgeTag.Cartridge.StartingLocationLongitude, 0); Direction = double.NegativeInfinity; Distance = double.NegativeInfinity; if (App.GPS.LastKnownPosition != null) { HandlePositionChanged(this, new PositionEventArgs(App.GPS.LastKnownPosition)); } }
/// <summary> /// Initializes a new instance of the <see cref="WF.Player.GameMainViewModel"/> class. /// </summary> /// <param name="gameModel">Game model.</param> public GameMainViewModel(GameModel gameModel) { this.gameModel = gameModel; this.geoMathHelper = new GeoMathHelper(); Position = App.GPS.LastKnownPosition; // Deactivate always on behavior of screen DependencyService.Get<IScreen>().AlwaysOn(true); this.gameModel.DisplayChanged += OnDisplayChanged; IsBusy = true; }
/// <summary> /// Initializes a new instance of the <see cref="WF.Player.GameDetailViewModel"/> class. /// </summary> public GameDetailViewModel(UIObject activeObject = null) { this.geoMathHelper = new GeoMathHelper(); this.activeObject = activeObject; Position = App.GPS.LastKnownPosition; }