Ejemplo n.º 1
0
    public CInventoryItem PickupUnplaced(string ProfileName)
    {
        IntPtr         cPtr = testPINVOKE.CItemsManager_PickupUnplaced(swigCPtr, ProfileName);
        CInventoryItem ret  = (cPtr == IntPtr.Zero) ? null : new CInventoryItem(cPtr, false);

        return(ret);
    }
Ejemplo n.º 2
0
    public CInventoryItem GetCurrentInventoryItem()
    {
        IntPtr         cPtr = testPINVOKE.CPlayer_GetCurrentInventoryItem(swigCPtr);
        CInventoryItem ret  = (cPtr == IntPtr.Zero) ? null : new CInventoryItem(cPtr, false);

        return(ret);
    }
Ejemplo n.º 3
0
 public virtual void OnHit(CInventoryItem InventoryItem, CPlayer Owner, SWIGTYPE_p_Vector3 Direction)
 {
     testPINVOKE.CBuilding_OnHit__SWIG_1(swigCPtr, CInventoryItem.getCPtr(InventoryItem), CPlayer.getCPtr(Owner), SWIGTYPE_p_Vector3.getCPtr(Direction));
     if (testPINVOKE.SWIGPendingException.Pending)
     {
         throw testPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Ejemplo n.º 4
0
 public virtual void OnKill(CPlayer PlayerKilled, CInventoryItem InventoryItem)
 {
     testPINVOKE.CBuilding_OnKill__SWIG_1(swigCPtr, CPlayer.getCPtr(PlayerKilled), CInventoryItem.getCPtr(InventoryItem));
 }
Ejemplo n.º 5
0
 public void UseItem(CGameObject GameObject, CInventoryItem Item)
 {
     testPINVOKE.CBuilding_UseItem__SWIG_2(swigCPtr, CGameObject.getCPtr(GameObject), CInventoryItem.getCPtr(Item));
 }
Ejemplo n.º 6
0
 public void UseItem(CPlayer Player, CInventoryItem Item)
 {
     testPINVOKE.CBuilding_UseItem__SWIG_0(swigCPtr, CPlayer.getCPtr(Player), CInventoryItem.getCPtr(Item));
 }
Ejemplo n.º 7
0
 public void RemoveItem(CInventoryItem Item)
 {
     testPINVOKE.CBuilding_RemoveItem(swigCPtr, CInventoryItem.getCPtr(Item));
 }
Ejemplo n.º 8
0
        public override void Update(float t, float dt)
        {
            KeyboardState currentState = Keyboard.GetState();

            Keys[] pressedKeys = currentState.GetPressedKeys();
            yaw = 0;

            foreach (var input in Game1.Inst.Scene.GetComponents <CInput>())
            {
                CBody body = null;
                if (Game1.Inst.Scene.EntityHasComponent <CBody>(input.Key))
                {
                    body = (CBody)Game1.Inst.Scene.GetComponentFromEntity <CBody>(input.Key);
                }
                var transform  = (CTransform)Game1.Inst.Scene.GetComponentFromEntity <CTransform>(input.Key);
                var inputValue = (CInput)input.Value;

                //For Network Chat
                foreach (Keys key in pressedKeys)
                {
                    if (lastPressedKeys != null && !lastPressedKeys.Contains(key))
                    {
                        Game1.Inst.RaiseInScene("key_to_write", key);
                    }
                }
                lastPressedKeys = pressedKeys;
                if (!Game1.Inst.Scene.EntityHasComponent <CBody>(input.Key))
                {
                    continue;
                }
                if (currentState.IsKeyDown(Keys.Escape))
                {
                    Game1.Inst.Exit(); // TODO: We Should leave the scene
                }
                var movementSpeed = dt * 100f * body.SpeedMultiplier;
                var rotationSpeed = dt * 2.4f * body.RotationMultiplier;

                Vector3 acceleration = Vector3.Zero;

                if (currentState.IsKeyDown(Keys.LeftShift))
                {
                    movementSpeed *= 0.4f;
                }
                if (currentState.IsKeyDown(inputValue.ForwardMovementKey))
                {
                    var w = transform.Frame.Forward;

                    if (!isInAir && isOnGround)
                    {
                        var tx = transform.Position.X;
                        var tz = transform.Position.Z;

                        var fv1 = w;
                        fv1.Normalize();

                        var fv2 = fv1;
                        fv2 *= 0.05f;

                        // Compute height delta.
                        var y1 = Heightmap.HeightAt(tx, tz);
                        var y2 = Heightmap.HeightAt(tx + fv2.X, tz + fv2.Z);
                        fv2.Y = (float)Math.Max(0.0f, y2 - y1);

                        fv2.Normalize();

                        var maxAngle = (float)Math.Cos(MathHelper.ToRadians(70.0f));
                        var fac      = (float)Math.Max(0.0f, Vector3.Dot(fv1, fv2) - maxAngle);
                        movementSpeed *= fac;
                    }

                    acceleration += movementSpeed * w;
                }

                if (currentState.IsKeyDown(inputValue.BackwardMovementKey))
                {
                    var w = transform.Frame.Backward;

                    if (!isInAir && isOnGround)
                    {
                        var tx = transform.Position.X;
                        var tz = transform.Position.Z;

                        var fv1 = w;
                        fv1.Normalize();

                        var fv2 = fv1;
                        fv2 *= 0.05f;

                        // Compute height delta.
                        var y1 = Heightmap.HeightAt(tx, tz);
                        var y2 = Heightmap.HeightAt(tx + fv2.X, tz + fv2.Z);
                        fv2.Y = (float)Math.Max(0.0f, y2 - y1);

                        fv2.Normalize();

                        var maxAngle = (float)Math.Cos(MathHelper.ToRadians(70.0f));
                        var fac      = (float)Math.Max(0.0f, Vector3.Dot(fv1, fv2) - maxAngle);
                        movementSpeed *= fac;
                    }

                    acceleration += movementSpeed * w;
                }


                acceleration.Y = 0.0f;
                body.Velocity += acceleration - dt * body.Velocity * 10.0f * new Vector3(1.0f, 0.0f, 1.0f);



                //if (acceleration.X + body.Velocity.X < body.MaxVelocity && acceleration.X + body.Velocity.X > -body.MaxVelocity)
                ///body.Velocity.X += acceleration.X;
                //if (acceleration.Y + body.Velocity.Y < body.MaxVelocity || acceleration.Y + body.Velocity.Y > -body.MaxVelocity)
                //  body.Velocity.Y += acceleration.Y;
                //if (acceleration.Z + body.Velocity.Z < body.MaxVelocity && acceleration.Z + body.Velocity.Z > -body.MaxVelocity)
                //body.Velocity.Z += acceleration.Z;

                if (currentState.IsKeyDown(inputValue.LeftMovementKey))
                {
                    yaw = rotationSpeed;
                }
                if (currentState.IsKeyDown(inputValue.RightMovementKey))
                {
                    yaw = -rotationSpeed;
                }
                if (currentState.IsKeyDown(Keys.K) && !prevState.IsKeyDown(Keys.K))
                {
                    if (Game1.Inst.Scene.EntityHasComponent <CPlayer>(input.Key))
                    {
                        var cp = (CPlayer)Game1.Inst.Scene.GetComponentFromEntity <CPlayer>(input.Key);
                        var p  = (CHit)Game1.Inst.Scene.GetComponentFromEntity <CHit>(cp.HitId);
                        if (!p.IsAttacking)
                        {
                            SfxUtil.PlaySound("Sounds/Effects/Swing", vol: 1, randomPitch: true);

                            Game1.Inst.Scene.Raise("attack", new HitSystem.HitInfo {
                                EntityID    = input.Key,
                                IsAttacking = true,
                                StartTime   = t
                            });
                        }
                    }
                }


                if (currentState.IsKeyDown(Keys.Space) && !prevState.IsKeyDown(Keys.Space) && !isInAir)
                {
                    body.Velocity.Y += 11f;

                    if (transform.Position.Y > WaterY)
                    {
                        isInAir = true;
                    }
                    SfxUtil.PlaySound("Sounds/Effects/jump_start", vol: 1, randomPitch: true);
                    var model = (CImportedModel)Game1.Inst.Scene.GetComponentFromEntity <C3DRenderable>(input.Key);
                    model.animFn = SceneUtils.playerAnimation(input.Key, 12, 0.01f);
                }
                if (currentState.IsKeyDown(Keys.H) && !prevState.IsKeyDown(Keys.H))
                {
                    if (Game1.Inst.Scene.GetType() == typeof(WorldScene))
                    {
                        var scene = (WorldScene)Game1.Inst.Scene;
                        var list  = Game1.Inst.Scene.GetComponents <CPickUp>();
                        var inv   = (CInventory)Game1.Inst.Scene.GetComponentFromEntity <CInventory>(input.Key);
                        foreach (var ball in list)
                        {
                            var ballBody = (CBody)Game1.Inst.Scene.GetComponentFromEntity <CBody>(ball.Key);

                            if (body.ReachableArea.Intersects(ballBody.Aabb) && !inv.isFull)
                            {
                                var b = new CInventoryItem(ballBody);
                                inv.items.Add(b);
                                inv.IdsToRemove.Add(ball.Key);
                                prevState = currentState;
                                // Return so only one item will be picked up.
                                return;
                            }
                        }
                    }
                }
                if (currentState.IsKeyDown(Keys.J) && !prevState.IsKeyDown(Keys.J))
                {
                    if (Game1.Inst.Scene.EntityHasComponent <CInventory>(input.Key))
                    {
                        var inv = (CInventory)Game1.Inst.Scene.GetComponentFromEntity <CInventory>(input.Key);
                        if (inv.items.Count > 0)
                        {
                            var item = inv.items.ElementAt(inv.items.Count - 1);

                            var ts      = dt * 100f * item.itemBody.SpeedMultiplier;
                            var newItem = item;
                            newItem.itemBody.Velocity += /*transform.Rotation.Forward
                                                          */new Vector3(item.itemBody.Aabb.Max.X * 2 + .5f, 0f, item.itemBody.Aabb.Max.Z * 2 + .5f) * ts;

                            inv.items.Remove(item);
                            inv.itemsToRemove.Add(newItem);
                        }
                    }
                }
                prevState = currentState;

                addRot              = Matrix.CreateFromYawPitchRoll(yaw, pitch, roll);
                transform.Heading  += yaw;
                transform.Rotation *= addRot;
            }
        }
Ejemplo n.º 9
0
 public void RegisterEvent(CPlayer Owner, MISSION_TYPE MissionType, CPlayer PlayerKilled, CInventoryItem InventoryItem)
 {
     testPINVOKE.CMissionManager_RegisterEvent__SWIG_2(swigCPtr, CPlayer.getCPtr(Owner), (int)MissionType, CPlayer.getCPtr(PlayerKilled), CInventoryItem.getCPtr(InventoryItem));
 }
Ejemplo n.º 10
0
 public void RegisterEvent(CPlayer Owner, MISSION_TYPE MissionType, CPlayer PlayerKilled, CInventoryItem InventoryItem, CProjectile Projectile, SWIGTYPE_p_void UserData)
 {
     testPINVOKE.CMissionManager_RegisterEvent__SWIG_0(swigCPtr, CPlayer.getCPtr(Owner), (int)MissionType, CPlayer.getCPtr(PlayerKilled), CInventoryItem.getCPtr(InventoryItem), CProjectile.getCPtr(Projectile), SWIGTYPE_p_void.getCPtr(UserData));
 }
Ejemplo n.º 11
0
 public void OnKill(CPlayer PlayerKilled, CInventoryItem InventoryItem)
 {
     testPINVOKE.CPlayerPimpl_OnKill__SWIG_1(swigCPtr, CPlayer.getCPtr(PlayerKilled), CInventoryItem.getCPtr(InventoryItem));
 }
Ejemplo n.º 12
0
 public void UseItem(CGameObject GameObject, CInventoryItem Item)
 {
     testPINVOKE.CPlayerPimpl_UseItem__SWIG_1(swigCPtr, CGameObject.getCPtr(GameObject), CInventoryItem.getCPtr(Item));
 }
Ejemplo n.º 13
0
 public void RemoveItem(CInventoryItem Item)
 {
     testPINVOKE.CPlayerPimpl_RemoveItem(swigCPtr, CInventoryItem.getCPtr(Item));
 }
Ejemplo n.º 14
0
 public void RemoveItem(CInventoryItem InventoryItem)
 {
     testPINVOKE.CItemsManager_RemoveItem(swigCPtr, CInventoryItem.getCPtr(InventoryItem));
 }
Ejemplo n.º 15
0
 internal static HandleRef getCPtr(CInventoryItem obj)
 {
     return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr);
 }
Ejemplo n.º 16
0
 public void AddItem(CInventoryItem Item)
 {
     testPINVOKE.CPlayer_AddItem(swigCPtr, CInventoryItem.getCPtr(Item));
 }