コード例 #1
0
        public static void performDebrisCreate(short seed, int xPosition, int yPosition, byte facingDirection, byte type, short index, short stack, long who)
        {
            Game1.recentMultiplayerRandom = new Random((int)seed);
            Vector2 vector2             = new Vector2((float)xPosition, (float)yPosition);
            Vector2 debrisOrigin        = new Vector2((float)xPosition, (float)yPosition);
            Item    itemFromDescription = ObjectFactory.getItemFromDescription(type, (int)index, (int)stack);

            switch (facingDirection)
            {
            case 0:
                debrisOrigin.X -= (float)(Game1.tileSize / 2);
                debrisOrigin.Y -= (float)(Game1.tileSize * 2 + Game1.recentMultiplayerRandom.Next(Game1.tileSize / 2));
                vector2.Y      -= (float)(Game1.tileSize * 3);
                break;

            case 1:
                debrisOrigin.X += (float)(Game1.tileSize * 2 / 3);
                debrisOrigin.Y -= (float)(Game1.tileSize / 2 - Game1.recentMultiplayerRandom.Next(Game1.tileSize / 8));
                vector2.X      += (float)(Game1.tileSize * 4);
                break;

            case 2:
                debrisOrigin.X -= (float)(Game1.tileSize / 2);
                debrisOrigin.Y += (float)Game1.recentMultiplayerRandom.Next(Game1.tileSize / 2);
                vector2.Y      += (float)(Game1.tileSize * 3 / 2);
                break;

            case 3:
                debrisOrigin.X -= (float)Game1.tileSize;
                debrisOrigin.Y -= (float)(Game1.tileSize / 2 - Game1.recentMultiplayerRandom.Next(Game1.tileSize / 8));
                vector2.X      -= (float)(Game1.tileSize * 4);
                break;
            }
            if (Game1.IsClient)
            {
                Game1.currentLocation.debris.Add(new Debris(itemFromDescription, debrisOrigin, vector2));
            }
            else
            {
                if (!Game1.IsServer)
                {
                    return;
                }
                Game1.otherFarmers[who].currentLocation.debris.Add(new Debris(itemFromDescription, debrisOrigin, vector2));
                MultiplayerUtility.broadcastDebrisCreate(seed, vector2, (int)facingDirection, itemFromDescription, who);
            }
        }