Classes:Pottery1

From ZDoom Wiki
Jump to navigation Jump to search
Note: Wait! Stop! You do not need to copy this actor's code into your project! Here's why:
  1. This actor is already defined in GZDoom, there's no reason to define it again.
  2. In fact, trying to define an actor with the same name will cause an error (because it already exists).
  3. If you want to make your own version of this actor, use inheritance.
  4. Definitions for existing actors are put on the wiki for reference purpose only.
Tall pottery
Actor type Breakable Game MiniHexenLogoIcon.png (Hexen)
DoomEd Number 104 Class Name Pottery1


Classes: Pottery1
 →Pottery2
 →Pottery3

A pottery that can be broken. It may contain something in it, which is spawned when A_PotteryExplode is called.

ZScript definition

Note: The ZScript definition below is for reference and may be different in the current version of UZDoom. The most up-to-date version of this code can be found on UZDoom GitHub.
 class Pottery1 : Actor
 {
 	Default
 	{
 		Health 15;
 		Speed 10;
 		Height 32;
 		+SOLID +SHOOTABLE +NOBLOOD +DROPOFF +SMASHABLE
 		+SLIDESONWALLS +PUSHABLE +TELESTOMP +CANPASS
 		+NOICEDEATH
 	}
  
 	States
 	{
 	Spawn:
 		POT1 A -1;
 		Loop;
 	Death:
 		POT1 A 0 A_PotteryExplode;
 		Stop;
 	}
 	
 	void A_PotteryExplode()
 	{
 		Actor mo = null;
 		int i;
 
 		for(i = random[Pottery](3, 6); i; i--)
 		{
 			mo = Spawn ("PotteryBit", Pos, ALLOW_REPLACE);
 			if (mo)
 			{
 				mo.SetState (mo.SpawnState + random[Pottery](0, 4));
 				mo.Vel.X = random2[Pottery]() / 64.;
 				mo.Vel.Y = random2[Pottery]() / 64.;
 				mo.Vel.Z = random[Pottery](5, 12) * 0.75;
 			}
 		}
 		mo.A_StartSound ("PotteryExplode", CHAN_BODY);
 		// Spawn an item?
 		Class<Actor> type = GetSpawnableType(args[0]);
 		if (type != null)
 		{
 			if (!(level.nomonsters || sv_nomonsters) || !(GetDefaultByType (type).bIsMonster))
 			{ // Only spawn monsters if not -nomonsters
 				Spawn (type, Pos, ALLOW_REPLACE);
 			}
 		}
 	}
 }

DECORATE definition

Nuvolabomb.png Warning: This is legacy code, kept for archival purposes only. DECORATE is deprecated in GZDoom and is completely superseded by ZScript. GZDoom internally uses the ZScript definition above.
ACTOR Pottery1 native
{
  Health 15
  Speed 10
  Height 32
  +SOLID
  +SHOOTABLE
  +NOBLOOD
  +DROPOFF
  +SLIDESONWALLS
  +PUSHABLE
  +TELESTOMP
  +CANPASS
  +NOICEDEATH

  action native A_PotteryExplode();

  States
  {
  Spawn:
    POT1 A -1
    Loop
  Death:
    POT1 A 0 A_PotteryExplode
    Stop
  }
}