Inheritance: MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler
Example #1
0
    public void DroppedOn(DropZone dropZone)
    {
        droppedOnZone = true;
        DropZoneBelow = dropZone;

        AboveDropZone = true;
    }
Example #2
0
    // Start is called before the first frame update
    void Start()
    {
        zone = GameObject.FindGameObjectWithTag("Campo").GetComponent <DropZone>();

        //Luces
        //imagenActiva = GameObject.Find("TierraImagenL").gameObject;
        //imagenActiva.SetActive(false);

        //Cargar Jugador
        PlayersArray = GameObject.FindGameObjectsWithTag("Jugador");
        Jugador      = PlayersArray[0];

        //Cargar ComboPanel
        ComboPanel   = GameObject.FindGameObjectsWithTag("ComboPanelIA");
        ComboPanelIA = ComboPanel[0];

        //Cargar IA
        PlayersArray = GameObject.FindGameObjectsWithTag("IA");
        IA           = PlayersArray[0];

        DropZone.obtenerJugador(Jugador);

        //Iniciar Partida
        state = BattleState.START;
        SetupBattle();
    }
Example #3
0
    void HitEnemy()
    {
        GameObject CardDropArea = GameObject.Find("CardDropArea");
        DropZone   dropZone     = CardDropArea.GetComponent <DropZone>();

        GameObject[] Enemies = GameObject.FindGameObjectsWithTag("Enemy");
        foreach (GameObject Enemy in Enemies)
        {
            BaseEnemy     enemy = Enemy.GetComponent <BaseEnemy> ();
            GameObject    Tile  = GameObject.Find("Hex_" + enemy.TileX + "_" + enemy.TileY);
            ClickableTile tile  = Tile.GetComponent <ClickableTile> ();
            if (tile.willTakeHit)
            {
                enemy.Recentlyhit = true;
                HealthBar enemyHpBar = enemy.GetComponent <HealthBar> ();
                //TODO
                //if lauseke johonkin, joka tarkistaa onko kyseess' physDMG vai magic DMG
                enemyHpBar.CurHealth -= (dropZone.damage / enemy.HpPointsMax) * (100 * (enemy.PhysDmgReduction + enemy.MagicDmgReduction));
                enemyHpBar.SetHealthBarEnemy();
                enemyHpBar.parentName = Enemy.name;
                enemyHpBar.KillUnit();
                tile.willTakeHit = false;
            }
        }
    }
        private void OnSceneGUI(SceneView sv)
        {
            var tbl = FindObjectOfType <Table>();

            if (tbl == null)
            {
                return;
            }

            dz       = null;
            tablePos = Vector3.zero;

            Ray ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);

            Collider tableCollider = tbl.GetComponent <Collider>();

            if (tableCollider.Raycast(ray, out var hit, Mathf.Infinity))
            {
                tablePos = hit.point;
                if (RaycastingHelper.RaycastToTableDropZones(out var hit2, tablePos))
                {
                    dz = hit2.transform.GetComponent <DropZone>();
                }
            }
        }
 public void OnBeginDrag(PointerEventData d)
 {
     if (gameState.cardIsPlayable(this, ((Card)(this.GetComponent <Card>())).ac))
     {
         this.dragging           = true;
         dragInProgress          = true;
         this.vOffset.x          = this.transform.position.x - d.position.x;
         this.vOffset.y          = this.transform.position.y - d.position.y;
         this.transform.rotation = vZero3D;
         this.returnParent       = this.transform.parent;
         DropZone parentZone = (DropZone)this.transform.parent.gameObject.GetComponent <DropZone>();
         if (parentZone != null)
         {
             this.origin = parentZone.slotIndex > -1 ? enCardLocation.Slot : enCardLocation.Hand;
         }
         this.transform.SetParent(this.transform.parent.parent);
         this.GetComponent <CanvasGroup>().blocksRaycasts = false;
         this.deflate();
     }
     else
     {
         this.dragging  = false;
         dragInProgress = false;
     }
 }
Example #6
0
    public void ResetProblem()
    {
        DropZone.ClearDropzone(playerTable);
        DropZone.ClearDropzone(playerWallet);
        currentBalance = 0;
        toggleCounter++;

        if (toggleCounter == toggleThreshold)
        {
            if (UnityEngine.Random.Range(0, 2) == 1)
            {
                toggleMoneyShown = true;
            }
            else
            {
                toggleMoneyShown = false;
            }
            Debug.Log("Toggle money shown!! " + toggleMoneyShown);
            toggleCounter = 0;
        }
        probGen.GenerateNewProblem(); //duplicate?
        probGen.requiredAmount = ProblemManager.newProblem.GetUSDSum();
        bombExplosionAnimation.SetActive(false);
        isGameOver = false;
    }
Example #7
0
        /// <summary>
        /// Tries to put object at the spot.
        /// </summary>
        /// <returns>
        /// True if object was accepted, otherwise - false.
        /// </returns>
        public bool PutAt(BaseObjectBehaviour obj, long parentUID, Vector3 pos)
        {
            TriggerOnDragStart();
            bool       res = false;
            RaycastHit hit;
            var        root = uidm.GetRootParentUID(parentUID);

            // TODO: find the root parent
            if (root == hand.ModelData.uid)
            {
                res = RaycastingHelper.RaycastToHandDropZones(out hit, pos, handPlane.position);
            }
            else if (root == table.ModelData.uid)
            {
                res = RaycastingHelper.RaycastToTableDropZones(out hit, pos);
            }
            else
            {
                res = RaycastingHelper.RaycastToTableDropZones(out hit, pos);
            }

            TriggerOnDragStop();

            if (res)
            {
                DropZone dz = hit.transform.GetComponent <DropZone>();
                return(dz.Drop(obj, hit.point));
            }

            return(false);
        }
Example #8
0
    protected override void Awake()
    {
        base.Awake();

        DropZoneComponent    = GetComponent <DropZone>();
        contextMenuComponent = GetComponent <ContextMenu>();
    }
Example #9
0
    private void MainGameplayLoop()
    {
        if (bombFuseImg.fillAmount < 0.2)
        {
            audioPlayer.StartBombTick();
        }
        else
        {
            audioPlayer.StopBombTick();
        }
        currentBalance = DropZone.SumOfZoneInUSD(playerTable.GetComponent <DropZone>());
        //if (currentBalance != requiredAmt)
        //{

        //}

        if (currentBalance != previousBalance)
        {
            UpdatePoints();
            // Debug.Log("Current balance : " + currentBalance);
            // Debug.Log("required balance : " + probGen.requiredAmount);
        }
        previousBalance = currentBalance;
        requiredAmt     = probGen.requiredAmount;
    }
Example #10
0
    public void clickOnItem()
    {
        inventory = GameManeger.instance;
        inventory.OnItemChangedCallback += UpdateUI;
        inventorySlots = itemsParent.GetComponentsInChildren <InventorySlot>();
        InventorySlot inventoryOne = (ingredientOne.GetComponentInChildren <InventorySlot>());
        InventorySlot inventoryTwo = (ingredientTwo.GetComponentInChildren <InventorySlot>());
        Item          itemOne      = inventoryOne.getItem();
        Item          itemTwo      = inventoryTwo.getItem();

        inventory.Remove(itemOne);
        inventory.Remove(itemTwo);
        Item myItem = itemOne.makes[0];

        inventory.Add(myItem);
        foreach (Transform child in ingredientOne.transform)
        {
            child.gameObject.SetActive(false);
            DropZone dz = child.GetComponent <DropZone>();
            if (dz)
            {
                dz.myItem = null;
            }
        }
        foreach (Transform child in ingredientTwo.transform)
        {
            child.gameObject.SetActive(false);
            DropZone dz = child.GetComponent <DropZone>();
            if (dz)
            {
                dz.myItem = null;
            }
        }
        this.transform.GetComponent <Button>().interactable = false;
    }
Example #11
0
 public void Construct(Game game, DropZone playZone, DropZone rigZone, DropZone heapZone)
 {
     this.game     = game;
     this.playZone = playZone;
     this.rigZone  = rigZone;
     this.heapZone = heapZone;
 }
Example #12
0
    protected virtual bool CheckForDropZone(out DropZone dropZone)
    {
        dropZone = null;
        bool found = false;

        List <Collider2D> allOverlappedColliders = new List <Collider2D>();
        ContactFilter2D   filter = new ContactFilter2D();

        filter.SetLayerMask(dropZoneLayerMask);

        int colliderCount = _collider.OverlapCollider(filter, allOverlappedColliders);

        for (int i = 0; i < colliderCount; i++)
        {
            DropZone candidate = allOverlappedColliders[i].GetComponent <DropZone>();

            if (candidate != null)
            {
                if (candidate.CheckIfAccepted(this))
                {
                    dropZone = candidate;
                    found    = true;
                    break;
                }
            }
        }
        return(found);
    }
        void UpdateDrag()
        {
            var pos = mousePosition;

            dropZone = null;
            DragAndDrop.visualMode = DragAndDropVisualMode.Rejected;
            foreach (var dz in dropZones)
            {
                var rect = dz.rect;

                if (rect.Contains(pos))
                {
                    if (invalidDropNodes.Contains(dz.parent))
                    {
                        return;
                    }
                    if (!IsValidParent(dragNode, dz.parent))
                    {
                        return;
                    }
                    dropZone = dz;
                    if (Event.current.shift)
                    {
                        DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
                    }
                    else
                    {
                        DragAndDrop.visualMode = DragAndDropVisualMode.Move;
                    }
                    DragAndDrop.AcceptDrag();
                    return;
                }
            }
        }
Example #14
0
    void Start()
    {
        //Create Deck Button
        Button b = this.GetComponent <Button>();

        b.onClick.AddListener(FullDeal);
        GameObject ManagerHolder = GameObject.Find("GameManager");

        Manager = ManagerHolder.GetComponent <GameManager>();

        UIDisplay = this.transform.parent.Find("UI").GetComponent <UIController>();

        handDrop = PlayerHand.GetComponent <DropZone>();
        hand     = PlayerHand.GetComponent <Hand>();

        //create deck
        for (int i = 0; i < numAttack; i++)
        {
            fullDeck.Add(cardtypes[0]);
        }
        for (int i = 0; i < numDefense; i++)
        {
            fullDeck.Add(cardtypes[1]);
        }
        for (int i = 0; i < numMagic; i++)
        {
            fullDeck.Add(cardtypes[2]);
        }
        currentDeck = new List <Card>(fullDeck);
        isDealt     = false;
    }
Example #15
0
    public void OnBeginDrag(PointerEventData eventData)
    {
        LayoutElement layout = GetComponent <LayoutElement>();

        GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, layout.preferredWidth);
        GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, layout.preferredHeight);

        if (pickupSound != null)
        {
            FindObjectOfType <AudioManager>().PlayAudio(pickupSound);
        }
        if (bartenderCommentSound != null)
        {
            FindObjectOfType <AudioManager>().PlayAudio(bartenderCommentSound[Random.Range(0, bartenderCommentSound.Length)]);
        }

        parentToReturnTo = this.transform.parent;
        DropZone parentDropZone = GetComponentInParent <DropZone>();

        if (parentDropZone != null)
        {
            if (parentDropZone.itemSlot)
            {
                parentDropZone.filled   = false;
                parentDropZone.itemName = "";
                GetComponentInParent <ItemSelectionManager>().checkSelection();
            }
        }
        this.transform.SetParent(this.transform.parent.parent);
        GetComponent <CanvasGroup>().blocksRaycasts = false;
    }
Example #16
0
 public HeapPile(GameObject gameObject, Game game, BoardParts parts)
 {
     this.gameObject = gameObject;
     this.printer    = parts.Print(gameObject);
     this.DropZone   = gameObject.AddComponent <DropZone>();
     game.runner.zones.heap.zone.ObserveAdditions(this);
 }
Example #17
0
        public int OnBeforeCloseSolution(object pUnkReserved)
        {
            try {
                JiraEditorLinkManager.OnSolutionClosed();
                if (ToolWindowManager.Instance.AtlassianWindow == null)
                {
                    return(VSConstants.S_OK);
                }
                JiraServerModel.Instance.clear();
                BambooServerModel.Instance.clear();
                AtlassianPanel.Instance.shutdown();
                AtlassianPanel.Instance.FrameVisible = false;
                ParameterStoreManager.Instance.clear();
                JiraIssueListModelImpl.Instance.removeAllListeners();
                IssueDetailsWindow.Instance.clearAllIssues();
                IssueDetailsWindow.Instance.FrameVisible = false;
                BuildDetailsWindow.Instance.clearAllBuilds();
                BuildDetailsWindow.Instance.FrameVisible   = false;
                ToolWindowManager.Instance.AtlassianWindow = null;
                Autoupdate.Instance.shutdown();
                DropZone.closeAll();
                JiraServerExplorer.closeAll();
            }
            catch (Exception e) {
                Debug.WriteLine(e);
            }

            return(VSConstants.S_OK);
        }
Example #18
0
    //Used to implement both a double click on keyboard or a single tap with fingers
    public void OnPointerClick(PointerEventData eventData)
    {
        if (!Card.isFlippingOn && !GameController.isTranslationOn && !isDragging)
        {
            if ((Time.time > timerClicks && Time.time <= timerClicks + 0.5) || (numOfClicks == 1 && Time.time > timerDoubleClick && Time.time <= timerDoubleClick + 0.5))
            {
                numOfClicks = 0;
                //Here send Card to drop zone if it's correct
                GameObject[] dropZones = GameObject.FindGameObjectsWithTag("DropArea");
                for (int i = 0; i < dropZones.Length; ++i)
                {
                    DropZone thisDropZone = dropZones[i].GetComponent <DropZone>();
                    if (thisDropZone.thisSeme == thisSeme)
                    {
                        thisDropZone.AutomaticCard(this.gameObject);
                        break;
                    }
                }
            }

            if (numOfClicks == 0)
            {
                timerDoubleClick = Time.time;
                numOfClicks++;
            }

            if (numOfClicks == 1 && Time.time > timerDoubleClick + 0.5)
            {
                numOfClicks      = 1;
                timerDoubleClick = Time.time;
            }
        }
    }
Example #19
0
 //For ignoring items dropped on music/contacts.
 void IgnoreDrop(DropZone dropZone, Draggable draggable)
 {
     if (draggable != null)
     {
         draggable.parentToReturnTo = draggable.originalParent;
     }
 }
Example #20
0
    public void CheckDropZone()
    {
        GameObject CardDropArea = GameObject.Find("CardDropArea");
        GameObject hand         = GameObject.Find("Hand");
        DropZone   dropZone     = CardDropArea.GetComponent <DropZone>();

        Draggable[]    cardsToMove    = CardDropArea.GetComponentsInChildren <Draggable>();
        GameObject     HighlightTiles = GameObject.Find("_Scripts");
        HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> ();

        highlightTiles.HideAllAllowedTiles();

        if (cardsToMove.Length >= 1)
        {
            TurnEverythingFalse();
            dropZone.damage       = 0;
            dropZone.movementCost = 0;
            dropZone.effect       = Effects.Empty;
            foreach (Draggable card in cardsToMove)
            {
                if (transform.name != "CardDropArea")
                {
                    card.transform.SetParent(hand.transform);
                }
            }
        }
    }
Example #21
0
 private void OnTriggerExit2D(Collider2D other)
 {
     if (other.CompareTag("DropZone"))
     {
         currentDropZone = null;
     }
 }
Example #22
0
        /// <summary>
        /// Defines the media element to drag.
        /// </summary>
        private void DropZone_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (!VideoControl.SourceProvider.MediaPlayer.CouldPlay)
            {
                return;
            }

            var scaleTransform = (ScaleTransform)((TransformGroup)VideoControl.RenderTransform).Children.First(tr => tr is ScaleTransform);
            var elementHeight  = VideoControl.ActualHeight * scaleTransform.ScaleY;
            var elementWidth   = VideoControl.ActualWidth * scaleTransform.ScaleX;

            if (elementWidth <= DropZone.ActualWidth && elementHeight <= DropZone.ActualHeight)
            {
                return;
            }

            VideoControl.Cursor = Cursors.SizeAll;
            DropZone.CaptureMouse();

            var translateTransform = (TranslateTransform)((TransformGroup)VideoControl.RenderTransform).Children.First(tr => tr is TranslateTransform);

            MousePosition  = e.GetPosition(DropZone);
            OriginPosition = new Point(Math.Round(translateTransform.X, MidpointRounding.AwayFromZero), Math.Round(translateTransform.Y, MidpointRounding.AwayFromZero));

            SystemParametersInfo(0x0071, 0, 3, 0);
        }
Example #23
0
    public void DropItem(GameObject dropZone, Vector3 dropPosition)
    {
        DropZone dropZoneScript = dropZone.GetComponent <DropZone>();

        dropZoneScript.DropItem(_objectOnMouse, dropPosition);
        m_isDragging.Value = false;
    }
Example #24
0
    public void OnDropPlaceEnter(DropZone dropZone)
    {
        DropZoneBelow = dropZone;

        AboveDropZone = true;

        dropPlaceEnterEvent.Invoke(dropZone);
    }
Example #25
0
 public void Construct(Game game, DropZone playZone)
 {
     this.game     = game;
     this.playZone = playZone;
     game.runner.paidWindow.ObserveAbility(this);
     game.runner.zones.rig.zone.ObserveAdditions(this);
     game.runner.zones.rig.zone.ObserveRemovals(this);
 }
Example #26
0
    public void OnDrop(PointerEventData eventData)
    {
        //Debug.Log (eventData.pointerDrag.name + " OnDrop to " + gameObject.name);

        Dragable dropedObject = eventData.pointerDrag.GetComponent <Dragable>();

        if (dropedObject != null && !occupied)
        {
            // removing the object from the previous DropZone && unregistering it
            if (dropedObject.GetDropZoneParent() != null)
            {
                DropZone dod   = dropedObject.GetDropZoneParent(); // Droped Object Dropzone
                int      dodsn = dod.GetSlotNumber();              // Droped Object Dropzone Slot Number
                dod.objectInThisSpot = null;
                GCDnD.unsetInputHiragana(dodsn);
            }

            dropedObject.parentToReturnTo = this.transform;
            objectInThisSpot = eventData.pointerDrag;

            int slotNum = this.GetSlotNumber();
            GCDnD.setInputHirgana(slotNum, eventData.pointerDrag.name);

            this.transform.GetComponent <Image>().color = colorWhite;
        }
        else if (dropedObject != null && occupied)
        {
            int slotNum = -1;

            // Object In this spot handler for moving to new spot
            Transform parentTransform = dropedObject.parentToReturnTo;
            DropZone  parentDropZone  = parentTransform.GetComponent <DropZone>();
            if (parentDropZone != null)
            {
                parentDropZone.objectInThisSpot = objectInThisSpot;
            }

            objectInThisSpot.GetComponent <Dragable>().parentToReturnTo = dropedObject.parentToReturnTo;
            objectInThisSpot.transform.SetParent(dropedObject.parentToReturnTo);
            objectInThisSpot.transform.SetSiblingIndex(dropedObject.GetPlaceholderSiblingIndex());
            if (dropedObject.GetDropZoneParent() != null)
            {
                slotNum = dropedObject.GetDropZoneParent().GetSlotNumber();
                GCDnD.setInputHirgana(slotNum, objectInThisSpot.name);
            }
            dropedObject.parentToReturnTo.transform.GetComponent <Image>().color = colorWhite;

            // Object coming into this spot handler
            dropedObject.parentToReturnTo = this.transform;
            eventData.pointerDrag.transform.SetParent(this.transform);
            objectInThisSpot = eventData.pointerDrag;
            slotNum          = this.GetSlotNumber();
            GCDnD.setInputHirgana(slotNum, eventData.pointerDrag.name);
            this.transform.GetComponent <Image>().color = colorWhite;
        }

        //Debug.Log("Occupied = " + occupied);
    }
Example #27
0
 public PaidWindowView(PaidWindow window, PaidWindowPass pass, DropZone paidChoice)
 {
     this.window     = window;
     this.pass       = pass;
     this.paidChoice = paidChoice;
     pass.Represent(window, paidChoice);
     SetActive(false);
     window.ObserveWindow(this);
 }
        /// <summary>
        /// Sets the dropzone attr.
        /// </summary>
        /// <param name="dropZone">The dropZone.</param>
        /// <returns>
        /// The VTag instance
        /// </returns>
        public VTag SetDropZoneAttr(DropZone dropZone)
        {
            if (!string.IsNullOrWhiteSpace(dropZone.ToString()))
            {
                return this.AddAttribute(WellKnownXNames.DropZone, dropZone.ToString());
            }

            return this.RemoveAttribute(WellKnownXNames.DropZone);
        }
Example #29
0
        public override void OnDropEffect()
        {
            string   enemyRowName = this.ToRow.name.Contains("Enemy") ? this.ToRow.name.Substring(5) : "Enemy" + this.ToRow.name;
            DropZone enemyRow     = GameObject.Find(enemyRowName).GetComponent <DropZone>();

            Debuff(this.ToRow);
            Debuff(enemyRow);
            ToRow.currentRow.AddWeatherEffectToRow();
        }
Example #30
0
 private void OnRoundEnd()
 {
     NoticeDisplayer.ShowMessage("Truck Unloaded!", 1.5f);
     Penguin.DisableCollisions();
     Penguin.ClearBags();
     DropZone.ClearBags();
     m_state = mg_bc_EGameState.STATE_ROUND_TRANSITION;
     Truck.StartRoundTransition(OnRoundTransitionHalf, OnRoundTransitionEnded);
 }
Example #31
0
    public void OnDropPlaceExit(DropZone dropZone)
    {
        AboveDropZone = false;
        if (IsDragging)
        {
            DropZoneBelow = null;

            dropPlaceExitEvent.Invoke(dropZone);
        }
    }
	// Refactor
	public void DropHere(BlockGroup group, DropZone dropenOn, bool WithAnimation = false){
		BoxCell cellDropenOn = dropenOn.GetComponent<BoxCell>();
		foreach (var position in group.positions) {
			(grid.GetCell (cellDropenOn.coord + position) as BoxCell).SetColor (group.color);
		}

		if (OnSuccessfulDrop != null)
			OnSuccessfulDrop (group, dropenOn);
		
		blocksContainer.blocks.Remove (group);
		Destroy (group.gameObject);

		grid.ClearSolvedRowsAndColumns ();
	}
        /// <summary>
        /// This is a javascript application.
        /// </summary>
        /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param>
        public Application(IApp page)
        {

            // 1e40:01:01 RewriteToAssembly error: System.MissingMethodException: Method not found: 'Void ScriptCoreLib.JavaScript.DOM.IWindow.add_onframe(System.Action`1<Int32>)'.

#if chrome_works_again
            #region AtFormCreated
            FormStyler.AtFormCreated =
                 s =>
                 {
                     s.Context.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

                     var x = new ChromeTCPServerWithFrameNone.HTML.Pages.AppWindowDrag().AttachTo(s.Context.GetHTMLTarget());
                 };
            #endregion


            // chrome 31 wont load view-source
            // chrome 33 shows black window. nice.
            #region ChromeTCPServer
            dynamic self = Native.self;
            dynamic self_chrome = self.chrome;
            object self_chrome_socket = self_chrome.socket;

            if (self_chrome_socket != null)
            {
                chrome.Notification.DefaultTitle = "Droplet";
                //chrome.Notification.DefaultIconUrl = new HTML.Images.FromAssets.Preview().src;

                ChromeTCPServer.TheServerWithStyledForm.Invoke(
                    AppSource.Text,
                    AtFormCreated: FormStyler.AtFormCreated
                );

                return;
            }
            #endregion
#endif


            #region clouds
            new WebGLClouds.HTML.Pages.Default().With(
                layout =>
                {
                    layout.body.AttachTo(page.clouds);

                    new WebGLClouds.Application(layout);
                }
            );
            #endregion



            page.header.style.backgroundColor = "";

            page.header.css.style.transition = "background-color 200ms linear";
            page.header.css.style.backgroundColor = "rgba(255, 255, 0, 0)";
            //page.header.css.style.backgroundColor = "rgba(255, 255, 0, 0.2)";

            page.header.css.hover.style.backgroundColor = "rgba(255, 255, 0, 1.0)";

            Native.window.onframe +=
                delegate
                {
                    if (Native.document.body.scrollTop == 0)
                        page.header.css.style.backgroundColor = "rgba(255, 255, 0, 0)";
                    else
                        page.header.css.style.backgroundColor = "rgba(0, 0, 0, 0.3)";

                };

            var oo = new List<THREE.Object3D>();

            var window = Native.window;

            var camera = new THREE.PerspectiveCamera(
                45,
                page.header.clientWidth / (double)page.header.clientHeight,
                1,
                2000
                );
            camera.position.z = 400;

            // scene

            var scene = new THREE.Scene();

            var ambient = new THREE.AmbientLight(0x101030);
            scene.add(ambient);

            var directionalLight = new THREE.DirectionalLight(0xffeedd);
            directionalLight.position.set(0, 0, 1);
            scene.add(directionalLight);

            var renderer = new THREE.WebGLRenderer();

            //renderer.domElement.AttachToDocument();
            renderer.domElement.AttachTo(page.header);
            renderer.setSize(page.header.clientWidth, page.header.clientHeight);
            //renderer.setSize(window.Width, window.Height);
            //renderer.domElement.style.SetLocation(0, 0);


            var mouseX = 0;
            var mouseY = 0;
            var st = new Stopwatch();
            st.Start();

            Native.window.onframe +=
                delegate
                {

                    oo.WithEach(
                        x =>
                            x.rotation.y = st.ElapsedMilliseconds * 0.001
                    );


                    camera.position.x += (mouseX - camera.position.x) * .05;
                    camera.position.y += (-mouseY - camera.position.y) * .05;

                    camera.lookAt(scene.position);

                    renderer.render(scene, camera);


                };

            Native.window.onresize +=
                delegate
                {
                    camera.aspect = page.header.clientWidth / (double)page.header.clientHeight;

                    camera.updateProjectionMatrix();

                    //renderer.setSize(window.Width, window.Height);
                    renderer.setSize(page.header.clientWidth, page.header.clientHeight);

                };




            var data = Book1.GetDataSet();

            #region bind
            Func<string, IHTMLElement, DataGridView> bind =
                (DataMember, c) =>
                {
                    var g = new DataGridView
                    {
                        BackgroundColor = Color.Transparent,


                        // does this work?
                        DefaultCellStyle = new DataGridViewCellStyle
                        {

                            SelectionBackColor = Color.Black,
                            SelectionForeColor = Color.Yellow,

                            //BackColor = Color.Transparent
                            //BackColor = Color.FromArgb(0x05, 0, 0, 0)
                            BackColor = Color.FromArgb(0x3f, 255, 255, 255)
                        },

                        ColumnHeadersDefaultCellStyle = new DataGridViewCellStyle
                        {

                            BackColor = Color.FromArgb(0x8f, 255, 255, 255)
                        },


                        SelectionMode = DataGridViewSelectionMode.FullRowSelect,
                        AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,

                        // do we have a test for this?
                        AllowUserToAddRows = false,

                        //AllowUserToDeleteRows = false,

                        RowHeadersVisible = false,


                        // cannot hide column headers yet
                        // script: error JSC1000: No implementation found for this native method, please implement [System.Windows.Forms.DataGridView.set_ColumnHeadersVisible(System.Boolean)]
                        //ColumnHeadersVisible = false,

                        DataSource = data,
                        DataMember = DataMember,
                    };

                    // this should be the one that maximizes itself onto the parent which is supposed to be absolute in size
                    //g.GetHTMLTarget().With(
                    //    div =>
                    //    {
                    //        //div.style.reset();

                    //        // no scrollbars, thanks
                    //        div.style.overflow = IStyle.OverflowEnum.hidden;
                    //        (div.style as dynamic).zIndex = "";

                    //        div.style.position = IStyle.PositionEnum.relative;
                    //        div.style.left = "";
                    //        div.style.top = "";
                    //        div.style.right = "";
                    //    }
                    //);

                   c.style.position = IStyle.PositionEnum.relative;
                    c.style.height = "20em";

                    c.Clear();
                    g.AttachControlTo(c);

                    return g;
                };
            #endregion


            bind("Assets", page.assets);
            bind("Transactions", page.transactions).ReadOnly = true;

            // script: error JSC1000: No implementation found for this native method, please implement [System.Data.DataTableCollection.get_Item(System.String)]
            var data_Assets = data.Tables["Assets"];
            var data_Transactions = data.Tables["Transactions"];


            #region data_Assets_NewRow
            Action<DataRow> data_Assets_NewRow =
                 SourceRow =>
                 {

                     var r = new Random();

                     new sack_of_gold2().Source.Task.ContinueWithResult(
                        o =>
                        {
                            o.position.y = -80;
                            scene.add(o);
                            oo.Add(o);

                            o.position.x = r.Next(-250, 250);
                            o.position.z = r.Next(-400, 200);
                            (o as dynamic).scale = new THREE.Vector3(0.5, 0.5, 0.5);

                            data_Assets.RowDeleting +=
                                (sender, e) =>
                                {
                                    if (SourceRow != e.Row)
                                        return;

                                    scene.remove(o);
                                    oo.Remove(o);

                                    data_Transactions.Rows.Add(
                                        "now", "item removed -" + SourceRow["Net worth"]
                                    );

                                };


                        }
                    );

                 };
            #endregion


            data_Assets.Rows.AsEnumerable().WithEach(data_Assets_NewRow);

            // "X:\jsc.svn\examples\javascript\DropFileIntoSQLite\DropFileIntoSQLite.sln"
            // X:\jsc.svn\examples\javascript\DragDataTableIntoCSVFile\DragDataTableIntoCSVFile\Application.cs
            #region ondragstart
            page.header.ondragstart +=
                e =>
                {
                    data_Assets.Rows.AsEnumerable().FirstOrDefault().With(
                        SourceRow =>
                        {
                            // x:\jsc.svn\examples\javascript\dropfileintosqlite\dropfileintosqlite\application.cs

                            data_Assets.Rows.Remove(SourceRow);
                            //data_Assets.Rows.RemoveAt(0);


                            var clipboard = new DataTable();

                            clipboard.Columns.AddRange(
                                Enumerable.ToArray(
                                    from x in data_Assets.Columns.AsEnumerable()
                                    select new DataColumn { ColumnName = x.ColumnName }
                                )
                            );

                            clipboard.Rows.Add(
                                Enumerable.ToArray(
                                    from x in data_Assets.Columns.AsEnumerable()
                                    select SourceRow[x]
                                )
                            );

                            e.dataTransfer.effectAllowed = "copy";

                            var clipboard_string = StringConversionsForDataTable.ConvertToString(clipboard);
                            e.dataTransfer.setData(typeof(DataTable).Name, clipboard_string);
                        }
                    );

                };
            #endregion


            // X:\jsc.svn\market\javascript\Abstractatech.JavaScript.FileStorage\Abstractatech.JavaScript.FileStorage\Application.cs
            var dz = new DropZone();


            var TimerHide = new ScriptCoreLib.JavaScript.Runtime.Timer(
                  delegate
                  {
                      dz.body.Orphanize();
                  }
              );

            #region ondragover
            Action<DragEvent> ondragover =
                evt =>
                {


                    evt.stopPropagation();
                    evt.preventDefault();


                    if (evt.dataTransfer.types.Contains(typeof(DataTable).Name.ToLower()))
                    {


                        evt.dataTransfer.dropEffect = "copy"; // Explicitly show this is a copy.

                        dz.body.AttachTo(Native.document.documentElement);
                        dz.bglayer.style.transition = "background-color 500ms linear";
                        dz.bglayer.style.backgroundColor = "rgba(0,0,0, 0.7)";

                        TimerHide.Stop();
                    }

                };

            Native.Document.body.ondragover += ondragover;
            dz.Container.ondragover += ondragover;
            #endregion



            dz.Container.ondragleave +=
                 evt =>
                 {
                     //Console.WriteLine("ondragleave");

                     //Console.WriteLine(" dz.Container.ondragleave");
                     TimerHide.StartTimeout(90);

                     evt.stopPropagation();
                     evt.preventDefault();

                 };

            Native.window.onblur +=
                delegate
                {
                    data_Transactions.Rows.Add(
                        //"now", "item added +" + SourceRow["Net worth"]
                        "now", "blur"
                    );

                };

            Native.window.onfocus +=
                delegate
                {
                    data_Transactions.Rows.Add(
                        //"now", "item added +" + SourceRow["Net worth"]
                        "now", "focus"
                    );

                };

            data_Assets_NewRow +=
                SourceRow =>
                {
                    data_Transactions.Rows.Add(
                        //"now", "item added +" + SourceRow["Net worth"]
                        "now", "item added"
                    );
                };

            data_Assets.TableNewRow +=
                (sender, e) =>
                {
                    data_Assets_NewRow(e.Row);
                };


            #region ondrop
            dz.Container.ondrop +=
                evt =>
                {
                    //Console.WriteLine("ondrop");

                    TimerHide.StartTimeout(90);

                    evt.stopPropagation();
                    evt.preventDefault();

                    if (evt.dataTransfer.items != null)
                    {
                        // X:\jsc.svn\examples\javascript\DragDataTableIntoCSVFile\DragDataTableIntoCSVFile\Application.cs

                        evt.dataTransfer.items.AsEnumerable().Where(
                            x =>

                                x.type.ToLower() ==

                                // let jsc type system sort it out?
                                // how much reflection does jsc give us nowadays?
                                typeof(DataTable).Name.ToLower()

                        ).WithEach(
                            async xx =>
                            {
                                // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dfnReturnLink-0
                                var DataTable_xml = await xx.getAsString();

                                var DataTable = StringConversionsForDataTable.ConvertFromString(DataTable_xml);

                                DataTable.Rows.AsEnumerable().WithEach(
                                    SourceRow =>
                                    {

                                        data_Assets.Rows.Add(
                                            Enumerable.ToArray(
                                                from x in data_Assets.Columns.AsEnumerable()
                                                select SourceRow[x]
                                            )
                                        );
                                    }
                                );
                            }
                        );
                    }
                };
            #endregion


        }
        public ApplicationContent(
            IApp page = null,
            IApplicationWebServiceX service = null)
        {
            // need absolute path when docked..
            page.style1.href = page.style1.href;

            // first order of business.
            // enable drop zone.
            var dz = new DropZone();


            dz.Container.AttachToDocument();
            dz.Container.Hide();

            var StayAlertTimer = default(Timer);
            var DoRefresh = default(Action);

            #region StayAlert
            Action<string> StayAlert =
                transaction_id =>
                {
                    StayAlertTimer = new Timer(
                        delegate
                        {
                            service.GetTransactionKeyAsync(
                                id =>
                                {
                                    if (id == transaction_id)
                                        return;

                                    // shot down during flight?
                                    if (!StayAlertTimer.IsAlive)
                                        return;

                                    Console.WriteLine("StayAlert " + new { id, transaction_id });

                                    DoRefresh();
                                }
                            );
                        }
                    );

                    StayAlertTimer.StartInterval(5000);
                };
            #endregion


            DoRefresh =
                delegate
                {
                    if (StayAlertTimer != null)
                        StayAlertTimer.Stop();

                    page.output.Clear();

                    new FileLoading().Container.AttachTo(page.output);

                    service.EnumerateFilesAsync(
                        y:
                        (
                            long ContentKey,
                            string ContentValue,
                            string ContentType,
                            long ContentBytesLength
                        ) =>
                        {
                            var e = new FileEntry();

                            #region ContentValue
                            e.ContentValue.value = ContentValue.TakeUntilLastIfAny(".");
                            e.ContentValue.onchange +=
                                delegate
                                {
                                    var ext = ContentValue.SkipUntilLastOrEmpty(".");

                                    if (ext != "")
                                        ext = "." + ext;

                                    ContentValue = e.ContentValue.value + ext;


                                    Console.WriteLine("before update!");

                                    service.UpdateAsync(
                                        ContentKey,
                                        ContentValue,
                                        // null does not really work?
                                        delegate
                                        {
                                            Console.WriteLine("update done!");
                                        }
                                    );

                                    e.open.href = Native.Document.location.href.TakeUntilLastIfAny("/") + "/io/" + ContentKey + "/" + ContentValue;
                                };
                            e.open.href = Native.Document.location.href.TakeUntilLastIfAny("/") + "/io/" + ContentKey + "/" + ContentValue;
                            e.open.target = Target;

                            #endregion

                            e.ContentType.innerText = ContentBytesLength + " bytes " + ContentType;


                            #region Delete
                            e.Delete.WhenClicked(
                                delegate
                                {
                                    //e.ContentValue.style.textDecoration = ""

                                    if (StayAlertTimer != null)
                                        StayAlertTimer.Stop();

                                    e.Container.style.backgroundColor = "red";

                                    service.DeleteAsync(
                                        ContentKey,
                                        delegate
                                        {

                                            DoRefresh();
                                        }
                                    );
                                }
                            );
                            #endregion


                            e.Container.AttachTo(page.output);



                            Console.WriteLine(
                                new { ContentKey, ContentValue, ContentType, ContentBytesLength }
                            );

                        },

                        done: transaction_id =>
                        {
                            Console.WriteLine(new { transaction_id });
                            new FileLoadingDone().Container.AttachTo(page.output);

                            StayAlert(transaction_id);
                        }
                    );
                };

            #region ondrop

            var TimerHide = new Timer(
                delegate
                {
                    dz.Container.Hide();
                }
            );

            Action<DragEvent> ondragover =
                evt =>
                {
                    //Console.WriteLine("ondragover");


                    evt.stopPropagation();
                    evt.preventDefault();

                    // ondragover { type = Files }

                    //foreach (var type in evt.dataTransfer.types)
                    //{
                    //    Console.WriteLine("ondragover " + new { type });
                    //}


                    if (evt.dataTransfer.types.Contains("Files"))
                    {


                        evt.dataTransfer.dropEffect = "copy"; // Explicitly show this is a copy.

                        dz.Container.Show();
                        TimerHide.Stop();
                    }

                    //}

                    //Console.WriteLine(" Native.Document.body.ondragover");
                };

            Native.Document.body.ondragover += ondragover;
            dz.Container.ondragover += ondragover;

            //dz.Container.ondragstart +=
            //    evt =>
            //    {
            //        Console.WriteLine("ondragstart");


            //        evt.stopPropagation();
            //        evt.preventDefault();
            //    };

            dz.Container.ondragleave +=
                 evt =>
                 {
                     //Console.WriteLine("ondragleave");

                     //Console.WriteLine(" dz.Container.ondragleave");

                     evt.stopPropagation();
                     evt.preventDefault();

                     TimerHide.StartTimeout(90);
                 };

            dz.Container.ondrop +=
                evt =>
                {
                    //Console.WriteLine("ondrop");

                    TimerHide.StartTimeout(90);

                    evt.stopPropagation();
                    evt.stopImmediatePropagation();

                    evt.preventDefault();

                    // can we use a webClient yet?
                    var xhr = new IXMLHttpRequest();

                    // does not work for chrome?
                    //xhr.setRequestHeader("WebServiceMethod", "FileStorageUpload");

                    // which server?
                    xhr.open(ScriptCoreLib.Shared.HTTPMethodEnum.POST, "/FileStorageUpload");

                    // http://stackoverflow.com/questions/13870853/how-to-upload-files-in-web-workers-when-formdata-is-not-defined

                    //var c = new WebClient();

                    ////c.UploadData(
                    //c.UploadProgressChanged +=
                    //    (sender, args) =>
                    //    {

                    //    };

                    //c.UploadFileAsync(



                    #region send
                    var d = new FormData();

                    evt.dataTransfer.files.AsEnumerable().WithEachIndex(
                        (f, index) =>
                        {
                            d.append("file" + index, f, f.name);
                        }
                    );

                    xhr.InvokeOnComplete(
                        delegate
                        {
                            Console.WriteLine("upload complete!");

                            DoRefresh();
                        }
                    );

                    var upload = new Uploading();

                    upload.Container.AttachTo(page.output);
                    // http://www.matlus.com/html5-file-upload-with-progress/
                    xhr.upload.onprogress +=
                        e =>
                        {
                            var p = (int)(e.loaded * 100 / e.total) + "%";

                            upload.status = p;

                            Console.WriteLine("upload.onprogress " + new { e.total, e.loaded });
                        };

                    xhr.send(d);
                    #endregion


                    if (StayAlertTimer != null)
                        StayAlertTimer.Stop();



                };
            #endregion




            DoRefresh();
        }
	bool CheckForDrag(Draggable drag, DropZone dropedOn){
		if (onDragEnded != null)
			return onDragEnded (drag);

		return false;
	}
	void DropBlocksOnDropZone(BlockGroup g, DropZone d){
		int gNumber = gamePlayMaster.blocksContainer.GetBlockGroupID(g);
		Coord cellCoord = gamePlayMaster.CoordForDropZone(d);
		photonView.RPC ("DropBlocksOnDropZone_RPC", PhotonTargets.All, gNumber, cellCoord.x, cellCoord.y);
	}
	public Coord CoordForDropZone(DropZone dropZone){
		return dropZone.GetComponent<BoxCell> ().coord;
	}
Example #38
0
	void Awake(){
		spR = GetComponent<SpriteRenderer> ();
		dropZone = GetComponent<DropZone> ();
	}
	bool CanDropHere(BlockGroup group, DropZone dropenOn){
		BoxCell cellDropenOn = dropenOn.GetComponent<BoxCell>();
		return CanDropHere (group, cellDropenOn);
	}