Exemplo n.º 1
0
    private void resetTransform()
    {
        this.attachedPlayer.transform.position = this.gameObject.transform.position;

        if (!GlobalSettings.SinglePlayer)
        {
            GameObject mothership = null;
            if (this.attachedPlayer.gameObject.layer == (int)Layers.Team1Actor)
            {
                mothership = GameObject.Find(GlobalSettings.Team2MothershipName);
            }
            else if (this.attachedPlayer.gameObject.layer == (int)Layers.Team2Actor)
            {
                mothership = GameObject.Find(GlobalSettings.Team1MothershipName);
            }
            else
            {
                throw new Exception("Attached player ship of spawn point has invalid layer!");
            }

            this.attachedPlayer.transform.LookAt(mothership.transform);
        }

        ObjectTransformer transformer = this.attachedPlayer.GetComponent <ObjectTransformer>();

        transformer.Translation = Vector3.zero;

        ShipControl shipControl = this.attachedPlayer.GetComponent <ShipControl>();

        shipControl.CurrentSpeed = 0;
    }
Exemplo n.º 2
0
        public static T CreateInstance <T>(this Table table, IScenarioContext context)
        {
            var output = table.CreateInstance <T>();

            ObjectTransformer.Transform(output, context);
            return(output);
        }
Exemplo n.º 3
0
    private void CreatePredictionMarker(GameObject npc)
    {
        ObjectTransformer transformer = npc.GetComponent <ObjectTransformer>();

        Shooter shooter = GunSwitcher.CurrentGuns[0].GetComponent <Shooter>();
        ProjectileController controller = shooter.Projectile.gameObject.GetComponent <ProjectileController>();

        Vector3 predictedPosition = PredictPosition.Predict(npc.transform.position,
                                                            transformer.WorldTranslationDirection * transformer.TranslationSpeed,
                                                            GunSwitcher.CurrentGuns[0].transform.position,
                                                            controller.FlyControl.DesiredSpeed);

        Vector3 predictedScreenPosition = Camera.WorldToScreenPoint(predictedPosition);

        predictedScreenPosition = ClampToScreen(predictedScreenPosition);

        //if (predictedScreenPosition.z < 0)
        //  Crosshair.ResetDistance();
        //else Crosshair.CurrentDistance = predictedScreenPosition.z;

        GUI.Label(new Rect(predictedScreenPosition.x - PredictedPositionTexture.width / 2f,
                           predictedScreenPosition.y - PredictedPositionTexture.height / 2f,
                           PredictedPositionTexture.width,
                           PredictedPositionTexture.height),
                  new GUIContent(PredictedPositionTexture));
    }
Exemplo n.º 4
0
    /// <summary>
    /// Update Function, allow for item selection, unselection & drag transformation (depending on the Current Tool).
    /// </summary>
    private void Update()
    {
        // Select Object
        if (Input.GetMouseButtonDown(0))
        {
            if (Physics.Raycast(Camera.main.transform.position, Camera.main.ScreenPointToRay(Input.mousePosition).direction, out hit))
            {
                if (hit.collider.gameObject == gameObject)
                {
                    selectedInstance = this;
                }
            }
        }


        // Drag Instance
        if (selectedInstance == this)
        {
            switch (panel.tool)
            {
            // Translation
            case BuilderMenuPanel.CurrentTool.TRANSLATE:
                translateDistance = Mathf.Max(translateDistance + Input.mouseScrollDelta.y * mouseScrollSpeed, minimalDistance);
                Ray look = Camera.main.ScreenPointToRay(Input.mousePosition);
                transform.position = look.GetPoint(translateDistance / look.direction.z);
                break;

            // Rotation
            case BuilderMenuPanel.CurrentTool.ROTATE:
                transform.localRotation =
                    Quaternion.AngleAxis(-Input.GetAxis("Mouse X") * mouseRotateSpeed, Camera.main.transform.up) *
                    Quaternion.AngleAxis(Input.GetAxis("Mouse Y") * mouseRotateSpeed, Camera.main.transform.right) *
                    transform.localRotation;
                break;

            // Scaling
            case BuilderMenuPanel.CurrentTool.SCALE:
                Vector3 previousScale = transform.localScale;
                transform.localScale *= 1 + Input.GetAxis("Mouse X") * mouseScaleSpeed;
                if (transform.lossyScale.x < minimalScale)
                {
                    transform.localScale = previousScale;
                }
                break;

            default: break;
            }
        }

        // Unselect Object
        if (Input.GetMouseButtonUp(0))
        {
            if (selectedInstance != null)
            {
                selectedInstance = null;
            }
        }
    }
Exemplo n.º 5
0
 private static void CheckVerificationForValue(object value, Type propertyType)
 {
     Contract.Requires <ArgumentException>(
         value == null ||
         ObjectTransformer.CheckIEnumerableInterface(value.GetType()) ||
         value.GetType().IsEnum ||
         CanAndShouldBeConvertedToEnum(value, propertyType) ||
         CanAndShouldBeConvertedToEnumForNullable(value, propertyType)
         , "value");
 }
Exemplo n.º 6
0
    private void ObjectVelocityRPC(NetworkViewID objectOwner, int objectID, Vector3 translation, Vector3 rotation)
    {
        //		Debug.Log("Player ship velocity received.");

        GameObject        obj             = base.GetObject(objectOwner, objectID);
        ObjectTransformer objectTransform = obj.GetComponent <ObjectTransformer>();

        objectTransform.Translation = translation;
        objectTransform.Rotation    = rotation;
    }
Exemplo n.º 7
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="label">Object label</param>
 public FormObjectTransformer(IObjectLabel label) :
     this()
 {
     pCombo      = panelCenter;
     this.label  = label;
     Text        = label.Name;
     transformer = label.Object as ObjectTransformer;
     createCombo();
     fill();
     select();
 }
Exemplo n.º 8
0
    void Start()
    {
        transformer = gameObject.GetComponent <ObjectTransformer>();

        // Remember the camera position in the editor.
        baseCameraPosition = Camera.transform.localPosition;
        baseCameraRotation = Camera.transform.localRotation;

        currentSpeed = 0;
        screenCenter = new Vector3(Screen.width / 2, Screen.height / 2);

        smoothingGhostMouse = Mouse.ScreenPosition;
    }
Exemplo n.º 9
0
    // Use this for initialization
    void Start()
    {
        float circumference = radius * Mathf.PI * 2;
        angularVelocity = (speed / circumference) * 360;

        this.objTransformer = this.GetComponent<ObjectTransformer>();
        this.objTransformer.TranslationDirection = Vector3.forward;
        this.objTransformer.TranslationSpeed = this.speed;

        if (this.gameObject.layer == (int)Layers.Team1Actor)
            this.objTransformer.Rotation = new Vector3(0, -angularVelocity, 0);
        else if (this.gameObject.layer == (int)Layers.Team2Actor)
            this.objTransformer.Rotation = new Vector3(0, angularVelocity, 0);
    }
Exemplo n.º 10
0
 public GameObject Reload()
 {
     if (GameTable)
     {
         Destroy(GameTable);
     }
     RemainingGems = 0;
     GameTable     = Instantiate(Table);
     ActivePlayer  = Player.CreatePlayer(GameTable.transform, new Vector2(0, 0));
     Transformer   = GameTable.GetComponent <ObjectTransformer>();
     Move.isOn     = Transformer.EnableMovement;
     Rotate.isOn   = Transformer.EnableRotation;
     Scale.isOn    = Transformer.EnableScaling;
     return(GameTable);
 }
Exemplo n.º 11
0
        public static bool Push(Account account, out string errMsg)
        {
            bool result = false;

            errMsg = string.Empty;
            ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");

            IDatabase db           = redis.GetDatabase();
            var       redisAccount = ObjectTransformer <Account> .SerializeType(account, out errMsg);

            if (db.StringSet(account.Number, redisAccount, new TimeSpan(0, 0, 2)))
            {
                var val = db.StringGet(account.Number);
                result = true;
                Console.WriteLine(val);
            }
            return(result);
        }
Exemplo n.º 12
0
        public static Account Pull(string key, out string errMsg)
        {
            Account result = null;

            errMsg = string.Empty;
            try
            {
                ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
                IDatabase             db    = redis.GetDatabase();
                var val = db.StringGet(key);
                Console.WriteLine(val);
                result = ObjectTransformer <Account> .DeserializeType(val.ToString(), out errMsg);
            }
            catch (Exception e)
            {
                errMsg = e.Message;
            }
            return(result);
        }
        public void Transform_should_transform_property_using_auto_generated_key_when_key_is_not_defined()
        {
            //Arrange
            const string admin = "ADMIN";
            var          model = new Customer()
            {
                Username = admin
            };
            var expectedGeneratedKey = ObjectTransformer.GeneratePropertyKey(nameof(Customer), nameof(Customer.Username));

            //Act
            ObjectTransformer.Transform(model, fakeContext);

            //Assert
            model.Username.Should().NotBe(admin).And.Should().NotBeNull();
            var property = valueManager.GetTransformedProperties().First(a => a.Key == expectedGeneratedKey);

            property.OriginalValue.Should().Be(admin);
            property.TransformedValue.Should().Be(model.Username);
        }
        public void Transform_should_transform_object_using_specified_key_when_key_is_passed_in()
        {
            //Arrange
            const string key   = "NEWCUSTOMER";
            const string admin = "ADMIN";
            var          model = new Customer()
            {
                Username = admin
            };
            var expectedGeneratedKey = ObjectTransformer.GeneratePropertyKey(key, nameof(Customer.Username));

            //Act
            ObjectTransformer.Transform(model, key, fakeContext);

            //Assert
            model.Username.Should().NotBe(admin).And.Should().NotBeNull();
            var property = valueManager.GetTransformedProperties().First(a => a.Key == expectedGeneratedKey);

            property.OriginalValue.Should().Be(admin);
            property.TransformedValue.Should().Be(model.Username);
        }
Exemplo n.º 15
0
        public void Transform_should_transform_properties_based_on_their_type_when_FieldType_is_set_to_auto()
        {
            //Arrange
            const string admin        = "ADMIN";
            const long   referralId   = 10;
            const int    departmentId = 5;
            var          locationId   = Guid.NewGuid();
            var          customer     = new Customer()
            {
                Username     = admin,
                RefferalId   = referralId,
                DepartmentId = departmentId,
                LocationId   = locationId
            };

            //Act
            ObjectTransformer.Transform(customer, this.fakeContext);

            //Assert
            customer.Username.Should().NotBe(admin, "because 'string' properties should change automatically");
            customer.RefferalId.Should().NotBe(referralId, "because 'long' properties should change automatically");
            customer.DepartmentId.Should().NotBe(departmentId, "because 'int' properties should change automatically");
            customer.LocationId.Should().NotBe(locationId, "because 'Guid' properties should change automatically");
        }
Exemplo n.º 16
0
    void OnTriggerStay(Collider Object)
    {
        // Checking for the player tag is only for no crashing
        if (isOpponent(Object))
        {
            float speed = 0;
            if (Object.gameObject.tag == "Npc")
            {
                ObjectTransformer d = Object.GetComponent <ObjectTransformer>();
                speed = d.TranslationSpeed;
            }
            else if (Object.gameObject.tag == "Player")
            {
                ShipControl s = Object.GetComponent <ShipControl>();
                speed = s.CurrentSpeed;
            }
            //Debug.Log(speed);
            // Check the predicted position given the current flying velocity
            Vector3 targetPosM = PredictPosition.Predict(Object.transform.position,
                                                         speed * Object.transform.forward,
                                                         top.position,
                                                         shootL.ProjectileSpeed);

            Vector3 targetPosL = PredictPosition.Predict(Object.transform.position,
                                                         speed * Object.transform.forward,
                                                         muzzleLeft.position,
                                                         shootL.ProjectileSpeed);

            Vector3 targetPosR = PredictPosition.Predict(Object.transform.position,
                                                         speed * Object.transform.forward,
                                                         muzzleRight.position,
                                                         shootR.ProjectileSpeed);

            // TODO: Only get random target sometimes
            targetPosM = GetRandomTarget(targetPosM, 1);
            //targetPosL = GetRandomTarget(targetPosL, 1);
            //targetPosR = GetRandomTarget(targetPosR, 1);

            Vector3 lookPos = targetPosM - top.position;
            lookPos.y = 0;
            Quaternion rotation = Quaternion.LookRotation(lookPos);
            //Quaternion b = Quaternion.Euler(0, this.transform.eulerAngles.y, 0);
            Vector3 eul = rotation.eulerAngles;
            eul.y -= this.transform.eulerAngles.y;
            Quaternion rotation2 = Quaternion.Euler(eul.x, eul.y, eul.z);

            top.localRotation = Quaternion.Slerp(top.transform.rotation, rotation2, Time.deltaTime * 100);

            Vector3 objPos = Object.transform.position;

            float angle = getXrotation(muzzleLeft.position, targetPosL);

            muzzleLeft.localEulerAngles = new Vector3(angle * Mathf.Rad2Deg, -90, 0);

            angle = getXrotation(muzzleRight.position, targetPosR);

            muzzleRight.localEulerAngles = new Vector3(angle * Mathf.Rad2Deg, -90, 0);

            float diff = (Object.transform.position - top.position).magnitude;
            // Only shoot in case of in shoot radius
            if (diff < shootDistance)
            {
                shootL.Shoot();
                shootR.Shoot();
            }
        }
    }
Exemplo n.º 17
0
    //public bool SuppressVelocitySync { get; set; }
    protected override void Start()
    {
        base.Start ();

        this.objectTransformer = this.GetComponent<ObjectTransformer>();
    }
Exemplo n.º 18
0
    void Start()
    {
        transformer = gameObject.GetComponent<ObjectTransformer>();

        // Remember the camera position in the editor.
        baseCameraPosition = Camera.transform.localPosition;
        baseCameraRotation = Camera.transform.localRotation;

        currentSpeed = 0;
        screenCenter = new Vector3(Screen.width / 2, Screen.height / 2);

        smoothingGhostMouse = Mouse.ScreenPosition;
    }