TModLoader v1.4.4.9
TModLoader 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

Attempts to spawn a single Dust into the game world. The Position, Width, and Height parameters dictate a rectangle, the dust will be spawned randomly within that rectangle. SpeedX and SpeedY dictate the initial velocity, they will be slightly randomized as well.

Parameters
Position
Width
Height
TypeEither an T:Terraria.ID.DustID entry or M:Terraria.ModLoader.ModContent.DustType``1
SpeedX
SpeedY
Alpha
newColor
Scale
Returns
The index of the dust within F:Terraria.Main.dust

Definition at line 173 of file Dust.cs.

174 {
175 //IL_00a1: Unknown result type (might be due to invalid IL or missing references)
176 //IL_00a8: Unknown result type (might be due to invalid IL or missing references)
177 //IL_00ba: Unknown result type (might be due to invalid IL or missing references)
178 //IL_0203: Unknown result type (might be due to invalid IL or missing references)
179 //IL_0205: Unknown result type (might be due to invalid IL or missing references)
180 //IL_021a: Unknown result type (might be due to invalid IL or missing references)
181 //IL_0242: Unknown result type (might be due to invalid IL or missing references)
182 //IL_0526: Unknown result type (might be due to invalid IL or missing references)
183 //IL_0530: Unknown result type (might be due to invalid IL or missing references)
184 //IL_0535: Unknown result type (might be due to invalid IL or missing references)
185 //IL_055e: Unknown result type (might be due to invalid IL or missing references)
186 //IL_0568: Unknown result type (might be due to invalid IL or missing references)
187 //IL_056d: Unknown result type (might be due to invalid IL or missing references)
188 //IL_0612: Unknown result type (might be due to invalid IL or missing references)
189 //IL_061c: Unknown result type (might be due to invalid IL or missing references)
190 //IL_0621: Unknown result type (might be due to invalid IL or missing references)
191 //IL_0649: Unknown result type (might be due to invalid IL or missing references)
192 //IL_0653: Unknown result type (might be due to invalid IL or missing references)
193 //IL_0658: Unknown result type (might be due to invalid IL or missing references)
194 //IL_069f: Unknown result type (might be due to invalid IL or missing references)
195 //IL_06a9: Unknown result type (might be due to invalid IL or missing references)
196 //IL_06ae: Unknown result type (might be due to invalid IL or missing references)
197 //IL_06ed: Unknown result type (might be due to invalid IL or missing references)
198 if (Main.gameMenu)
199 {
200 return 6000;
201 }
202 if (Main.rand == null)
203 {
204 Main.rand = new UnifiedRandom((int)DateTime.Now.Ticks);
205 }
206 if (Main.gamePaused)
207 {
208 return 6000;
209 }
210 if (WorldGen.gen)
211 {
212 return 6000;
213 }
214 if (Main.netMode == 2)
215 {
216 return 6000;
217 }
218 int num = (int)(400f * (1f - dCount));
219 Rectangle rectangle = default(Rectangle);
220 ((Rectangle)(ref rectangle))._002Ector((int)(Main.screenPosition.X - (float)num), (int)(Main.screenPosition.Y - (float)num), Main.screenWidth + num * 2, Main.screenHeight + num * 2);
221 Rectangle value = default(Rectangle);
222 ((Rectangle)(ref value))._002Ector((int)Position.X, (int)Position.Y, 10, 10);
223 if (!((Rectangle)(ref rectangle)).Intersects(value))
224 {
225 return 6000;
226 }
227 int result = 6000;
228 for (int i = 0; i < 6000; i++)
229 {
230 Dust dust = Main.dust[i];
231 if (dust.active)
232 {
233 continue;
234 }
235 if ((double)i > (double)Main.maxDustToDraw * 0.9)
236 {
237 if (Main.rand.Next(4) != 0)
238 {
239 return 6000;
240 }
241 }
242 else if ((double)i > (double)Main.maxDustToDraw * 0.8)
243 {
244 if (Main.rand.Next(3) != 0)
245 {
246 return 6000;
247 }
248 }
249 else if ((double)i > (double)Main.maxDustToDraw * 0.7)
250 {
251 if (Main.rand.Next(2) == 0)
252 {
253 return 6000;
254 }
255 }
256 else if ((double)i > (double)Main.maxDustToDraw * 0.6)
257 {
258 if (Main.rand.Next(4) == 0)
259 {
260 return 6000;
261 }
262 }
263 else if ((double)i > (double)Main.maxDustToDraw * 0.5)
264 {
265 if (Main.rand.Next(5) == 0)
266 {
267 return 6000;
268 }
269 }
270 else
271 {
272 dCount = 0f;
273 }
274 int num2 = Width;
275 int num3 = Height;
276 if (num2 < 5)
277 {
278 num2 = 5;
279 }
280 if (num3 < 5)
281 {
282 num3 = 5;
283 }
284 result = i;
285 dust.fadeIn = 0f;
286 dust.active = true;
287 dust.type = Type;
288 dust.noGravity = false;
289 dust.color = newColor;
290 dust.alpha = Alpha;
291 dust.position.X = Position.X + (float)Main.rand.Next(num2 - 4) + 4f;
292 dust.position.Y = Position.Y + (float)Main.rand.Next(num3 - 4) + 4f;
293 dust.velocity.X = (float)Main.rand.Next(-20, 21) * 0.1f + SpeedX;
294 dust.velocity.Y = (float)Main.rand.Next(-20, 21) * 0.1f + SpeedY;
295 dust.frame.X = 10 * Type;
296 dust.frame.Y = 10 * Main.rand.Next(3);
297 dust.shader = null;
298 dust.customData = null;
299 dust.noLightEmittence = false;
300 int num4 = Type;
301 while (num4 >= 100)
302 {
303 num4 -= 100;
304 dust.frame.X -= 1000;
305 dust.frame.Y += 30;
306 }
307 dust.frame.Width = 8;
308 dust.frame.Height = 8;
309 dust.rotation = 0f;
310 dust.scale = 1f + (float)Main.rand.Next(-20, 21) * 0.01f;
311 dust.scale *= Scale;
312 dust.noLight = false;
313 dust.firstFrame = true;
314 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)
315 {
316 dust.velocity.Y = (float)Main.rand.Next(-10, 6) * 0.1f;
317 dust.velocity.X *= 0.3f;
318 dust.scale *= 0.7f;
319 }
320 if (dust.type == 127 || dust.type == 187)
321 {
322 dust.velocity *= 0.3f;
323 dust.scale *= 0.7f;
324 }
325 if (dust.type == 308)
326 {
327 dust.velocity *= 0.5f;
328 dust.velocity.Y += 1f;
329 }
330 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)
331 {
332 dust.alpha = 170;
333 dust.velocity *= 0.5f;
334 dust.velocity.Y += 1f;
335 }
336 if (dust.type == 41)
337 {
338 dust.velocity *= 0f;
339 }
340 if (dust.type == 80)
341 {
342 dust.alpha = 50;
343 }
344 DustLoader.SetupDust(dust);
345 if (dust.type == 34 || dust.type == 35 || dust.type == 152)
346 {
347 dust.velocity *= 0.1f;
348 dust.velocity.Y = -0.5f;
349 if (dust.type == 34 && !Collision.WetCollision(new Vector2(dust.position.X, dust.position.Y - 8f), 4, 4))
350 {
351 dust.active = false;
352 }
353 }
354 break;
355 }
356 return result;
357 }
static float dCount
Definition Dust.cs:19
static void SetupDust(Dust dust)
Definition DustLoader.cs:47

References Terraria.Dust.active, Terraria.Dust.dCount, Terraria.Main.dust, Terraria.Main.gameMenu, Terraria.Main.gamePaused, Terraria.WorldGen.gen, Terraria.Main.maxDustToDraw, Terraria.Main.netMode, Terraria.Dust.position, Terraria.Main.rand, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.ModLoader.DustLoader.SetupDust(), Terraria.Dust.type, and Terraria.Collision.WetCollision().

Referenced by 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_2(), Terraria.NPC.CheckDrowning(), Terraria.Player.CheckDrowning(), Terraria.Dust.CloneDust(), Terraria.NPC.Collision_WaterCollision(), Terraria.Player.CommandForbiddenStorm(), Terraria.Player.DashMovement(), Terraria.ModLoader.ModPylon.DefaultDrawPylonCrystal(), Terraria.Item.DespawnIfMeetingConditions(), Terraria.Projectile.DoRainbowCrystalStaffExplosion(), Terraria.Mount.DoSpawnDust(), Terraria.GameContent.Drawing.TileDrawing.DrawAnimatedTile_AdjustForVisionChangers(), Terraria.Main.DrawItem(), Terraria.Main.DrawNPCDirect(), Terraria.Main.DrawNPCDirect_Inner(), 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.MessageBuffer.GetData(), Terraria.Gore.Gore_UpdateLeaf(), Terraria.Projectile.HandleMovement(), Terraria.Player.Hurt(), Terraria.GameContent.Liquid.LiquidRenderer.InternalPrepareDraw(), Terraria.Player.ItemCheck_ApplyHoldStyle_Inner(), Terraria.Player.ItemCheck_ApplyUseStyle_Inner(), Terraria.Player.ItemCheck_EmitHeldItemLight(), Terraria.Player.ItemCheck_EmitUseVisuals(), Terraria.Player.ItemCheck_GetMeleeHitbox(), Terraria.Player.ItemCheck_Inner(), Terraria.Player.ItemCheck_ManageRightClickFeatures_ShieldRaise(), 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.ModLoader.BasiliskMountJump.OnStarted(), Terraria.ModLoader.CloudInABottleJump.OnStarted(), Terraria.ModLoader.FartInAJarJump.OnStarted(), Terraria.ModLoader.GoatMountJump.OnStarted(), Terraria.ModLoader.SantankMountJump.OnStarted(), Terraria.ModLoader.TsunamiInABottleJump.OnStarted(), Terraria.ModLoader.UnicornMountJump.OnStarted(), 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.ModLoader.BlizzardInABottleJump.ShowVisuals(), Terraria.ModLoader.CloudInABottleJump.ShowVisuals(), Terraria.ModLoader.FartInAJarJump.ShowVisuals(), Terraria.ModLoader.SandstormInABottleJump.ShowVisuals(), Terraria.ModLoader.TsunamiInABottleJump.ShowVisuals(), Terraria.ModLoader.UnicornMountJump.ShowVisuals(), 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_CastLights(), Terraria.NPC.UpdateNPC_Inner(), Terraria.NPC.UpdateNPC_SoulDrainDebuff(), Terraria.NPC.UpdateNPC_TeleportVisuals(), Terraria.Player.UpdateTeleportVisuals(), Terraria.Mount.UseDrill(), Terraria.Projectile.VanillaAI(), Terraria.NPC.VanillaAI_Inner(), Terraria.NPC.VanillaFindFrame(), Terraria.NPC.VanillaHitEffect(), Terraria.Player.WallslideMovement(), Terraria.Player.WingAirVisuals(), Terraria.Player.WingFrame(), and Terraria.Player.Yoraiz0rEye().

+ Here is the call graph for this function: