zscript-doc/api/level/Side.md

3.7 KiB

Side

Also known as a "sidedef." One of the textured sides of a line. Each sidedef has three portions: Upper, middle, and lower. The middle texture is special as it can have translucency.

The three portions of a sidedef can be referred to with:

Name Description
Side.Top The upper portion.
Side.Mid The middle portion.
Side.Bottom The lower portion.
struct Side play
{
	readonly Line   Linedef;
	readonly Sector Sector;

	uint8 Flags;
	int16 Light;

	int Index();

	clearscope Vertex V1();
	clearscope Vertex V2();

	textureid GetTexture(int which);

	double GetTextureXOffset(int which);
	double GetTextureYOffset(int which);

	double GetTextureXScale(int which);
	double GetTextureYScale(int which);

	void SetTexture(int which, textureid tex);

	void SetTextureXOffset(int which, double offset);
	void SetTextureYOffset(int which, double offset);

	void SetTextureXScale(int which, double scale);
	void SetTextureYScale(int which, double scale);

	void AddTextureXOffset(int which, double delta);
	void AddTextureYOffset(int which, double delta);

	void MultiplyTextureXScale(int which, double delta);
	void MultiplyTextureYScale(int which, double delta);

	void SetSpecialColor(int tier, int position, color cr);

	color GetAdditiveColor(int tier);
	void  SetAdditiveColor(int tier, color cr);

	void EnableAdditiveColor(int tier, bool enable);

	double GetUdmfFloat(name nm);
	int    GetUdmfInt(name nm);
	string GetUdmfString(name nm);
}

Linedef

The line this side belongs to.

Sector

The sector this side belongs to.

Flags

Any combination of the following bit flags:

Name Description
WALLF_ABSLIGHTING Light is absolute instead of relative to the sector.
WALLF_CLIP_MIDTEX Clips the middle texture when it goes under the floor or above the ceiling.
WALLF_LIGHT_FOG The wall's lighting will ignore fog effects.
WALLF_NOAUTODECALS Don't attach decals to this surface.
WALLF_NOFAKECONTRAST Disables the "fake contrast" effect for this side.
WALLF_POLYOBJ This sidedef belongs to a polyobject.
WALLF_SMOOTHLIGHTING Applies a unique contrast at all angles.
WALLF_WRAP_MIDTEX Repeats the middle texture infinitely on the vertical axis.

Light

The light level of this side. Relative to the sector lighting unless WALLF_ABSLIGHTING.

Index

Returns the index of this side.

V1, V2

Returns the start and end points of this sidedef, respectively.

GetTexture, SetTexture

Gets or sets the texture of one portion of the sidedef.

GetTextureXOffset, SetTextureXOffset, AddTextureXOffset

Gets, sets or adds to the texture portion's horizontal offset.

GetTextureYOffset, SetTextureYOffset, AddTextureYOffset

Gets, sets or adds to the texture portion's vertical offset.

GetTextureXScale, SetTextureXScale, MultiplyTextureXScale

Gets, sets or multiplies the texture portion's horizontal scale.

GetTextureYScale, SetTextureYScale, MultiplyTextureYScale

Gets, sets or multiplies the texture portion's vertical scale.

SetSpecialColor

TODO

GetAdditiveColor, SetAdditiveColor

TODO

EnableAdditiveColor

TODO

GetUdmfFloat, GetUdmfInt, GetUdmfString

Gets a named UDMF property attached to this sidedef.