Actor BlockPlacer : Weapon
{
	+UNDROPPABLE
	+Weapon.NOALERT
	+Weapon.NOAUTOAIM
	States
	{
	}
}

// Template.
/*
Actor BlockNAMEPlacer : BlockPlacer
{
	States
	{
	Spawn:
		OBSW A -1
		Stop
	Ready:
		OBSW A 1 A_WeaponReady
		Loop
	Select:
		OBSW A 1 A_Raise
		Loop
	Deselect:
		OBSW A 1 A_Lower
		Loop
	Fire:
		OBSP ABC 1
		OBSP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		OBSP DCBAAA 1
		Goto Ready
	AltFire:
		OBSP ABC 1
		OBSP D 1 A_FireBullets(0, 0, 1, 0, "BlockBricksPlacerPuff", 0, 208)
		OBSP DCBA 1
		Goto Ready	
	}
}
*/

Actor BlockDirtPlacer : BlockPlacer
{
	States
	{
	Spawn:
		DIRW A -1
		Stop
	Ready:
		DIRW A 1 A_WeaponReady
		Loop
	Select:
		DIRW A 1 A_Raise
		Loop
	Deselect:
		DIRW A 1 A_Lower
		Loop
	Fire:
		DIRP ABC 1
		DIRP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		DIRP DCBAAA 1 
		Goto Ready
	AltFire:
		DIRP ABC 1
		DIRP D 1 A_FireBullets(0, 0, 1, 0, "BlockDirtPlacerPuff", 0, 208) /*, FBF_EXPLICITANGLE | FBF_NOPITCH | FBF_NORANDOMPUFFZ | */
		DIRP DCBA 1
		Goto Ready	
	}
}


Actor BlockGrassPlacer : BlockPlacer
{
	States
	{
	Spawn:
		GRSW A -1
		Stop
	Ready:
		GRSW A 1 A_WeaponReady
		Loop
	Select:
		GRSW A 1 A_Raise
		Loop
	Deselect:
		GRSW A 1 A_Lower
		Loop
	Fire:
		GRSP ABC 1
		GRSP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		GRSP DCBAAA 1
		Goto Ready
	AltFire:
		GRSP ABC 1
		GRSP D 1 A_FireBullets(0, 0, 1, 0, "BlockGrassPlacerPuff", 0, 208)
		GRSP DCBA 1
		Goto Ready	
	}
}

Actor BlockStonePlacer : BlockPlacer
{
	States
	{
	Spawn:
		STNW A -1
		Stop
	Ready:
		STNW A 1 A_WeaponReady
		Loop
	Select:
		STNW A 1 A_Raise
		Loop
	Deselect:
		STNW A 1 A_Lower
		Loop
	Fire:
		STNP ABC 1
		STNP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		STNP DCBAAA 1
		Goto Ready
	AltFire:
		STNP ABC 1
		STNP D 1 A_FireBullets(0, 0, 1, 0, "BlockStonePlacerPuff", 0, 208)
		STNP DCBA 1
		Goto Ready	
	}
}

Actor BlockCobbleStonePlacer : BlockPlacer
{
	States
	{
	Spawn:
		CSTW A -1
		Stop
	Ready:
		CSTW A 1 A_WeaponReady
		Loop
	Select:
		CSTW A 1 A_Raise
		Loop
	Deselect:
		CSTW A 1 A_Lower
		Loop
	Fire:
		CSTP ABC 1
		CSTP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		CSTP DCBAAA 1
		Goto Ready
	AltFire:
		CSTP ABC 1
		CSTP D 1 A_FireBullets(0, 0, 1, 0, "BlockCobblestonePlacerPuff", 0, 208)
		CSTP DCBA 1
		Goto Ready	
	}
}

Actor BlockWoodPlacer : BlockPlacer
{
	States
	{
	Spawn:
		WODW A -1
		Stop
	Ready:
		WODW A 1 A_WeaponReady
		Loop
	Select:
		WODW A 1 A_Raise
		Loop
	Deselect:
		WODW A 1 A_Lower
		Loop
	Fire:
		WODP ABC 1
		WODP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		WODP DCBAAA 1
		Goto Ready
	AltFire:
		WODP ABC 1
		WODP D 1 A_FireBullets(0, 0, 1, 0, "BlockWoodPlacerPuff", 0, 208)
		WODP DCBA 1
		Goto Ready	
	}
}

Actor BlockPlanksPlacer : BlockPlacer
{
	States
	{
	Spawn:
		PLNW A -1
		Stop
	Ready:
		PLNW A 1 A_WeaponReady
		Loop
	Select:
		PLNW A 1 A_Raise
		Loop
	Deselect:
		PLNW A 1 A_Lower
		Loop
	Fire:
		PLNP ABC 1
		PLNP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		PLNP DCBAAA 1
		Goto Ready
	AltFire:
		PLNP ABC 1
		PLNP D 1 A_FireBullets(0, 0, 1, 0, "BlockPlanksPlacerPuff", 0, 208)
		PLNP DCBA 1
		Goto Ready	
	}
}

Actor BlockLeavesPlacer : BlockPlacer
{
	States
	{
	Spawn:
		LVSW A -1
		Stop
	Ready:
		LVSW A 1 A_WeaponReady
		Loop
	Select:
		LVSW A 1 A_Raise
		Loop
	Deselect:
		LVSW A 1 A_Lower
		Loop
	Fire:
		LVSP ABC 1
		LVSP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		LVSP DCBAAA 1
		Goto Ready
	AltFire:
		LVSP ABC 1
		LVSP D 1 A_FireBullets(0, 0, 1, 0, "BlockLeavesPlacerPuff", 0, 208)
		LVSP DCBA 1
		Goto Ready	
	}
}

Actor BlockSandPlacer : BlockPlacer
{
	States
	{
	Spawn:
		SNDW A -1
		Stop
	Ready:
		SNDW A 1 A_WeaponReady
		Loop
	Select:
		SNDW A 1 A_Raise
		Loop
	Deselect:
		SNDW A 1 A_Lower
		Loop
	Fire:
		SNDP ABC 1
		SNDP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		SNDP DCBAAA 1
		Goto Ready
	AltFire:
		SNDP ABC 1
		SNDP D 1 A_FireBullets(0, 0, 1, 0, "BlockSandPlacerPuff", 0, 208)
		SNDP DCBA 1
		Goto Ready	
	}
}

Actor BlockGravelPlacer : BlockPlacer
{
	States
	{
	Spawn:
		GRVW A -1
		Stop
	Ready:
		GRVW A 1 A_WeaponReady
		Loop
	Select:
		GRVW A 1 A_Raise
		Loop
	Deselect:
		GRVW A 1 A_Lower
		Loop
	Fire:
		GRVP ABC 1
		GRVP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		GRVP DCBAAA 1
		Goto Ready
	AltFire:
		GRVP ABC 1
		GRVP D 1 A_FireBullets(0, 0, 1, 0, "BlockGravelPlacerPuff", 0, 208)
		GRVP DCBA 1
		Goto Ready	
	}
}

Actor BlockBrickPlacer : BlockPlacer
{
	States
	{
	Spawn:
		BRKW A -1
		Stop
	Ready:
		BRKW A 1 A_WeaponReady
		Loop
	Select:
		BRKW A 1 A_Raise
		Loop
	Deselect:
		BRKW A 1 A_Lower
		Loop
	Fire:
		BRKP ABC 1
		BRKP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		BRKP DCBAAA 1
		Goto Ready
	AltFire:
		BRKP ABC 1
		BRKP D 1 A_FireBullets(0, 0, 1, 0, "BlockBrickPlacerPuff", 0, 208)
		BRKP DCBA 1
		Goto Ready	
	}
}

Actor BlockObsidianPlacer : BlockPlacer
{
	States
	{
	Spawn:
		OBSW A -1
		Stop
	Ready:
		OBSW A 1 A_WeaponReady
		Loop
	Select:
		OBSW A 1 A_Raise
		Loop
	Deselect:
		OBSW A 1 A_Lower
		Loop
	Fire:
		OBSP ABC 1
		OBSP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		OBSP DCBAAA 1
		Goto Ready
	AltFire:
		OBSP ABC 1
		OBSP D 1 A_FireBullets(0, 0, 1, 0, "BlockObsidianPlacerPuff", 0, 208)
		OBSP DCBA 1
		Goto Ready	
	}
}

Actor BlockMossyCobblestonePlacer : BlockPlacer
{
	States
	{
	Spawn:
		MCBW A -1
		Stop
	Ready:
		MCBW A 1 A_WeaponReady
		Loop
	Select:
		MCBW A 1 A_Raise
		Loop
	Deselect:
		MCBW A 1 A_Lower
		Loop
	Fire:
		MCBP ABC 1
		MCBP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		MCBP DCBAAA 1
		Goto Ready
	AltFire:
		MCBP ABC 1
		MCBP D 1 A_FireBullets(0, 0, 1, 0, "BlockMossyCobblestonePlacerPuff", 0, 208)
		MCBP DCBA 1
		Goto Ready	
	}
}

Actor BlockWoolPlacer : BlockPlacer
{
	States
	{
	Spawn:
		WOLW A -1
		Stop
	Ready:
		WOLW A 1 A_WeaponReady
		Loop
	Select:
		WOLW A 1 A_Raise
		Loop
	Deselect:
		WOLW A 1 A_Lower
		Loop
	Fire:
		WOLP ABC 1
		WOLP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		WOLP DCBAAA 1
		Goto Ready
	AltFire:
		WOLP ABC 1
		WOLP D 1 A_FireBullets(0, 0, 1, 0, "BlockWoolPlacerPuff", 0, 208)
		WOLP DCBA 1
		Goto Ready	
	}
}

Actor BlockIronPlacer : BlockPlacer
{
	States
	{
	Spawn:
		IRNW A -1
		Stop
	Ready:
		IRNW A 1 A_WeaponReady
		Loop
	Select:
		IRNW A 1 A_Raise
		Loop
	Deselect:
		IRNW A 1 A_Lower
		Loop
	Fire:
		IRNP ABC 1
		IRNP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		IRNP DCBAAA 1
		Goto Ready
	AltFire:
		IRNP ABC 1
		IRNP D 1 A_FireBullets(0, 0, 1, 0, "BlockIronPlacerPuff", 0, 208)
		IRNP DCBA 1
		Goto Ready	
	}
}

Actor BlockGoldPlacer : BlockPlacer
{
	States
	{
	Spawn:
		GLDW A -1
		Stop
	Ready:
		GLDW A 1 A_WeaponReady
		Loop
	Select:
		GLDW A 1 A_Raise
		Loop
	Deselect:
		GLDW A 1 A_Lower
		Loop
	Fire:
		GLDP ABC 1
		GLDP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		GLDP DCBAAA 1
		Goto Ready
	AltFire:
		GLDP ABC 1
		GLDP D 1 A_FireBullets(0, 0, 1, 0, "BlockGoldPlacerPuff", 0, 208)
		GLDP DCBA 1
		Goto Ready	
	}
}

Actor BlockDiamondPlacer : BlockPlacer
{
	States
	{
	Spawn:
		DMNW A -1
		Stop
	Ready:
		DMNW A 1 A_WeaponReady
		Loop
	Select:
		DMNW A 1 A_Raise
		Loop
	Deselect:
		DMNW A 1 A_Lower
		Loop
	Fire:
		DMNP ABC 1
		DMNP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		DMNP DCBAAA 1
		Goto Ready
	AltFire:
		DMNP ABC 1
		DMNP D 1 A_FireBullets(0, 0, 1, 0, "BlockDiamondPlacerPuff", 0, 208)
		DMNP DCBA 1
		Goto Ready	
	}
}

Actor BlockStoneBrickPlacer : BlockPlacer
{
	States
	{
	Spawn:
		SBRW A -1
		Stop
	Ready:
		SBRW A 1 A_WeaponReady
		Loop
	Select:
		SBRW A 1 A_Raise
		Loop
	Deselect:
		SBRW A 1 A_Lower
		Loop
	Fire:
		SBRP ABC 1
		SBRP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		SBRP DCBAAA 1
		Goto Ready
	AltFire:
		SBRP ABC 1
		SBRP D 1 A_FireBullets(0, 0, 1, 0, "BlockStoneBrickPlacerPuff", 0, 208)
		SBRP DCBA 1
		Goto Ready	
	}
}

Actor BlockChiseledStoneBrickPlacer : BlockPlacer
{
	States
	{
	Spawn:
		CDSW A -1
		Stop
	Ready:
		CDSW A 1 A_WeaponReady
		Loop
	Select:
		CDSW A 1 A_Raise
		Loop
	Deselect:
		CDSW A 1 A_Lower
		Loop
	Fire:
		CDSP ABC 1
		CDSP D 1 A_FireBullets(0, 0, 1, 9001, "BulletPuff", 0, 208)
		CDSP DCBAAA 1
		Goto Ready
	AltFire:
		CDSP ABC 1
		CDSP D 1 A_FireBullets(0, 0, 1, 0, "BlockChiseledStoneBrickPlacerPuff", 0, 208)
		CDSP DCBA 1
		Goto Ready	
	}
}