fCraft.Physics.PlayerPlacingPhysics C# (CSharp) Method

PlayerPlacingPhysics() public static method

public static PlayerPlacingPhysics ( object sender, PlayerPlacingBlockEventArgs e ) : void
sender object
e fCraft.Events.PlayerPlacingBlockEventArgs
return void
        public static void PlayerPlacingPhysics( object sender, PlayerPlacingBlockEventArgs e )
        {
            World world = e.Player.World;
            if ( e.Result != CanPlaceResult.Allowed ) {
                return;
            }
            if ( e.NewBlock == Block.Gold ) {
                if ( e.Context == BlockChangeContext.Manual ) {
                    if ( e.Player.fireworkMode && world.fireworkPhysics ) {
                        if ( world.FireworkCount > 10 ) {
                            e.Result = CanPlaceResult.Revert;
                            e.Player.Message( "&WThere are too many active fireworks on this world" );
                            return;
                        } else {
                            world.FireworkCount++;
                            world.AddPhysicsTask( new Firework( world, e.Coords ), 300 );
                        }
                    }
                }
            }
            if ( e.NewBlock == Block.TNT ) {
                if ( world.tntPhysics ) {
                    if ( e.Context == BlockChangeContext.Manual ) {
                        lock ( world.SyncRoot ) {
                            world.AddPhysicsTask( new TNTTask( world, e.Coords, e.Player, false, true ), 3000 );
                            return;
                        }
                    }
                }
            }
            if ( e.NewBlock == Block.Sand || e.NewBlock == Block.Gravel ) {
                if ( e.Context == BlockChangeContext.Manual ) {
                    if ( world.sandPhysics ) {
                        lock ( world.SyncRoot ) {
                            world.AddPhysicsTask( new SandTask( world, e.Coords, e.NewBlock ), 150 );
                            return;
                        }
                    }
                }
            }
            if ( Physics.CanFloat( e.NewBlock ) ) {
                if ( world.waterPhysics ) {
                    if ( e.Context == BlockChangeContext.Manual ) {
                        world.AddPhysicsTask( new BlockFloat( world, e.Coords, e.NewBlock ), 200 );
                        return;
                    }
                }
            }
            if ( !Physics.CanFloat( e.NewBlock )
                && e.NewBlock != Block.Air
                && e.NewBlock != Block.Water
                && e.NewBlock != Block.Lava
                && e.NewBlock != Block.BrownMushroom
                && e.NewBlock != Block.RedFlower
                && e.NewBlock != Block.RedMushroom
                && e.NewBlock != Block.YellowFlower
                && e.NewBlock != Block.Plant ) {
                if ( e.Context == BlockChangeContext.Manual ) {
                    if ( world.waterPhysics ) {
                        world.AddPhysicsTask( new BlockSink( world, e.Coords, e.NewBlock ), 200 );
                        return;
                    }
                }
            }
        }