private void GenerateSteamParticles(BlockPos pos, IWorldAccessor world)
        {
            float minQuantity   = 50;
            float maxQuantity   = 100;
            int   color         = ColorUtil.ToRgba(100, 225, 225, 225);
            Vec3d minPos        = new Vec3d();
            Vec3d addPos        = new Vec3d();
            Vec3f minVelocity   = new Vec3f(-0.25f, 0.1f, -0.25f);
            Vec3f maxVelocity   = new Vec3f(0.25f, 0.1f, 0.25f);
            float lifeLength    = 2.0f;
            float gravityEffect = -0.015f;
            float minSize       = 0.1f;
            float maxSize       = 0.1f;

            SimpleParticleProperties steamParticles = new SimpleParticleProperties(
                minQuantity, maxQuantity,
                color,
                minPos, addPos,
                minVelocity, maxVelocity,
                lifeLength,
                gravityEffect,
                minSize, maxSize,
                EnumParticleModel.Quad
                );

            steamParticles.minPos.Set(pos.ToVec3d().AddCopy(0.5, 1.1, 0.5));
            steamParticles.addPos.Set(new Vec3d(0.5, 1.0, 0.5));
            steamParticles.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEARINCREASE, 1.0f);
            world.SpawnParticles(steamParticles);
        }
Exemple #2
0
        public override void Initialize(ICoreAPI api, JsonObject properties)
        {
            base.Initialize(api, properties);

            bepu = Blockentity as BEPulverizer;


            Matrixf mat = bepu.mat;

            leftOffset  = mat.TransformVector(new Vec4f(4.5f / 16f - 0.5f, 4 / 16f, -4.5f / 16f, 0f));
            rightOffset = mat.TransformVector(new Vec4f(11.5f / 16f - 0.5f, 4 / 16f, -4.5f / 16f, 0f));


            slideDustParticles = new SimpleParticleProperties(1, 3, ColorUtil.ToRgba(40, 220, 220, 220), new Vec3d(), new Vec3d(), new Vec3f(-0.25f, -0.25f, -0.25f), new Vec3f(0.25f, 0.25f, 0.25f), 1, 1, 0.1f, 0.2f, EnumParticleModel.Quad);
            slideDustParticles.AddPos.Set(2 / 32f, 1 / 32f, 2 / 32f);
            slideDustParticles.WithTerrainCollision = false;
            slideDustParticles.ParticleModel        = EnumParticleModel.Quad;
            slideDustParticles.LifeLength           = 0.75f;
            slideDustParticles.SelfPropelled        = true;
            slideDustParticles.GravityEffect        = 0f;
            slideDustParticles.SizeEvolve           = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, 0.4f);
            slideDustParticles.OpacityEvolve        = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -16f);
            slideDustParticles.MinQuantity          = 1;
            slideDustParticles.AddQuantity          = 3;

            Vec4f vec = mat.TransformVector(new Vec4f(-0.1f, -0.1f, 0.2f, 0f));

            slideDustParticles.MinVelocity.Set(vec.X, vec.Y, vec.Z);

            vec = mat.TransformVector(new Vec4f(0.2f, -0.05f, 0.2f, 0f));
            slideDustParticles.AddVelocity.Set(vec.X, vec.Y, vec.Z);

            leftSlidePos  = mat.TransformVector(new Vec4f(4.5f / 16f - 0.5f, 4 / 16f, -2.5f / 16f, 0f)).XYZ.ToVec3d().Add(Position).Add(0.5, 0, 0.5);
            rightSlidePos = mat.TransformVector(new Vec4f(11.5f / 16f - 0.5f, 4 / 16f, -2.5f / 16f, 0f)).XYZ.ToVec3d().Add(Position).Add(0.5, 0, 0.5);
        }
Exemple #3
0
        public static SimpleParticleProperties TemporalEffectAtPos(this BlockPos pos, ICoreAPI api)
        {
            SimpleParticleProperties p = TemporalEffect;
            Vec3d posvec = pos.DownCopy().MidPoint();
            int   r      = 53;
            int   g      = 221;
            int   b      = 172;

            p.Color = (r << 16) | (g << 8) | (b << 0) | (50 << 24);

            p.AddPos.Set(0, 0, 0);
            p.BlueEvolve    = null;
            p.RedEvolve     = null;
            p.GreenEvolve   = null;
            p.MinSize       = 0.1f;
            p.MaxSize       = 0.2f;
            p.SizeEvolve    = null;
            p.OpacityEvolve = EvolvingNatFloat.create(EnumTransformFunction.LINEAR, 100f);

            double xpos = rndPos.nextFloat();
            double ypos = 1.9 + api.World.Rand.NextDouble() * 0.2;
            double zpos = rndPos.nextFloat();

            p.LifeLength = GameMath.Sqrt(xpos * xpos + zpos * zpos) / 10;
            p.MinPos.Set(posvec.X + xpos, posvec.Y + ypos, posvec.Z + zpos);
            p.MinVelocity.Set(-(float)xpos, -1 - (float)api.World.Rand.NextDouble() / 2, -(float)zpos);
            p.MinQuantity = 0.25f;
            p.AddQuantity = 0;

            return(p);
        }
        static FallingBlockParticlesModSystem()
        {
            dustParticles             = new SimpleParticleProperties(1, 3, ColorUtil.ToRgba(40, 220, 220, 220), new Vec3d(), new Vec3d(), new Vec3f(-0.25f, -0.25f, -0.25f), new Vec3f(0.25f, 0.25f, 0.25f), 1, 1, 0.3f, 0.3f, EnumParticleModel.Quad);
            dustParticles.AddQuantity = 5;
            dustParticles.MinVelocity.Set(-0.05f, -0.4f, -0.05f);
            dustParticles.AddVelocity.Set(0.1f, 0.2f, 0.1f);
            dustParticles.WithTerrainCollision = true;
            dustParticles.ParticleModel        = EnumParticleModel.Quad;
            dustParticles.OpacityEvolve        = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -16f);
            dustParticles.SizeEvolve           = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, 3f);
            dustParticles.GravityEffect        = 0;
            dustParticles.MaxSize       = 1.3f;
            dustParticles.LifeLength    = 3f;
            dustParticles.SelfPropelled = true;
            dustParticles.AddPos.Set(1.4, 1.4, 1.4);


            bitsParticles = new SimpleParticleProperties(1, 3, ColorUtil.ToRgba(40, 220, 220, 220), new Vec3d(), new Vec3d(), new Vec3f(-0.25f, -0.25f, -0.25f), new Vec3f(0.25f, 0.25f, 0.25f), 1, 1, 0.1f, 0.3f, EnumParticleModel.Quad);
            bitsParticles.AddPos.Set(1.4, 1.4, 1.4);
            bitsParticles.AddQuantity = 20;
            bitsParticles.MinVelocity.Set(-0.25f, 0, -0.25f);
            bitsParticles.AddVelocity.Set(0.5f, 1, 0.5f);
            bitsParticles.WithTerrainCollision = true;
            bitsParticles.ParticleModel        = EnumParticleModel.Cube;
            bitsParticles.LifeLength           = 1.5f;
            bitsParticles.SizeEvolve           = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -0.5f);
            bitsParticles.GravityEffect        = 2.5f;
            bitsParticles.MinSize = 0.5f;
            bitsParticles.MaxSize = 1.5f;
        }
Exemple #5
0
        static BlockEntityAnvil()
        {
            smallMetalSparks = new SimpleParticleProperties(
                2, 5,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-3f, 8f, -3f),
                new Vec3f(3f, 12f, 3f),
                0.1f,
                1f,
                0.25f, 0.25f,
                EnumParticleModel.Quad
                );
            smallMetalSparks.glowLevel = 128;
            smallMetalSparks.addPos.Set(1 / 16f, 0, 1 / 16f);
            smallMetalSparks.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.05f);


            bigMetalSparks = new SimpleParticleProperties(
                2, 8,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-1f, 0.5f, -1f),
                new Vec3f(2f, 1.5f, 2f),
                0.5f,
                1f,
                0.25f, 0.25f
                );
            bigMetalSparks.glowLevel = 128;
            bigMetalSparks.addPos.Set(1 / 16f, 0, 1 / 16f);
            bigMetalSparks.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.25f);
        }
        static BlockCookedContainer()
        {
            smokeHeld = new SimpleParticleProperties(
                1, 1,
                ColorUtil.ToRgba(50, 220, 220, 220),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-0.05f, 0.1f, -0.05f),
                new Vec3f(0.05f, 0.15f, 0.05f),
                1.5f,
                0,
                0.25f,
                0.35f,
                EnumParticleModel.Quad
                );
            smokeHeld.SelfPropelled = true;
            smokeHeld.addPos.Set(0.1, 0.1, 0.1);


            foodSparks = new SimpleParticleProperties(
                1, 1,
                ColorUtil.ToRgba(255, 83, 233, 255),
                new Vec3d(), new Vec3d(),
                new Vec3f(-3f, 1f, -3f),
                new Vec3f(3f, 8f, 3f),
                0.5f,
                1f,
                0.25f, 0.25f
                );
            foodSparks.glowLevel = 0;
        }
Exemple #7
0
        public override void Initialize(ICoreAPI api)
        {
            base.Initialize(api);

            if (api.Side.IsServer())
            {
                RegisterGameTickListener(dt =>
                {
                    SimpleParticleProperties props = Pos.DownCopy().TemporalEffectAtPos(api);
                    props.MinPos.Add(0, 0.5, 0);
                    api.World.SpawnParticles(props);
                    List <IPlayer> intruders = new List <IPlayer>();

                    if (cooldown && api.World.GetPlayersAround(Pos.ToVec3d(), 13, 13).Any(e => {
                        if (e.PlayerUID == OwnerUID || OwnerUID == null || OwnerUID == "")
                        {
                            return(false);
                        }

                        intruders.Add(e);
                        return(true);
                    }))
                    {
                        LimitCheck();
                        cooldown = false;
                        foreach (var val in intruders)
                        {
                            Breakins.Add(val.PlayerName + " is inside the radius of " + Pos.RelativeToSpawn(api.World).ToVec3i() + " at " + val.Entity.LocalPos.XYZInt.ToBlockPos().RelativeToSpawn(api.World));
                            MarkDirty();
                        }
                        RegisterDelayedCallback(dt2 => cooldown = true, 5000);
                    }
                }, 30);
            }
        }
        public override void StartClientSide(ICoreClientAPI api)
        {
            this.capi = api;
            this.api  = api;

            clientChannel =
                api.Network.RegisterChannel("gameeffects")
                .RegisterMessageType(typeof(GameEffectsPacket))
                .SetMessageHandler <GameEffectsPacket>(OnGameEffectToggle)
            ;

            blackAirParticles = new SimpleParticleProperties()
            {
                color                = ColorUtil.ToRgba(150, 50, 25, 15),
                model                = EnumParticleModel.Quad,
                minSize              = 0.1f,
                maxSize              = 1f,
                gravityEffect        = 0,
                lifeLength           = 1.2f,
                WithTerrainCollision = false,
                ShouldDieInLiquid    = true,
                minVelocity          = new Vec3f(-5f, 10f, -3f),
                minQuantity          = 1,
                addQuantity          = 0,
            };
            blackAirParticles.addVelocity   = new Vec3f(0f, 30f, 0);
            blackAirParticles.OpacityEvolve = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -8);

            api.Event.RegisterRenderer(this, EnumRenderStage.Before, "gameeffects");
        }
Exemple #9
0
        static BEMortarAndPestle()
        {
            Vec3d CommonPos = new Vec3d(3 / 32f, 0, 3 / 32f);

            /*
             * FlourParticles = new SimpleParticleProperties(1, 3, ColorUtil.ToRgba(40, 220, 220, 220), new Vec3d(), new Vec3d(), new Vec3f(-0.25f, -0.25f, -0.25f), new Vec3f(0.25f, 0.25f, 0.25f), 1, 1, 0.1f, 0.3f, EnumParticleModel.Quad);
             * FlourParticles.addPos.Set(CommonPos);
             * FlourParticles.addQuantity = 20;
             * FlourParticles.minVelocity.Set(-0.25f, 0, -0.25f);
             * FlourParticles.addVelocity.Set(0.5f, 1, 0.5f);
             * FlourParticles.WithTerrainCollision = true;
             * FlourParticles.model = EnumParticleModel.Cube;
             * FlourParticles.lifeLength = 1.5f;
             * FlourParticles.SizeEvolve = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -0.4f);
             */

            FlourDustParticles = new SimpleParticleProperties(1, 3, ColorUtil.ToRgba(40, 220, 220, 220), new Vec3d(), new Vec3d(), new Vec3f(-0.25f, -0.25f, -0.25f), new Vec3f(0.25f, 0.25f, 0.25f), 1, 1, 0.1f, 0.3f, EnumParticleModel.Quad);
            FlourDustParticles.addPos.Set(CommonPos);
            FlourDustParticles.addQuantity = 5;
            FlourDustParticles.minVelocity.Set(-0.05f, 0, -0.05f);
            FlourDustParticles.addVelocity.Set(0.1f, 0.2f, 0.1f);
            FlourDustParticles.WithTerrainCollision = false;
            FlourDustParticles.model         = EnumParticleModel.Quad;
            FlourDustParticles.lifeLength    = 1.5f;
            FlourDustParticles.SelfPropelled = true;
            FlourDustParticles.gravityEffect = 0;
            FlourDustParticles.SizeEvolve    = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, 0.4f);
            FlourDustParticles.OpacityEvolve = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -16f);
        }
Exemple #10
0
        static ItemKnife()
        {
            particlesStab = new SimpleParticleProperties(
                1, 1,
                ColorUtil.ToRgba(50, 220, 220, 220),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-0.1f, -0.1f, -0.1f),
                new Vec3f(0.1f, 0.1f, 0.1f),
                1.5f,
                0,
                0.5f,
                0.75f,
                EnumParticleModel.Cube
                );

            particlesStab.SizeEvolve = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -0.6f);
            particlesStab.AddPos.Set(0.1f, 0.1f, 0.1f);
            particlesStab.addLifeLength        = 0.5f;
            particlesStab.RandomVelocityChange = true;
            particlesStab.MinQuantity          = 200;
            particlesStab.AddQuantity          = 50;
            particlesStab.MinSize       = 0.2f;
            particlesStab.ParticleModel = EnumParticleModel.Quad;
            particlesStab.OpacityEvolve = EvolvingNatFloat.create(EnumTransformFunction.LINEAR, -150);
        }
Exemple #11
0
        static BlockEntityQuern()
        {
            // 1..20 per tick
            FlourParticles = new SimpleParticleProperties(1, 3, ColorUtil.ToRgba(40, 220, 220, 220), new Vec3d(), new Vec3d(), new Vec3f(-0.25f, -0.25f, -0.25f), new Vec3f(0.25f, 0.25f, 0.25f), 1, 1, 0.1f, 0.3f, EnumParticleModel.Quad);
            FlourParticles.AddPos.Set(1 + 2 / 32f, 0, 1 + 2 / 32f);
            FlourParticles.AddQuantity = 20;
            FlourParticles.MinVelocity.Set(-0.25f, 0, -0.25f);
            FlourParticles.AddVelocity.Set(0.5f, 1, 0.5f);
            FlourParticles.WithTerrainCollision = true;
            FlourParticles.ParticleModel        = EnumParticleModel.Cube;
            FlourParticles.LifeLength           = 1.5f;
            FlourParticles.SizeEvolve           = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -0.4f);

            // 1..5 per tick
            FlourDustParticles = new SimpleParticleProperties(1, 3, ColorUtil.ToRgba(40, 220, 220, 220), new Vec3d(), new Vec3d(), new Vec3f(-0.25f, -0.25f, -0.25f), new Vec3f(0.25f, 0.25f, 0.25f), 1, 1, 0.1f, 0.3f, EnumParticleModel.Quad);
            FlourDustParticles.AddPos.Set(1 + 2 / 32f, 0, 1 + 2 / 32f);
            FlourDustParticles.AddQuantity = 5;
            FlourDustParticles.MinVelocity.Set(-0.05f, 0, -0.05f);
            FlourDustParticles.AddVelocity.Set(0.1f, 0.2f, 0.1f);
            FlourDustParticles.WithTerrainCollision = false;
            FlourDustParticles.ParticleModel        = EnumParticleModel.Quad;
            FlourDustParticles.LifeLength           = 1.5f;
            FlourDustParticles.SelfPropelled        = true;
            FlourDustParticles.GravityEffect        = 0;
            FlourDustParticles.SizeEvolve           = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, 0.4f);
            FlourDustParticles.OpacityEvolve        = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -16f);
        }
Exemple #12
0
        static BlockEntityAnvil()
        {
            smallMetalSparks = new SimpleParticleProperties(
                2, 5,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-3f, 8f, -3f),
                new Vec3f(3f, 12f, 3f),
                0.1f,
                1f,
                0.25f, 0.25f,
                EnumParticleModel.Quad
                );
            smallMetalSparks.VertexFlags = 128;
            smallMetalSparks.AddPos.Set(1 / 16f, 0, 1 / 16f);
            smallMetalSparks.SizeEvolve    = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.05f);
            smallMetalSparks.ParticleModel = EnumParticleModel.Quad;
            smallMetalSparks.LifeLength    = 0.03f;
            smallMetalSparks.MinVelocity   = new Vec3f(-1f, 1f, -1f);
            smallMetalSparks.AddVelocity   = new Vec3f(2f, 2f, 2f);
            smallMetalSparks.MinQuantity   = 4;
            smallMetalSparks.AddQuantity   = 6;
            smallMetalSparks.MinSize       = 0.1f;
            smallMetalSparks.MaxSize       = 0.1f;
            smallMetalSparks.SizeEvolve    = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.1f);



            bigMetalSparks = new SimpleParticleProperties(
                2, 8,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-1f, 0.5f, -1f),
                new Vec3f(2f, 1.5f, 2f),
                0.5f,
                1f,
                0.25f, 0.25f
                );
            bigMetalSparks.VertexFlags = 128;
            bigMetalSparks.AddPos.Set(1 / 16f, 0, 1 / 16f);
            bigMetalSparks.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.25f);



            slagPieces = new SimpleParticleProperties(
                2, 12,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-1f, 0.5f, -1f),
                new Vec3f(2f, 1.5f, 2f),
                0.5f,
                1f,
                0.25f, 0.5f
                );
            slagPieces.AddPos.Set(1 / 16f, 0, 1 / 16f);
            slagPieces.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.25f);
        }
Exemple #13
0
        public void DebugParticles(Vec3d position, byte r, byte g, byte b, int quantity = 5)
        {
#if DEBUG
            SimpleParticleProperties particles = new SimpleParticleProperties(
                quantity, quantity, ColorUtil.ColorFromRgba(b, g, r, 50),
                position, new Vec3d(position.X, position.Y + 1, position.Z), new Vec3f(-1, -1, -1), new Vec3f(1, 1, 1));
            entity.World.SpawnParticles(particles);
#endif
        }
        static ItemRangedWeapon()
        {
            fireBlast = new SimpleParticleProperties(
                10,
                15,
                ColorUtil.ToRgba(255, 250, 100, 50),
                //ColorUtil.ColorFromRgba(175, 222, 255, 50),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-4f, -4f, -4f),
                new Vec3f(4f, 4f, 4f),
                0.1f,
                0.3f,
                1.1f, 1.3f);
            // Evolution is scaled for the lifetime of the particle. I think.
            fireBlast.SizeEvolve  = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.5f);
            fireBlast.GreenEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -100f);
            fireBlast.RedEvolve   = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -50f); // And by red we mean blue because BGR.
            fireBlast.VertexFlags = 128;                                                      // Glow

            fireSmoke = new SimpleParticleProperties(
                9, 11,
                ColorUtil.ToRgba(150, 80, 80, 80),
                new Vec3d(-0.4f, -0.4f, -0.4f),
                new Vec3d(0.4f, 0.4f, 0.4f),
                new Vec3f(-1 / 8f, 0.01f, -1 / 8f),
                new Vec3f(1 / 8f, 0.3f, 1 / 8f),
                2f,
                -0.025f / 4,
                0.9f,
                1.6f,
                EnumParticleModel.Quad
                );

            fireSmoke.SizeEvolve    = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.25f);
            fireSmoke.SelfPropelled = true;

            fireBlast = new SimpleParticleProperties(
                10,
                15,
                ColorUtil.ToRgba(255, 250, 100, 50),
                //ColorUtil.ColorFromRgba(175, 222, 255, 50),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-4f, -4f, -4f),
                new Vec3f(4f, 4f, 4f),
                0.1f,
                0.3f,
                1.1f, 1.3f);
            // Evolution is scaled for the lifetime of the particle. I think.
            fireBlast.SizeEvolve  = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.5f);
            fireBlast.GreenEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -100f);
            fireBlast.RedEvolve   = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -50f); // And by red we mean blue because BGR.
            fireBlast.VertexFlags = 128;                                                      // Glow
        }
        public override void OnLoaded(ICoreAPI api)
        {
            base.OnLoaded(api);

            WaterParticles = new SimpleParticleProperties(
                1, 1, ColorUtil.WhiteArgb, new Vec3d(), new Vec3d(),
                new Vec3f(-1.5f, 0, -1.5f), new Vec3f(1.5f, 3f, 1.5f), 1f, 1f, 0.33f, 0.75f, EnumParticleModel.Cube
                );

            WaterParticles.AddPos          = new Vec3d(0.125 / 2, 2 / 16f, 0.125 / 2);
            WaterParticles.SizeEvolve      = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -1f);
            WaterParticles.ClimateColorMap = "climateWaterTint";
            WaterParticles.AddQuantity     = 1;
        }
Exemple #16
0
 static BlockEntityBeehive()
 {
     Bees = new SimpleParticleProperties(
         1, 1,
         ColorUtil.ToRgba(255, 215, 156, 65),
         new Vec3d(), new Vec3d(),
         new Vec3f(0, 0, 0),
         new Vec3f(0, 0, 0),
         1f,
         0f,
         0.5f, 0.5f,
         EnumParticleModel.Cube
         );
 }
        static BlockSticksLayer()
        {
            drip = new AssetLocation("sounds/environment/drip");

            waterParticles = new SimpleParticleProperties(
                1, 1, WeatherSimulationParticles.waterColor, new Vec3d(), new Vec3d(),
                new Vec3f(0f, 0.02f, 0f), new Vec3f(0f, -0.1f, 0f), 0.6f, 1f, 0.6f, 0.8f, EnumParticleModel.Cube
                );
            waterParticles.MinPos          = new Vec3d(0.0, -0.05, 0.0);
            waterParticles.AddPos          = new Vec3d(1.0, 0.04, 1.0);
            waterParticles.SizeEvolve      = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.01f);
            waterParticles.ClimateColorMap = "climateWaterTint";
            waterParticles.AddQuantity     = 1;
        }
 static BECheeseCurdsBundle()
 {
     props = new SimpleParticleProperties(
         0.3f,
         1.3f,
         ColorUtil.ColorFromRgba(248, 243, 227, 255),
         new Vec3d(), new Vec3d(),
         new Vec3f(), new Vec3f(),
         2f,
         1f,
         0.05f,
         0.2f,
         EnumParticleModel.Quad
         );
 }
Exemple #19
0
 static BlockEntityFruitPress()
 {
     liquidParticles = new SimpleParticleProperties()
     {
         MinVelocity   = new Vec3f(-0.04f, 0, -0.04f),
         AddVelocity   = new Vec3f(0.08f, 0, 0.08f),
         addLifeLength = 0.5f,
         LifeLength    = 0.5f,
         MinQuantity   = 0.25f,
         GravityEffect = 0.5f,
         SelfPropelled = true,
         MinSize       = 0.1f,
         MaxSize       = 0.2f
     };
 }
Exemple #20
0
        private void OnClientGameTick(float dt)
        {
            if (ownBlock == null || Api?.World == null)
            {
                return;
            }

            SimpleParticleProperties currentParticles = (Api.World.ElapsedMilliseconds > 100 && Api.World.ElapsedMilliseconds - lastCollideMsOwnPlayer < 100) ?
                                                        ownBlock.insideParticles :
                                                        ownBlock.idleParticles
            ;

            currentParticles.MinPos = posvec;
            Api.World.SpawnParticles(currentParticles);
        }
Exemple #21
0
 static NeolithicTransient()
 {
     Flies = new SimpleParticleProperties(
         1, 1,
         ColorUtil.ToRgba(100, 0, 0, 0),
         new Vec3d(), new Vec3d(),
         new Vec3f(-1f, -1f, -1f),
         new Vec3f(1f, 1f, 1f),
         1.0f,
         0.01f,
         0.25f, 0.30f,
         EnumParticleModel.Cube
         );
     Flies.glowLevel = 1;
     Flies.addPos.Set(1 / 16f, 0, 1 / 16f);
     Flies.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.05f);
 }
Exemple #22
0
 static BlockEntityBomb()
 {
     smallSparks = new SimpleParticleProperties(
         1, 1,
         ColorUtil.ToRgba(255, 255, 233, 0),
         new Vec3d(), new Vec3d(),
         new Vec3f(-3f, 5f, -3f),
         new Vec3f(3f, 8f, 3f),
         0.03f,
         1f,
         0.25f, 0.25f,
         EnumParticleModel.Quad
         );
     smallSparks.glowLevel = 64;
     smallSparks.addPos.Set(1 / 16f, 0, 1 / 16f);
     smallSparks.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.05f);
 }
Exemple #23
0
        public override void OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, float dropQuantityMultiplier = 1)
        {
            SimpleParticleProperties props =
                new SimpleParticleProperties(
                    15, 22,
                    ColorUtil.ToRgba(150, 255, 255, 255),
                    new Vec3d(pos.X, pos.Y, pos.Z),
                    new Vec3d(pos.X + 1, pos.Y + 1, pos.Z + 1),
                    new Vec3f(-0.2f, -0.1f, -0.2f),
                    new Vec3f(0.2f, 0.2f, 0.2f),
                    1.5f,
                    0,
                    0.5f,
                    1.0f,
                    EnumParticleModel.Quad
                    );

            props.OpacityEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -200);
            props.SizeEvolve    = new EvolvingNatFloat(EnumTransformFunction.LINEAR, 2);

            world.SpawnParticles(props);



            SimpleParticleProperties spiders =
                new SimpleParticleProperties(
                    8, 16,
                    ColorUtil.ToRgba(255, 30, 30, 30),
                    new Vec3d(pos.X, pos.Y, pos.Z),
                    new Vec3d(pos.X + 1, pos.Y + 1, pos.Z + 1),
                    new Vec3f(-2f, -0.3f, -2f),
                    new Vec3f(2f, 1f, 2f),
                    1f,
                    0.5f,
                    0.5f,
                    1.5f,
                    EnumParticleModel.Cube
                    );


            world.SpawnParticles(spiders);



            base.OnBlockBroken(world, pos, byPlayer, dropQuantityMultiplier);
        }
        public override bool OnHeldInteractStep(float secondsUsed, IItemSlot slot, IEntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel)
        {
            if (blockSel == null)
            {
                return(false);
            }

            if (byEntity.World is IClientWorldAccessor)
            {
                ModelTransform tf = new ModelTransform();
                tf.EnsureDefaultValues();

                float offset = GameMath.Clamp(secondsUsed * 3, 0, 2f);

                tf.Translation.Set(-offset, offset / 4f, 0);

                byEntity.Controls.UsingHeldItemTransformBefore = tf;
            }

            SimpleParticleProperties bees = BlockEntityBeehive.Bees;
            BlockPos pos  = blockSel.Position;
            Random   rand = byEntity.World.Rand;

            Vec3d startPos = new Vec3d(pos.X + rand.NextDouble(), pos.Y + rand.NextDouble() * 0.25f, pos.Z + rand.NextDouble());
            Vec3d endPos   = new Vec3d(byEntity.LocalPos.X, byEntity.LocalPos.Y + byEntity.EyeHeight - 0.2f, byEntity.LocalPos.Z);

            Vec3f minVelo = new Vec3f((float)(endPos.X - startPos.X), (float)(endPos.Y - startPos.Y), (float)(endPos.Z - startPos.Z));

            minVelo.Normalize();
            minVelo *= 2;

            bees.minPos               = startPos;
            bees.minVelocity          = minVelo;
            bees.WithTerrainCollision = true;

            IPlayer byPlayer = null;

            if (byEntity is IEntityPlayer)
            {
                byPlayer = byEntity.World.PlayerByUid(((IEntityPlayer)byEntity).PlayerUID);
            }

            byEntity.World.SpawnParticles(bees, byPlayer);

            return(secondsUsed < 4);
        }
Exemple #25
0
        public override void Initialize(EntityProperties properties, JsonObject attributes)
        {
            meteorTransforms = entity.ServerPos;

            rand = new Random((int)this.entity.EntityId);                                               //-- Rand uses the entity ID as a seed so that the client and server can be properly synced --//

            randRotation    = new Vec3f();
            randTranslation = new Vec3f();

            SetRandomValues();
            DetermineMeteorRotation();
            DetermineMeteorTranslation();

            meteorParticles = new SimpleParticleProperties(1, 1, 1, new Vec3d(), new Vec3d(), new Vec3f(), new Vec3f());

            this.entity.Pos.SetFrom(this.entity.ServerPos);
        }
Exemple #26
0
        static BlockSmeltedContainer()
        {
            smokeHeld = new SimpleParticleProperties(
                1, 1,
                ColorUtil.ToRgba(50, 220, 220, 220),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-0.25f, 0.1f, -0.25f),
                new Vec3f(0.25f, 0.1f, 0.25f),
                1.5f,
                -0.075f,
                0.25f,
                0.25f,
                EnumParticleModel.Quad
                );
            smokeHeld.AddPos.Set(0.1, 0.1, 0.1);

            smokePouring = new SimpleParticleProperties(
                1, 2,
                ColorUtil.ToRgba(50, 220, 220, 220),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-0.5f, 0f, -0.5f),
                new Vec3f(0.5f, 0f, 0.5f),
                1.5f,
                -0.1f,
                0.75f,
                0.75f,
                EnumParticleModel.Quad
                );
            smokePouring.AddPos.Set(0.3, 0.3, 0.3);

            bigMetalSparks = new SimpleParticleProperties(
                1, 1,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-3f, 1f, -3f),
                new Vec3f(3f, 8f, 3f),
                0.5f,
                1f,
                0.25f, 0.25f
                );
            bigMetalSparks.VertexFlags = 128;
        }
Exemple #27
0
        public override void OnLoaded(ICoreAPI api)
        {
            base.OnLoaded(api);

            foliageParticles = new SimpleParticleProperties()
            {
                MinQuantity        = 1,
                AddQuantity        = 0,
                MinPos             = new Vec3d(),
                AddPos             = new Vec3d(1, 1, 1),
                LifeLength         = 2,
                GravityEffect      = 0.005f,
                MinSize            = 0.1f,
                MaxSize            = 0.2f,
                ParticleModel      = EnumParticleModel.Quad,
                WindAffectednes    = 2,
                ShouldSwimOnLiquid = true
            };
        }
Exemple #28
0
        public override void OnLoaded(ICoreAPI api)
        {
            base.OnLoaded(api);

            idleParticles = new SimpleParticleProperties(
                0.5f, 1,
                ColorUtil.ToRgba(150, 34, 47, 44),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-0.1f, -0.1f, -0.1f),
                new Vec3f(0.1f, 0.1f, 0.1f),
                1.5f,
                0,
                0.5f,
                0.75f,
                EnumParticleModel.Quad
                );

            idleParticles.SizeEvolve = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -0.6f);
            idleParticles.addPos.Set(1, 2, 1);
            idleParticles.addLifeLength = 0.5f;
            idleParticles.RedEvolve     = new EvolvingNatFloat(EnumTransformFunction.LINEAR, 80);


            insideParticles = new SimpleParticleProperties(
                0.5f, 1,
                ColorUtil.ToRgba(150, 92, 111, 107),
                new Vec3d(),
                new Vec3d(),
                new Vec3f(-0.2f, -0.2f, -0.2f),
                new Vec3f(0.2f, 0.2f, 0.2f),
                1.5f,
                0,
                0.5f,
                0.75f,
                EnumParticleModel.Quad
                );

            insideParticles.SizeEvolve = EvolvingNatFloat.create(EnumTransformFunction.QUADRATIC, -0.6f);
            insideParticles.addPos.Set(1, 2, 1);
            insideParticles.addLifeLength = 0.5f;
        }
Exemple #29
0
    static BlockEntityTFForge()
    {
        smokeParticles = new SimpleParticleProperties(
            1, 1,
            ColorUtil.ToRgba(150, 80, 80, 80),
            new Vec3d(),
            new Vec3d(0.75, 0, 0.75),
            new Vec3f(-1 / 32f, 0.1f, -1 / 32f),
            new Vec3f(1 / 32f, 0.1f, 1 / 32f),
            2f,
            -0.025f / 4,
            0.2f,
            0.4f,
            EnumParticleModel.Quad
            );

        smokeParticles.SizeEvolve    = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.25f);
        smokeParticles.SelfPropelled = true;
        smokeParticles.AddPos.Set(8 / 16.0, 0, 8 / 16.0);
    }
Exemple #30
0
        static BlockEntityBloomery()
        {
            smallMetalSparks = new SimpleParticleProperties(
                2, 5,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-3f, 8f, -3f),
                new Vec3f(3f, 12f, 3f),
                0.1f,
                1f,
                0.25f, 0.25f,
                EnumParticleModel.Quad
                );
            smallMetalSparks.WithTerrainCollision = false;
            smallMetalSparks.VertexFlags          = 128;
            smallMetalSparks.AddPos.Set(1 / 16f, 0, 1 / 16f);
            smallMetalSparks.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.05f);

            breakSparks = new SimpleParticleProperties(
                40, 80,
                ColorUtil.ToRgba(255, 255, 233, 83),
                new Vec3d(), new Vec3d(),
                new Vec3f(-1f, 0.5f, -1f),
                new Vec3f(2f, 1.5f, 2f),
                0.5f,
                1f,
                0.25f, 0.25f
                );
            breakSparks.VertexFlags = 128;
            breakSparks.AddPos.Set(4 / 16f, 4 / 16f, 4 / 16f);
            breakSparks.SizeEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -0.25f);

            smoke = new SimpleParticleProperties(
                1, 1, ColorUtil.ToRgba(128, 110, 110, 110), new Vec3d(), new Vec3d(),
                new Vec3f(-0.2f, 0.3f, -0.2f), new Vec3f(0.2f, 0.3f, 0.2f), 2, 0, 0.5f, 1f, EnumParticleModel.Quad
                );
            smoke.SelfPropelled = true;
            smoke.OpacityEvolve = new EvolvingNatFloat(EnumTransformFunction.LINEAR, -255);
            smoke.SizeEvolve    = new EvolvingNatFloat(EnumTransformFunction.LINEAR, 2);
        }