public static void Postfix(Pawn ingester, ref JoyState __state)
        {
            if (!__state.IsVCEDesert)
            {
                return;
            }

            if (__state.PreviousTolerance.EqualsTo(0))
            {
                __state.PreviousTolerance = 0f;
            }

            if (__state.PreviousTolerance < 0)
            {
                return;
            }

            __state.Tolerances[JoyKindDefOf.Gluttonous] = __state.PreviousTolerance;

            if (__state.PreviousTolerance <= 0.5f)
            {
                DefMap <JoyKindDef, bool> bored = (DefMap <JoyKindDef, bool>)_bored.GetValue(ingester.needs.joy.tolerances);
                bored[JoyKindDefOf.Gluttonous] = false;
            }
        }
示例#2
0
        static Vector2f RespondToJoystickEvents(Vector2f pos)
        {
            Vector2f newpos = new Vector2f(pos.X, pos.Y);

            if (JoyState.HasFlag(ControllerState.DPAD_UP_PRESSED))
            {
                newpos = new Vector2f(pos.X, pos.Y - 1);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_DOWN_PRESSED))
            {
                newpos = new Vector2f(pos.X, pos.Y + 1);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_LEFT_PRESSED))
            {
                newpos = new Vector2f(pos.X - 1, pos.Y);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_RIGHT_PRESSED))
            {
                newpos = new Vector2f(pos.X + 1, pos.Y);
            }

            if (JoyState.HasFlag(ControllerState.B_PRESSED))
            {
                newpos = RespawnCentreScreen();
            }

            return(newpos);
        }
示例#3
0
        static void RespondToJoystickEvents(RectangleShape player)
        {
            buttonText.DisplayedString = XboxController.RefreshButtonPressed();
            axisText.DisplayedString   = XboxController.RefreshAxisPressed();

            if (JoyState.HasFlag(ControllerState.DPAD_UP_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X, player.Position.Y - 1);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_DOWN_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X, player.Position.Y + 1);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_LEFT_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X - 1, player.Position.Y);
            }

            if (JoyState.HasFlag(ControllerState.DPAD_RIGHT_PRESSED))
            {
                player.Position = new Vector2f(player.Position.X + 1, player.Position.Y);
            }

            if (JoyState.HasFlag(ControllerState.B_PRESSED))
            {
                player.Position = RespawnCentreScreen();
            }
        }
示例#4
0
        static void Main(string[] args)
        {
            RenderWindow app = new RenderWindow(new VideoMode(800, 600), "OMG, it works!");

            app.Closed += new EventHandler(OnClose);

            Color windowColor = new Color(77, 255, 130);

            CircleShape shape = new CircleShape(10);

            shape.FillColor = new Color(Color.Red);

            RectangleShape square = new RectangleShape();

            square.FillColor    = new Color(Color.Red);
            square.Position     = new Vector2f(app.Size.X / 2, app.Size.Y / 2);
            square.OutlineColor = new Color(0, 0, 0, 255);
            square.Size         = new Vector2f(50, 50);

            // Start the game loop
            while (app.IsOpen())
            {
                // Process events
                app.DispatchEvents();

                // Clear screen
                app.Clear(windowColor);

                app.Draw(shape);
                app.Draw(square);

                Console.WriteLine(XboxController.RefreshButtonPressed());
                Console.WriteLine(XboxController.RefreshAxisPressed());


                if (JoyState.HasFlag(ControllerState.DPAD_UP_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X, square.Position.Y - 1);
                }

                if (JoyState.HasFlag(ControllerState.DPAD_DOWN_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X, square.Position.Y + 1);
                }

                if (JoyState.HasFlag(ControllerState.DPAD_LEFT_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X - 1, square.Position.Y);
                }

                if (JoyState.HasFlag(ControllerState.DPAD_RIGHT_PRESSED))
                {
                    square.Position = new Vector2f(square.Position.X + 1, square.Position.Y);
                }


                // Update the window
                app.Display();
            }
        }
示例#5
0
	/// <summary>
	/// Start this instance.
	/// </summary>
	public void 	Begin(Vector3 vPosition)
	{
		m_JoyDown.transform.localPosition = vPosition;
		m_JoyArea.transform.localPosition = vPosition;

		// set joystick state
		m_JoyState = JoyState.JOG_MOVING;
	}
        public static bool Prefix(Pawn ingester, Thing __instance, ref JoyState __state)
        {
            ThingDef        ingestThingDef = __instance.def;
            JoyToleranceSet set            = ingester?.needs?.joy?.tolerances;

            if (ingestThingDef == null || set == null || !DessertDefs.AllDeserts.Contains(ingestThingDef))
            {
                __state = new JoyState(false, 0, null);
                return(true);
            }

            DefMap <JoyKindDef, float> tolerances = (DefMap <JoyKindDef, float>)_tolerances.GetValue(set);

            __state = new JoyState(true, tolerances[JoyKindDefOf.Gluttonous], tolerances);
            return(true);
        }
    void RotatePlayer()
    {
        RaycastHit hit1;

        if (Input.touches.Length > 0)
        {
            foreach (Touch touch in Input.touches)
            {
                var ray1 = Camera.main.ScreenPointToRay(touch.position); //INPUT.MOUSEPOSITION

                if (Physics.Raycast(ray1, out hit1))
                {
                    if (hit1.collider.CompareTag("turnStick"))
                    {
                        showIndicator();
                        joyState = JoyState.pressed;

                        fingerPosition = (transform.InverseTransformVector(hit1.point) - transform.InverseTransformVector(gameObject.transform.position)).normalized; //fingerPosition.x fingerPosition.y
                        fingerPosition = transform.TransformVector(new Vector3(fingerPosition.x, 0, fingerPosition.y)).normalized;
                        Debug.Log(fingerPosition);
                        fingerPosition.y = 0f;
                        rotateTowardsVisualizer.transform.position = player.transform.position + fingerPosition;


                        Vector3 turnTowardsPoint = rotateTowardsVisualizer.transform.position;
                        player.transform.LookAt(turnTowardsPoint);
                    }
                    else
                    {
                        joyState = JoyState.unpressed;
                        hideIndicator();
                    }
                }
                else
                {
                    joyState = JoyState.unpressed;
                    hideIndicator();
                }
            }
        }
        else
        {
            joyState = JoyState.unpressed;
            hideIndicator();
        }
    }
示例#8
0
	/// <summary>
	/// End this instance.
	/// </summary>
	public void 	End()
	{
		m_JoyState = JoyState.JOY_IDLE;
	}
    void Update()
    {
        fingerPosition = Vector3.zero;
        // if(Input.touches.Length > 0)
        // {
        //     foreach (Touch touch in Input.touches)
        //     {
        //         if (touch.phase == TouchPhase.Began)
        //         {
        //             // Construct a ray from the current touch coordinates
        //             RaycastHit hit;
        //             var ray = arCam.ScreenPointToRay(touch.position);
        //             if (Physics.Raycast(ray, out hit))
        //             {
        //                 // Create a particle if hit
        //                 //Instantiate(player, transform.position, transform.rotation);
        //                 //Debug.Log("hit object:" + hit.collider.gameObject);

        //                 if (hit.collider.CompareTag("turnStick"))
        //                 {

        //                 }
        //             }
        //         }
        //         // Construct a ray from the current touch coordinates
        //         RaycastHit hit1;
        //         var ray1 = Camera.main.ScreenPointToRay(touch.position);
        //         if (Physics.Raycast(ray1, out hit1))
        //         {
        //             // Create a particle if hit
        //             //Instantiate(player, transform.position, transform.rotation);
        //             //Debug.Log("hit object:" + hit.collider.gameObject);

        //             if (hit1.collider.CompareTag("turnStick"))
        //             {
        //                 fingerPosition = (gameObject.transform.position - hit1.point).normalized;
        //                 joyState = JoyState.pressed;
        //                 //Debug.Log("touch position" + fingerPosition);
        //             }
        //             else
        //             {
        //                 joyState = JoyState.unpressed;
        //             }
        //         }
        //         else
        //         {
        //             joyState = JoyState.unpressed;
        //         }

        //     }
        // }
        RotatePlayer();
        shootCooldownTracker += Time.deltaTime;
        if (lastJoyState == JoyState.pressed && joyState == JoyState.unpressed)
        {
            if (shootCooldownTracker >= shootCooldown)
            {
                shootCooldownTracker = 0f;
                Shoot();
            }
        }
        lastJoyState = joyState;
    }