I grind ages of presents in dungeon.
...
one snowglobe.
over 1k bricks.
sure there isn't more to it?
Maybe. I just repeated my scan for the snowglobe constant, and found what appears to be a second route for their creation.
loc_C40B6: // CODE XREF: NPCLoot+5 NPCLoot+11
// NPCLoot+1D NPCLoot+28 ...
ldsfld bool Terraria.Main::xMas
brfalse loc_C4140
ldarg.0
ldfld int32 Terraria.NPC::lifeMax
ldc.i4.1
ble.s loc_C4140
ldarg.0
ldfld int32 Terraria.NPC::damage
ldc.i4.0
ble.s loc_C4140
ldarg.0
ldfld bool Terraria.NPC::friendly
brtrue.s loc_C4140
ldarg.0
ldfld int32 Terraria.NPC::type
ldc.i4.s 0x79
beq.s loc_C4140
ldarg.0
ldfld float32 Terraria.NPC::value
ldc.r4 0.0
ble.un.s loc_C4140
ldsfld class [mscorlib]System.Random Terraria.Main::rand
ldc.i4.s 0xD
callvirt int32 [mscorlib]System.Random::Next(int32)
brtrue.s loc_C4140
ldarg.0
ldflda value class [Microsoft.Xna.Framework]Microsoft.Xna.Framework.Vector2 Terraria.NPC::position
ldfld float32 [Microsoft.Xna.Framework]Microsoft.Xna.Framework.Vector2::X
conv.i4
ldarg.0
ldflda value class [Microsoft.Xna.Framework]Microsoft.Xna.Framework.Vector2 Terraria.NPC::position
ldfld float32 [Microsoft.Xna.Framework]Microsoft.Xna.Framework.Vector2::Y
conv.i4
ldarg.0
ldfld int32 Terraria.NPC::width
ldarg.0
ldfld int32 Terraria.NPC::height
ldsfld class [mscorlib]System.Random Terraria.Main::rand
ldc.i4 0x257
ldc.i4 0x25A
callvirt int32 [mscorlib]System.Random::Next(int32, int32)
ldc.i4.1
ldc.i4.0
ldc.i4.0
call int32 Terraria.Item::NewItem(int32 X, int32 Y, int32 Width, int32 Height, int32 Type, int32 [optional Stack = int32(-1515870811), bool [optional noBroadcast = bool(-1515870811), int32 [optional pfix = int32(-1515870811))
pop
Near the end of this snippet, a random number is generated. One of the possible values is 0x25A, which is the constant for the snowglobe. And that number is fed right into a subroutine named NewItem. So it does appear to be a second route for generating snowglobes.
Among other tests, this snippet checks that the dying monster is of "type 0x79". I interpret that to mean that only one type of monster can drop these particular snowglobes. I don't know what that monster is, though.
Also, this snippet is only reached if the game is not in hardmode. (I didn't show that test-and-branch in the snippet.)
Edit: Correction: the code tests that the monster type is
not 0x79. Monster type 0x79 cannot generate snowglobes.
Edit: Correction:
cancel all of this. This code does not generate snowglobes at all. I just checked the definition of System.Random.Next:
Return Value
A 32-bit signed integer greater than or equal to minValue and less than maxValue; that is, the range of return values includes minValue but not MaxValue. If minValue equals maxValue, minValue is returned.
So this code generates numbers greater than or equal to 0x257, and less than 0x25A. So the three possibilities are 0x257, 0x258, and 0x259.
This is just the present-dropping code.