数据类型、枚举类型
数据类型(Data Types)
ObjectRef(抽象类)
维护指定类型对象的引用。
继承该抽象类的子类:BlockEntityRef。
属性
类型
描述
ObjectRef.ref
Object/nil
读取时返回被引用的对象,若对象不存在则返回nil。
写入时将对象的引用覆盖到当前引用,写入nil表示写入空引用。
案例
例如,在如下范例中,self.modData.blockEntityRef
表示方块实体引用。blockEntity2
表示某个方块实体对象。
ArrayList<T>
TerraCraft内置的动态数组。
属性
类型
描述
ArrayList.length
int
【只读】数组长度。
函数
返回值
描述
ArrayList:GetLength()
int
返回数组长度。
ArrayList[index]
T
读取或写入指定下标的数组元素。index有效区间为[1, 可用数量]。
遍历方案
ExData
拓展数据。在TerraCraft模组中拥有两种拓展数据。
局部拓展数据(ModData)为当前使用该数据的对象独有,整个游戏中该对象只拥有一个局部拓展数据。
全局拓展数据(GlobalData)为同一类对象均拥有的属性,整个游戏中该对象拥有所有模组的全局拓展数据。
属性
类型
描述
ExData.xxx
由xxx的具体类型决定
读写拓展数据。
ExData.xxx[n]
由xxx的具体类型决定
读写拓展数据数组。
函数
返回值
描述
ExData:DataOf(string dataSetName)
bool
判断当前数据是否拥有指定数据集。
案例
某个模组的NPC拥有
GlobalData
,数据为bool isCold
和int coldTime
。npc1
拥有ModData
,数据为int timer
和double targetAngle
。npc2
拥有ModData
,数据为int magicLevel
。npc3
没有ModData
。
如下是访问这些数据的范例:
Point
表示一个点。
属性
类型
描述
Point.x
double
点的横坐标。
Point.y
double
点的纵坐标。
Rectangle
表示一个轴对齐矩形。
属性
类型
描述
Rectangle.x
int
矩形左上角横坐标。
Rectangle.y
int
矩形左上角纵坐标。
Rectangle.width
int
矩形宽度。
Rectangle.height
int
矩形高度。
函数
返回值
描述
Rectangle:Set(int x, int y, int width, int height)
void
设置新的矩形。
SpriteEx
绘制拓展信息,决定绘制的相关参数。
属性
类型
描述
SpriteEx.scaleRateX
float
贴图绘制时横向缩放尺寸。(默认为1.0)
SpriteEx.scaleRateY
float
贴图绘制时纵向缩放尺寸。(默认为1.0)
SpriteEx.rotateX
float
贴图的旋转中心点X。(若绘制对象为实体,默认为实体中心,否则默认为0.0)
SpriteEx.rotateY
float
贴图的旋转中心点Y。(若绘制对象为实体,默认为实体中心,否则默认为0.0)
SpriteEx.angle
float
贴图绘制时的旋转角度。(默认为0.0)
SpriteEx.flipHorizontal
bool
贴图绘制时是否水平翻转。(默认为false)
SpriteEx.flipVertical
bool
贴图绘制时是否竖直翻转。(默认为false)
函数
返回值
描述
SpriteEx:SetDefault()
void
恢复默认值。
Hitbox
表示一个碰撞箱。若angle
属性为0,表示轴对齐碰撞箱(AABB)。否则表示一个绕中心点旋转的碰撞箱。
属性
类型
描述
Hitbox.x
double
碰撞箱在旋转角度为0时左上角横坐标。
Hitbox.y
double
碰撞箱在旋转角度为0时左上角纵坐标。
Hitbox.width
int
碰撞箱的宽度。
Hitbox.height
int
碰撞箱的高度。
Hitbox.centerX
double
【只读】碰撞箱中心点的横坐标。
Hitbox.centerY
double
【只读】碰撞箱中心点的纵坐标。
Hitbox.angle
double
若碰撞箱可以旋转,表示碰撞箱的旋转角度。
函数
返回值
描述
Hitbox:Overlap(Hitbox other)
bool
返回当前碰撞箱与另一个碰撞箱是否重叠。
Hitbox:OverlapAABB(Hitbox other)
bool
返回当前轴对齐矩形与另一个轴对齐矩形是否重叠。
Attack
表示一个攻击属性。
属性
类型
描述
Attack.attack
int
攻击值。
Attack.knockBack
int
攻击的击退值。
Attack.crit
int
攻击的百分暴击率。1-100表示1-100%的概率产生双倍暴击伤害,大于100表示总是产生双倍暴击伤害,小于1表示不产生暴击伤害。
静态函数
返回值
描述
Attack:new_local(int attack, int knockBack, int crit)
Attack
返回一个Attack对象。
Defense
表示一个防御属性。
属性
类型
描述
Defense.defense
int
防御值。
Defense.blastDefense
int
爆炸防御值。
Defense.flameDefense
int
火焰防御值。
Defense.projectileDefense
int
抛掷物防御值。
Defense.breathDefense
int
呼吸防御值。
Defense.fallDefense
int
摔落防御值。
Defense.knockBackDefense
int
击退防御值。
EntityKey
表示一个实体在对应实体类型中的唯一键值。
Color
表示一个具有Alpha(透明度)、Red、Green、Blue四个通道的颜色。每个通道有效值为[0, 255]。
通道分量属性均只读,请通过Set函数来设置颜色的值。
属性
类型
描述
Color.alpha
int
【只读】透明通道分量。
Color.red
int
【只读】红色通道分量。
Color.green
int
【只读】绿色通道分量。
Color.blue
int
【只读】蓝色通道分量。
函数
返回值
描述
Color:Set(int alpha, int red, int green, int blue)
void
设置新的颜色。
Color:Set(DefaultColor defaultColor)
void
设置为指定默认颜色。
PlaceParameter
放置方块的参数类型。
属性
类型
描述
PlaceParameter.placeDir
Direction
【只读】放置的朝向。
ClickParameter
点击方块的参数类型。
属性
类型
描述
ClickParameter.playerRef
PlayerRef
【只读】发生点击的玩家引用。
DestroyParameter
破坏方块的参数类型。
属性
类型
描述
DestroyParameter.boom
bool
【只读】是否为由爆炸产生的破坏。
DestroyParameter.silkTouch
int
【只读】破坏时精准采集等级。
DestroyParameter.fortune
int
【只读】破坏时时运等级。
枚举类型(Enums)
注意,这里的枚举值直接当作全局常量使用,且枚举类型的变量只能使用对应枚举值。例如:
NetMode
描述当前运行环境为客户端或者服务端。注意单人模式下客户端和内置服务端是同时运行的。
枚举值
描述
NET_MODE_SERVER
当前运行环境为服务端环境。
NET_MODE_CLIENT
当前运行环境为客户端环境。
Direction
描述方向。
枚举值
描述
DIRECTION_LEFT
左边。
DIRECTION_TOP
上面。
DIRECTION_BOTTOM
下面。
DIRECTION_RIGHT
右边。
Shape
描述形状类型。
枚举值
描述
SHAPE_BOX
碰撞箱形状为轴对齐矩形。
SHAPE_ROTATE_BOX
碰撞箱形状为旋转矩形。
ItemType
描述物品类型。
枚举值
描述
ITEM_TYPE_NONE
无物品。
ITEM_TYPE_BLOCKS
方块类型物品。
ITEM_TYPE_TOOLS
工具类型物品。
ITEM_TYPE_MATERIALS
材料类型物品。
ITEM_TYPE_WIRES
红石电线类型物品。
ITEM_TYPE_PROJECTILES
抛射物类型物品。
ITEM_TYPE_CHESTS
容器类型物品。
ToolType
描述工具类型。
枚举值
描述
TOOL_TYPE_NONE
无有效工具类型。
TOOL_TYPE_AXE
斧头。
TOOL_TYPE_PICKAXE
镐子。
TOOL_TYPE_SWORD
剑。
TOOL_TYPE_BOW
弓/枪械。
TOOL_TYPE_HELMET
头盔。
TOOL_TYPE_CHESTPLATE
胸甲。
TOOL_TYPE_LEGGINGS
裤腿。
TOOL_TYPE_BOOK
书本。
TOOL_TYPE_SHEARS
剪刀。
TOOL_TYPE_HOE
锄。
TOOL_TYPE_WIRE_CUTTER
剪线钳。
TOOL_TYPE_DRILL
钻头。
TOOL_TYPE_SAW
锯子。
TOOL_TYPE_STAFF
法杖。
NpcType
描述NPC类型。
枚举值
描述
NPC_TYPE_NORMAL
普通NPC。
NPC_TYPE_ANIMAL
动物类NPC。
NPC_TYPE_VILLAGER
村民类NPC。
NPC_TYPE_ARTHROPODS
节肢类NPC。
NPC_TYPE_SMITE
亡灵类NPC。
NPC_TYPE_BOSS
BOSS类NPC。
DefaultColor
描述默认颜色。
枚举值
描述
COLOR_BLACK
黑色。ARGB=(255, 0, 0, 0)
COLOR_WHITE
白色。ARGB=(255, 255, 255, 255)
COLOR_GRAY
灰色。ARGB=(255, 128, 128, 128)
COLOR_RED
红色。ARGB=(255, 255, 0, 0)
COLOR_GREEN
绿色。ARGB=(255, 0, 255, 0)
COLOR_BLUE
蓝色。ARGB=(255, 0, 0, 255)
COLOR_YELLOW
黄色。ARGB=(255, 255, 255, 0)
LightingState
描述客户端光照状态。
枚举值
描述
LIGHTING_STATE_NORMAL
普通光照状态。
LIGHTING_STATE_NIGHT_VISION
夜视光照状态。
LIGHTING_STATE_BLINDNESS
失明光照状态。
DeathReason
描述玩家的死亡原因。
枚举值
描述
DEATH_REASON_UNKNOWN
未知原因死亡。
DEATH_REASON_SUICIDE
自杀。
DEATH_REASON_FALL
摔死。
DEATH_REASON_DROWN
淹死。
DEATH_REASON_BOOM
炸死。
DEATH_REASON_BURN
烧死。
DEATH_REASON_LAVA
在岩浆中游泳。
DEATH_REASON_STARVE
饿死。
DEATH_REASON_BUFF
状态效果作用而死。
DEATH_REASON_POISON
毒死。
GameMode
描述玩家或地图的游戏模式。
枚举值
描述
GAME_MODE_SURVIVAL
生存模式。
GAME_MODE_CREATIVE
创造模式。
GAME_MODE_ADVANTURE
冒险模式。
OP
描述玩家的权限等级。
枚举值
描述
OP_ANY
任何人。
OP_ADMIN
管理员。
OP_MASTER
游戏拥有者(服主)。
OP_DEVELOPER
开发者。
Last updated
Was this helpful?