Beispiel #1
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case Forward.NAME:
                var nodeForward = new Forward() as INode;
                return(new Node <INode> (nodeForward));

            case Vec3.NAME:
                INode nodeVec3 = new Vec3() as INode;
                return(new Node <INode>(nodeVec3));

            case SplitVec3.NAME:
                INode nodeSplitVec3 = new SplitVec3() as INode;
                return(new Node <INode>(nodeSplitVec3));

            case LookAtPosition.NAME:
                INode nodeLookAt = new LookAtPosition() as INode;
                return(new Node <INode>(nodeLookAt));

            case ScreenToWorld.NAME:
                INode nodeScreenToWorld = new ScreenToWorld() as INode;
                return(new Node <INode>(nodeScreenToWorld));

            default:
                return(null);
            }
        }
Beispiel #2
0
        protected override void OnCreate()
        {
            inputSystem   = World.GetExistingSystem <InputSystem>();
            screenToWorld = World.GetExistingSystem <ScreenToWorld>();

            // Category names are defined in Assets/PhysicsCategoryNames and assgined to PhysicsShape components in Editor
            collisionFilter = new CollisionFilter
            {
                BelongsTo        = 1u << 30,    // Set raycast to Input category
                    CollidesWith = 0xffffffff,  // Target everything
                    GroupIndex   = 0,
            };
        }
        public NavMeshEditor(View view, WorldScene scene, ScreenToWorld stw, ClientCommon.Mesh plane)
        {
            this.view = view;
            this.scene = scene;
            this.screenToWorld = stw;

            vertexModel = new Model
            {
                Mesh = plane,
                IsBillboard = true,
                Texture = view.content.Get<Texture>("blink.tga"),
                World = Matrix.Scaling(1, 1, 0),
                Effect = view.content.Get<Effect>("billboard.fx")
            };
            CreateNextFace();
        }
Beispiel #4
0
        protected override void OnUpdate()
        {
            if (!created)
            {
                CreateScene();
                s2w     = World.GetExistingSystem <ScreenToWorld>();
                created = true;
            }

            // remove ambient lights. they get converted from multiple scenes right now
            Entities.WithAll <AmbientLight>().ForEach((Entity e, ref Light l) => {
                l.intensity = 0;
            }).Run();

            var   di    = GetSingleton <DisplayInfo>();
            float dt    = World.Time.DeltaTime;
            var   input = World.GetExistingSystem <InputSystem>();

            if (input.GetKey(KeyCode.LeftShift) || input.GetKey(KeyCode.RightShift))
            {
                return;
            }

            // new camera from current camera
            if (input.GetKeyDown(KeyCode.W))
            {
                if (cameraList.Length < 32)
                {
                    Entity eNewCam = EntityManager.Instantiate(eCam);
                    var    cam     = EntityManager.GetComponentData <Camera>(eNewCam);
                    cam.viewportRect.x      = (cameraList.Length % 8) / 9.0f;
                    cam.viewportRect.width  = 1.0f / 10.0f;
                    cam.viewportRect.y      = (cameraList.Length / 8) / 9.0f;
                    cam.viewportRect.height = 1.0f / 10.0f;
                    cam.backgroundColor.r   = random.NextFloat();
                    cam.backgroundColor.g   = random.NextFloat();
                    cam.backgroundColor.b   = random.NextFloat();
                    EntityManager.SetComponentData <Camera>(eNewCam, cam);
                    cameraList.Add(eNewCam);
                }
            }

            // C - Color
            if (input.GetKeyDown(KeyCode.C))
            {
                drawColorIndex++;
                if (drawColorIndex == colorPalette.Length)
                {
                    drawColorIndex = 0;
                }
                drawColor = colorPalette[drawColorIndex];
            }

            // M - Material
            if (input.GetKeyDown(KeyCode.M))
            {
                materialIndex++;
                switch (materialIndex)
                {
                case 2:
                case 0:
                    eCurrentMaterial = ePlainMaterial;
                    materialIndex    = 0;
                    break;

                case 1:
                    eCurrentMaterial = eMetalMaterial;
                    break;
                }
            }

            // S - Size
            if (input.GetKeyDown(KeyCode.S))
            {
                drawSizeIndex++;
                if (drawSizeIndex == sizePalette.Length)
                {
                    drawSizeIndex = 0;
                }
                drawSize = sizePalette[drawSizeIndex];
            }

            // Z - Delete last shape
            if (input.GetKeyDown(KeyCode.Z))
            {
                EndStroke();
                if (strokeStack.Length > 0)
                {
                    EntityManager.DestroyEntity(strokeStack[strokeStack.Length - 1]);
                    strokeStack.RemoveAtSwapBack(strokeStack.Length - 1);
                }
            }

            // click to start drawing
            if (input.IsMousePresent())
            {
                if (input.GetMouseButtonDown(0))
                {
                    BeginStroke(input.GetInputPosition());
                }
                else if (input.GetMouseButton(0))
                {
                    ContinueStroke(input.GetInputPosition());
                }
                else if (input.GetMouseButtonUp(0))
                {
                    EndStroke();
                }
            }
            else if (input.IsTouchSupported())
            {
                if (input.TouchCount() == 1)
                {
                    Touch t0 = input.GetTouch(0);
                    switch (t0.phase)
                    {
                    case TouchState.Began:
                        BeginStroke(new float2(t0.x, t0.y));
                        break;

                    case TouchState.Moved:
                        ContinueStroke(new float2(t0.x, t0.y));
                        break;

                    case TouchState.Canceled:
                    case TouchState.Ended:
                        EndStroke();
                        break;
                    }
                }
            }
        }
 protected override void OnCreate()
 {
     InputSystem   = World.GetExistingSystem <InputSystem>();
     ScreenToWorld = World.GetExistingSystem <ScreenToWorld>();
 }
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case DeltaTime.NAME:
                INode nodeDeltaTime = new DeltaTime() as INode;
                return(new Node <INode> (nodeDeltaTime));

            case KeyDown.NAME:
                INode nodeKeyDown = new KeyDown() as INode;
                return(new Node <INode> (nodeKeyDown));

            case Transform.NAME:
                INode nodeTransform = new Transform() as INode;
                return(new Node <INode> (nodeTransform));

            case Vec3.NAME:
                INode nodeVec3 = new Vec3() as INode;
                return(new Node <INode> (nodeVec3));

            case Key.NAME:
                INode nodeKey = new Key() as INode;
                return(new Node <INode> (nodeKey));

            case FindByName.NAME:
                INode nodeFindByName = new FindByName() as INode;
                return(new Node <INode> (nodeFindByName));

            case ObjectAttribute.NAME:
                INode nodeObjectAttribute = new ObjectAttribute() as INode;
                return(new Node <INode> (nodeObjectAttribute));

            case SplitVec3.NAME:
                INode nodeSplitVec3 = new SplitVec3() as INode;
                return(new Node <INode> (nodeSplitVec3));

            case Update.NAME:
                INode nodeUpdate = new Update() as INode;
                return(new Node <INode> (nodeUpdate));

            case LateUpdate.NAME:
                INode nodeLateUpdate = new LateUpdate() as INode;
                return(new Node <INode> (nodeLateUpdate));

            case MouseButtonDown.NAME:
                INode nodeMouseButtonDown = new MouseButtonDown() as INode;
                return(new Node <INode> (nodeMouseButtonDown));

            case PlayerPreferences.NAME:
                INode nodePlayerPref = new PlayerPreferences() as INode;
                return(new Node <INode> (nodePlayerPref));

            case SetActive.NAME:
                INode nodeSetActive = new SetActive() as INode;
                return(new Node <INode> (nodeSetActive));

            case LoadScene.NAME:
                INode nodeLoadScene = new LoadScene() as INode;
                return(new Node <INode> (nodeLoadScene));

            case MousePosition.NAME:
                INode nodeMousePosition = new MousePosition() as INode;
                return(new Node <INode> (nodeMousePosition));

            case ScreenToWorld.NAME:
                INode nodeScreenToWorld = new ScreenToWorld() as INode;
                return(new Node <INode> (nodeScreenToWorld));

            case LookAtPosition.NAME:
                INode nodeLookAt = new LookAtPosition() as INode;
                return(new Node <INode> (nodeLookAt));

            case GetComponent.NAME:
                INode nodeGetComponent = new GetComponent() as INode;
                return(new Node <INode> (nodeGetComponent));

            case Color.NAME:
                INode nodeColor = new Color() as INode;
                return(new Node <INode> (nodeColor));

            case Instantiate.NAME:
                INode instantiate = new Instantiate() as INode;
                return(new Node <INode> (instantiate));

            case MaterialColor.NAME:
                INode materialColor = new MaterialColor()  as INode;
                return(new Node <INode> (materialColor));

            case Quit.NAME:
                INode quit = new Quit() as INode;
                return(new Node <INode> (quit));

            case LoadTextFileAtPath.NAME:
                INode loadTextFileAtPath = new LoadTextFileAtPath() as INode;
                return(new Node <INode>(loadTextFileAtPath));

            case StreamingAssetsPath.NAME:
                INode streamingAssetsPath = new StreamingAssetsPath() as INode;
                return(new Node <INode>(streamingAssetsPath));

            case AddConstellationBehaviourFromJSON.NAME:
                INode addConstellationBehaviourFromJSON = new AddConstellationBehaviourFromJSON() as INode;
                return(new Node <INode>(addConstellationBehaviourFromJSON));

            default:
                return(null);
            }
        }
Beispiel #7
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case DeltaTime.NAME:
                INode nodeDeltaTime = new DeltaTime() as INode;
                return(new Node <INode> (nodeDeltaTime));

            case KeyDown.NAME:
                INode nodeKeyDown = new KeyDown() as INode;
                return(new Node <INode> (nodeKeyDown));

            case Transform.NAME:
                INode nodeTransform = new Transform() as INode;
                return(new Node <INode> (nodeTransform));

            case Vec3.NAME:
                INode nodeVec3 = new Vec3() as INode;
                return(new Node <INode> (nodeVec3));

            case Key.NAME:
                INode nodeKey = new Key() as INode;
                return(new Node <INode> (nodeKey));

            case FindByName.NAME:
                INode nodeFindByName = new FindByName() as INode;
                return(new Node <INode> (nodeFindByName));

            case ObjectAttribute.NAME:
                INode nodeObjectAttribute = new ObjectAttribute() as INode;
                return(new Node <INode> (nodeObjectAttribute));

            case SplitVec3.NAME:
                INode nodeSplitVec3 = new SplitVec3() as INode;
                return(new Node <INode> (nodeSplitVec3));

            case Update.NAME:
                INode nodeUpdate = new Update() as INode;
                return(new Node <INode> (nodeUpdate));

            case LateUpdate.NAME:
                INode nodeLateUpdate = new LateUpdate() as INode;
                return(new Node <INode> (nodeLateUpdate));

            case MouseButtonDown.NAME:
                INode nodeMouseButtonDown = new MouseButtonDown() as INode;
                return(new Node <INode> (nodeMouseButtonDown));

            case PlayerPreferences.NAME:
                INode nodePlayerPref = new PlayerPreferences() as INode;
                return(new Node <INode> (nodePlayerPref));

            case SetActive.NAME:
                INode nodeSetActive = new SetActive() as INode;
                return(new Node <INode> (nodeSetActive));

            case LoadScene.NAME:
                INode nodeLoadScene = new LoadScene() as INode;
                return(new Node <INode> (nodeLoadScene));

            case MousePosition.NAME:
                INode nodeMousePosition = new MousePosition() as INode;
                return(new Node <INode> (nodeMousePosition));

            case ScreenToWorld.NAME:
                INode nodeScreenToWorld = new ScreenToWorld() as INode;
                return(new Node <INode> (nodeScreenToWorld));

            case LookAtPosition.NAME:
                INode nodeLookAt = new LookAtPosition() as INode;
                return(new Node <INode> (nodeLookAt));

            case GetComponent.NAME:
                INode nodeGetComponent = new GetComponent() as INode;
                return(new Node <INode> (nodeGetComponent));

            case Color.NAME:
                INode nodeColor = new Color() as INode;
                return(new Node <INode> (nodeColor));

            default:
                return(null);
            }
        }
Beispiel #8
0
    void Update()
    {
        debugtext.text = selectedType == 0 ? "HARVEST CACTUS" : selectedType == 1 ? "PLACE CACTUS" : "PlACE SOLAR PANEL";
        if (Input.GetKeyDown(KeyCode.Q))
        {
            selectedType--;
        }
        if (Input.GetKeyDown(KeyCode.E))
        {
            selectedType++;
        }
        selectedType = Mathf.Clamp(selectedType, 0, 2);

        selectionOverlay.gameObject.SetActive(false);

        PlayerInfo.canMove = true;

        DisplayOverlay();
        DisableSlider();

        Vector2Int newMousePos = ScreenToWorld.GetMousePoint();

        if (newMousePos != mousePos)
        {
            currentTileTime = 0;
        }
        mousePos = newMousePos;

        if (Input.GetMouseButton(0))
        {
            IncreaseActionTime();

            int mouseOverType = WorldData.GetTile(mousePos.x, mousePos.y).type;
            switch (mouseOverType)
            {
            case 0:
                // Mouse over sand / empty tile
                if (selectedType == 1)
                {
                    PlantCactus();
                }
                if (selectedType == 2)
                {
                    PlaceMachine();
                }
                break;

            case 1:
                // Mouse over cactus
                if (selectedType == 0)
                {
                    HarvestCactus();
                }
                if (selectedType == 3)
                {
                    Debug.Log("harvest cactus");
                }
                break;

            case 2:
                // Mouse over machine
                if (selectedType == 0)
                {
                    Debug.Log("open building GUI");
                }
                if (selectedType == 3)
                {
                    Debug.Log("destroy building");
                }
                break;
            }
        }
    }
 public Vector2 GetScreenPositionInWorld(ScreenToWorld s)
 {
     Vector2 Pos = Vector2.zero;
     Vector2 ScreenSize = GetScreenSize();
     switch (s)
     {
         case ScreenToWorld.TopLeft:
             Pos = GameCamera.ScreenToWorldPoint(new Vector3(0, 0));
             break;
         case ScreenToWorld.TopRight:
             break;
         case ScreenToWorld.BottomLeft:
             break;
         case ScreenToWorld.BottomRight:
             break;
     }
     return Pos;
 }