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); }
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); }
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; }
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; }
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"); }
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); }
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); }
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); }
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); }
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; }
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 ); }
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 }; }
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); }
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); }
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); }
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); }
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); }
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; }
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 }; }
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; }
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); }
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); }