/// <summary> /// Initializes a new instance of the <see cref="Client.Common.Views.TileTouchHandler"/> class. /// </summary> /// <param name="worldLayer">World layer.</param> public TileTouchHandler(WorldLayerHex worldLayer) { m_timer = new Stopwatch(); Gesture = TouchGesture.None; m_worldLayer = worldLayer; m_startLocation = new CCPoint(1, 1); TouchHandler.Instance.ListenBegan(m_worldLayer, OnTouchesBegan); TouchHandler.Instance.ListenEnded(m_worldLayer, OnTouchesEnded); TouchHandler.Instance.ListenMoved(m_worldLayer, OnTouchesMoved); }
/// <summary> /// Initializes a new instance of the <see cref="Client.Common.Views.GameScene"/> class. /// </summary> /// <param name="mainWindow">Main window.</param> public GameScene(CCWindow mainWindow) : base(mainWindow) { WorldLayerHex = new WorldLayerHex(this); HUD = new Client.Common.Views.HUD.HUDLayer(this); DebugLayer = new DebugLayer(); Worker.Instance.Init(WorldLayerHex); TouchHandler.Instance.Init(WorldLayerHex); AddChild(WorldLayerHex); AddChild(HUD); AddChild(DebugLayer); }
/// <summary> /// Converts the given world space position to a PositionI /// </summary> /// <returns>PositionI of the given world space.</returns> /// <param name="point">Point which should be converted.</param> /// <param name="worldLayer">World layer.</param> public static PositionI WorldspaceToPositionI(CCPoint point, WorldLayerHex worldLayer) { var regionPos = WorldspaceToRegion(point); var startRegionPoint = RegionToWorldspace(regionPos); var regionView = worldLayer.GetRegionViewHex(regionPos); if (regionView != null) { var tileCoord = regionView.GetTileMap().LayerNamed(ClientConstants.LAYER_TERRAIN).ClosestTileCoordAtNodePosition(point - startRegionPoint); tileCoord.Row = Math.Max(tileCoord.Row, -tileCoord.Row); tileCoord.Column = Math.Max(tileCoord.Column, -tileCoord.Column); var cellPos = new CellPosition( tileCoord.Column % Constants.REGION_SIZE_X, tileCoord.Row % Constants.REGION_SIZE_Y); return new PositionI(regionPos, cellPos); } return null; }
/// <summary> /// Initializes a new instance of the <see cref="Client.Common.Views.MenuView"/> class. /// </summary> /// <param name="worldlayer">The worldlayer.</param> /// <param name="center">The menu center position.</param> /// <param name="menuType">The menu type.</param> public MenuView(WorldLayerHex worldlayer, PositionI center, MenuType menuType) { m_center = center; var defM = Core.Models.World.Instance.DefinitionManager; if (menuType == MenuType.Headquarter) { m_types = new Core.Models.Definitions.Definition[6]; m_types[0] = defM.GetDefinition(EntityType.Headquarter); m_types[1] = defM.GetDefinition(EntityType.Headquarter); m_types[2] = defM.GetDefinition(EntityType.Headquarter); m_types[3] = defM.GetDefinition(EntityType.Headquarter); m_types[4] = defM.GetDefinition(EntityType.Headquarter); m_types[5] = defM.GetDefinition(EntityType.Headquarter); } else if (menuType == MenuType.Major) { m_types = new Core.Models.Definitions.Definition[0]; } else if (menuType == MenuType.Unity) { m_types = new Core.Models.Definitions.Definition[6]; m_types[0] = defM.GetDefinition(EntityType.Mage); m_types[1] = defM.GetDefinition(EntityType.Fencer); m_types[2] = defM.GetDefinition(EntityType.Warrior); m_types[3] = defM.GetDefinition(EntityType.Scout); m_types[4] = defM.GetDefinition(EntityType.Archer); m_types[5] = defM.GetDefinition(EntityType.Archer); } else if (menuType == MenuType.Empty) { m_types = new Core.Models.Definitions.Definition[6]; } else { m_types = new Core.Models.Definitions.Definition[0]; } m_worldLayer = worldlayer; m_extendedMenuPositions = new Dictionary<PositionI, Core.Models.Definitions.Definition>(); m_baseMenuPositions = new Dictionary<PositionI, CCTileGidAndFlags>(); m_sprites = new Dictionary<PositionI, CCSprite>(); }
/// <summary> /// Init the specified worldLayer. /// </summary> /// <param name="worldLayer">World layer.</param> public void Init(WorldLayerHex worldLayer) { WorldLayerHex = worldLayer; }