Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ NewDust()

static int Terraria.Dust.NewDust ( Vector2 Position,
int Width,
int Height,
int Type,
float SpeedX = 0f,
float SpeedY = 0f,
int Alpha = 0,
Color newColor = default(Color),
float Scale = 1f )
inlinestatic

Definition at line 73 of file Dust.cs.

74 {
75 if (Main.gameMenu)
76 {
77 return 6000;
78 }
79 if (Main.rand == null)
80 {
81 Main.rand = new UnifiedRandom((int)DateTime.Now.Ticks);
82 }
83 if (Main.gamePaused)
84 {
85 return 6000;
86 }
87 if (WorldGen.gen)
88 {
89 return 6000;
90 }
91 if (Main.netMode == 2)
92 {
93 return 6000;
94 }
95 int num = (int)(400f * (1f - dCount));
96 Rectangle rectangle = new Rectangle((int)(Main.screenPosition.X - (float)num), (int)(Main.screenPosition.Y - (float)num), Main.screenWidth + num * 2, Main.screenHeight + num * 2);
97 Rectangle value = new Rectangle((int)Position.X, (int)Position.Y, 10, 10);
98 if (!rectangle.Intersects(value))
99 {
100 return 6000;
101 }
102 int result = 6000;
103 for (int i = 0; i < 6000; i++)
104 {
105 Dust dust = Main.dust[i];
106 if (dust.active)
107 {
108 continue;
109 }
110 if ((double)i > (double)Main.maxDustToDraw * 0.9)
111 {
112 if (Main.rand.Next(4) != 0)
113 {
114 return 6000;
115 }
116 }
117 else if ((double)i > (double)Main.maxDustToDraw * 0.8)
118 {
119 if (Main.rand.Next(3) != 0)
120 {
121 return 6000;
122 }
123 }
124 else if ((double)i > (double)Main.maxDustToDraw * 0.7)
125 {
126 if (Main.rand.Next(2) == 0)
127 {
128 return 6000;
129 }
130 }
131 else if ((double)i > (double)Main.maxDustToDraw * 0.6)
132 {
133 if (Main.rand.Next(4) == 0)
134 {
135 return 6000;
136 }
137 }
138 else if ((double)i > (double)Main.maxDustToDraw * 0.5)
139 {
140 if (Main.rand.Next(5) == 0)
141 {
142 return 6000;
143 }
144 }
145 else
146 {
147 dCount = 0f;
148 }
149 int num2 = Width;
150 int num3 = Height;
151 if (num2 < 5)
152 {
153 num2 = 5;
154 }
155 if (num3 < 5)
156 {
157 num3 = 5;
158 }
159 result = i;
160 dust.fadeIn = 0f;
161 dust.active = true;
162 dust.type = Type;
163 dust.noGravity = false;
164 dust.color = newColor;
165 dust.alpha = Alpha;
166 dust.position.X = Position.X + (float)Main.rand.Next(num2 - 4) + 4f;
167 dust.position.Y = Position.Y + (float)Main.rand.Next(num3 - 4) + 4f;
168 dust.velocity.X = (float)Main.rand.Next(-20, 21) * 0.1f + SpeedX;
169 dust.velocity.Y = (float)Main.rand.Next(-20, 21) * 0.1f + SpeedY;
170 dust.frame.X = 10 * Type;
171 dust.frame.Y = 10 * Main.rand.Next(3);
172 dust.shader = null;
173 dust.customData = null;
174 dust.noLightEmittence = false;
175 int num4 = Type;
176 while (num4 >= 100)
177 {
178 num4 -= 100;
179 dust.frame.X -= 1000;
180 dust.frame.Y += 30;
181 }
182 dust.frame.Width = 8;
183 dust.frame.Height = 8;
184 dust.rotation = 0f;
185 dust.scale = 1f + (float)Main.rand.Next(-20, 21) * 0.01f;
186 dust.scale *= Scale;
187 dust.noLight = false;
188 dust.firstFrame = true;
189 if (dust.type == 228 || dust.type == 279 || dust.type == 269 || dust.type == 135 || dust.type == 6 || dust.type == 242 || dust.type == 75 || dust.type == 169 || dust.type == 29 || (dust.type >= 59 && dust.type <= 65) || dust.type == 158 || dust.type == 293 || dust.type == 294 || dust.type == 295 || dust.type == 296 || dust.type == 297 || dust.type == 298 || dust.type == 302 || dust.type == 307 || dust.type == 310)
190 {
191 dust.velocity.Y = (float)Main.rand.Next(-10, 6) * 0.1f;
192 dust.velocity.X *= 0.3f;
193 dust.scale *= 0.7f;
194 }
195 if (dust.type == 127 || dust.type == 187)
196 {
197 dust.velocity *= 0.3f;
198 dust.scale *= 0.7f;
199 }
200 if (dust.type == 308)
201 {
202 dust.velocity *= 0.5f;
203 dust.velocity.Y += 1f;
204 }
205 if (dust.type == 33 || dust.type == 52 || dust.type == 266 || dust.type == 98 || dust.type == 99 || dust.type == 100 || dust.type == 101 || dust.type == 102 || dust.type == 103 || dust.type == 104 || dust.type == 105)
206 {
207 dust.alpha = 170;
208 dust.velocity *= 0.5f;
209 dust.velocity.Y += 1f;
210 }
211 if (dust.type == 41)
212 {
213 dust.velocity *= 0f;
214 }
215 if (dust.type == 80)
216 {
217 dust.alpha = 50;
218 }
219 if (dust.type == 34 || dust.type == 35 || dust.type == 152)
220 {
221 dust.velocity *= 0.1f;
222 dust.velocity.Y = -0.5f;
223 if (dust.type == 34 && !Collision.WetCollision(new Vector2(dust.position.X, dust.position.Y - 8f), 4, 4))
224 {
225 dust.active = false;
226 }
227 }
228 break;
229 }
230 return result;
231 }
static float dCount
Definition Dust.cs:12
bool Intersects(Rectangle value)
Definition Rectangle.cs:129
static DateTime Now
Definition DateTime.cs:103

References Terraria.Dust.active, Terraria.Dust.dCount, Terraria.Main.dust, Terraria.Main.gameMenu, Terraria.Main.gamePaused, Terraria.WorldGen.gen, Microsoft.Xna.Framework.Rectangle.Intersects(), Terraria.Main.maxDustToDraw, Terraria.Main.netMode, System.DateTime.Now, Terraria.Dust.position, Terraria.Main.rand, Microsoft.Xna.Framework.Scale, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.Dust.type, System.value, Terraria.Collision.WetCollision(), Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.NPC.AI(), Terraria.Projectile.AI(), Terraria.Projectile.AI_001(), Terraria.NPC.AI_001_Slimes(), Terraria.NPC.AI_002_FloatingEye(), Terraria.NPC.AI_003_Fighters(), Terraria.NPC.AI_005_EaterOfSouls(), Terraria.NPC.AI_006_Worms(), Terraria.Projectile.AI_009_MagicMissiles(), Terraria.Projectile.AI_009_MagicMissiles_Old(), Terraria.Projectile.AI_010(), Terraria.Projectile.AI_015_Flails_Dust(), Terraria.Projectile.AI_016(), Terraria.Projectile.AI_019_Spears(), Terraria.Projectile.AI_019_Spears_Old(), Terraria.Projectile.AI_026(), Terraria.NPC.AI_026_Unicorns(), Terraria.NPC.AI_037_Destroyer(), Terraria.NPC.AI_045_Golem(), Terraria.Projectile.AI_061_FishingBobber_DoASplash(), Terraria.Projectile.AI_062(), Terraria.NPC.AI_065_Butterflies(), Terraria.Projectile.AI_067_FreakingPirates(), Terraria.NPC.AI_069_DukeFishron(), Terraria.Projectile.AI_075(), Terraria.Projectile.AI_099_2(), Terraria.NPC.AI_107_ImprovedWalkers(), Terraria.NPC.AI_108_DivingFlyer(), Terraria.Projectile.AI_111_DryadsWard(), Terraria.NPC.AI_117_BloodNautilus(), Terraria.NPC.AI_120_HallowBoss(), Terraria.Projectile.AI_120_StardustGuardian(), Terraria.NPC.AI_121_QueenSlime(), Terraria.Projectile.AI_121_StardustDragon(), Terraria.Projectile.AI_135_OgreStomp(), Terraria.Projectile.AI_145_BookStaffStorm(), Terraria.Projectile.AI_147_Celeb2Rocket(), Terraria.Projectile.AI_147_Explosion(), Terraria.Projectile.AI_162_TigerPounce(), Terraria.Projectile.AI_165_Whip(), Terraria.Projectile.AI_177_IceWhipSlicer(), Terraria.Projectile.AI_178_FireExplosion(), Terraria.Projectile.AI_184_BadTorchLuck(), Terraria.Projectile.AI_186_PrincessWeapon(), Terraria.NPC.BigMimicSpawnSmoke(), Terraria.DataStructures.PlayerDrawSet.BoringSetup(), Terraria.NPC.CheckDrowning(), Terraria.Player.CheckDrowning(), Terraria.Dust.CloneDust(), Terraria.NPC.Collision_WaterCollision(), Terraria.Player.CommandForbiddenStorm(), Terraria.Player.DashMovement(), Terraria.Item.DespawnIfMeetingConditions(), Terraria.Projectile.DoRainbowCrystalStaffExplosion(), Terraria.Mount.DoSpawnDust(), Terraria.Player.DoubleJumpVisuals(), Terraria.GameContent.Drawing.TileDrawing.DrawAnimatedTile_AdjustForVisionChangers(), Terraria.Main.DrawItem(), Terraria.Main.DrawNPCDirect(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_07_LeinforsHairShampoo(), Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_14_2_GlassSlipperSparkles(), Terraria.GameContent.Drawing.TileDrawing.DrawSingleTile(), Terraria.GameContent.Drawing.TileDrawing.DrawTiles_EmitParticles(), Terraria.GameContent.Drawing.TileDrawing.DrawVineStrip(), Terraria.GameContent.Drawing.TileDrawing.EmitAlchemyHerbParticles(), Terraria.GameContent.Events.Sandstorm.EmitDust(), Terraria.Projectile.EmitEnchantmentVisualsAt(), Terraria.Player.EmitMaxManaEffect(), Terraria.NPC.FindFrame(), Terraria.MessageBuffer.GetData(), Terraria.Gore.Gore_UpdateLeaf(), Terraria.Projectile.HandleMovement(), Terraria.NPC.HitEffect(), Terraria.Player.Hurt(), Terraria.GameContent.Liquid.LiquidRenderer.InternalPrepareDraw(), Terraria.Player.ItemCheck(), Terraria.Player.ItemCheck_ApplyHoldStyle(), Terraria.Player.ItemCheck_ApplyUseStyle(), Terraria.Player.ItemCheck_EmitHeldItemLight(), Terraria.Player.ItemCheck_EmitUseVisuals(), Terraria.Player.ItemCheck_GetMeleeHitbox(), Terraria.Player.ItemCheck_ManageRightClickFeatures_ShieldRaise(), Terraria.Player.JumpMovement(), Terraria.Projectile.Kill(), Terraria.WorldGen.KillActuator(), Terraria.Player.KillMe(), Terraria.WorldGen.KillTile_MakeTileDust(), Terraria.WorldGen.KillWall_MakeWallDust(), Terraria.WorldGen.KillWire(), Terraria.WorldGen.KillWire2(), Terraria.WorldGen.KillWire3(), Terraria.WorldGen.KillWire4(), Terraria.Player.MakeFloorDust(), Terraria.NPC.MakeTransitionEffectsForTextureChanges(), Terraria.NPC.moneyPing(), Terraria.Item.MoveInWorld(), Terraria.Dust.NewDustDirect(), Terraria.Dust.NewDustPerfect(), Terraria.Player.NinjaDodge(), Terraria.Main.oldDrawWater(), Terraria.WorldGen.paintCoatEffect(), Terraria.WorldGen.paintEffect(), Terraria.WorldGen.PlaceTile(), Terraria.Player.PlayerFrame(), Terraria.Utils.PoofOfSmoke(), Terraria.Dust.QuickDust(), Terraria.NPC.ReflectProjectile(), Terraria.Item.ShimmerEffect(), Terraria.Main.snowing(), Terraria.DelegateMethods.Minecart.Sparks(), Terraria.DelegateMethods.Minecart.SparksFart(), Terraria.DelegateMethods.Minecart.SparksMech(), Terraria.DelegateMethods.Minecart.SparksMeow(), Terraria.DelegateMethods.Minecart.SparksTerraFart(), Terraria.GameContent.Drawing.ParticleOrchestrator.Spawn_Digestion(), Terraria.GameContent.Drawing.ParticleOrchestrator.Spawn_PaladinsHammer(), Terraria.GameContent.Drawing.ParticleOrchestrator.Spawn_PrincessWeapon(), Terraria.GameContent.Drawing.ParticleOrchestrator.Spawn_RainbowRodHit(), Terraria.GameContent.Drawing.ParticleOrchestrator.Spawn_ShimmerTownNPC(), Terraria.GameContent.Drawing.ParticleOrchestrator.Spawn_StardustPunch(), Terraria.Player.SpawnFastRunParticles(), Terraria.GameContent.TeleportPylonsSystem.SpawnInWorldDust(), Terraria.Player.StickyMovement(), Terraria.Collision.StickyTiles(), Terraria.Main.TeleportEffect(), Terraria.DelegateMethods.TestDust(), Terraria.NPC.TransformVisuals(), Terraria.WaterfallManager.TrySparkling(), Terraria.Chest.Unlock(), Terraria.WorldGen.UnlockDoor(), Terraria.Gore.Update(), Terraria.Rain.Update(), Terraria.Player.Update(), Terraria.Projectile.Update(), Terraria.Player.UpdateArmorSets(), Terraria.Dust.UpdateDust(), Terraria.Mount.UpdateEffects(), Terraria.Mount.UpdateFrame(), Terraria.Player.UpdateHairDyeDust(), Terraria.Item.UpdateItem(), Terraria.Item.UpdateItem_VisualEffects(), Terraria.Player.UpdateLifeRegen(), Terraria.Player.UpdateManaRegen(), Terraria.Player.UpdateMinionTarget(), Terraria.NPC.UpdateNPC(), Terraria.NPC.UpdateNPC_CastLights(), Terraria.NPC.UpdateNPC_SoulDrainDebuff(), Terraria.NPC.UpdateNPC_TeleportVisuals(), Terraria.Player.UpdateTeleportVisuals(), Terraria.Mount.UseDrill(), Terraria.Player.WallslideMovement(), Terraria.Player.WingAirVisuals(), Terraria.Player.WingFrame(), and Terraria.Player.Yoraiz0rEye().