📔
TerraCraft
  • TerraCraft
  • English
    • Mod Document
      • Mod Dev Official Tutorial
      • Mod API Document
        • Data Types and Enums
        • JSON
        • Entity
        • NPC
  • 简体中文(旧版教程)
    • 模组文档
      • Engine API
        • App
        • AssetBundle
        • AtlasInfo
        • AtlasTextureManager
        • Audio
        • Bytes
        • File
        • GameObject
        • GlobalHook
        • Graphics
        • Hotfix
        • Image
        • ImageInfo
        • IntegratedClient : IntegratedEnv
        • IntegratedEnv
        • JsonUtil
        • Log
        • MathHelper
        • Matrix
        • Path
        • Random
        • Rect
        • Rigidbody
        • TextureLocation
        • TextureManager
        • Transform
        • Vector2
        • Vector3
        • Vector4
      • Game API
        • Attack
        • ArrayList<T>
        • EffectUtils
        • Entity
        • LightingUtils
        • ModNpc
        • ModProjectile
        • Npc : Entity
        • NpcUtils
        • Projectile : Entity
        • ProjectileUtils
        • Reg
        • SoundUtils
        • Utils
      • 模组API文档
        • 数据类型、枚举类型
        • JSON API
        • 引用API
        • 注册信息API
        • 语言API
        • 通用API
        • 物品API
        • 实体API
        • 特效API
        • 抛射物API
        • 状态效果API
        • 附魔API
        • 玩家API
        • NPC API
        • 骨骼模型API
        • 光照API
        • 音效API
        • 方块API
        • 方块实体API
        • 地图API
        • 渲染API
        • 指令API
        • 用户图形界面UI
        • 其他API
      • 模组开发官方教程
        • ExampleMod源代码仓库
        • 1.0 教程对应游戏版本(Indev 1.1)
        • 1.1 开始
        • 1.2 安装Visual Studio Code
        • 1.3 配置模组环境
        • 1.4 认识模组路径
        • 1.5 认识JSON数据表
        • 1.6 第一个物品
        • 1.7 认识地图元素
        • 1.8 第一个图块TODO
        • 1.9 第一个家具TODO
        • 1.10 加入合成表TODO
        • 未完待续……
      • 模组数据表文档
        • 基本JSON类型
        • 模组配置表(tcmod.json)
        • 物品表(contents/items/...)
        • 物品配置表
        • 弹药表(ammos.json)
        • 状态效果表(buffs.json)
        • 音效配置表(sound_config.json)
        • 音效表(sounds.json)
        • 背景表(backgrounds.json)
        • 皮肤表(skins.json)
        • 着色器表(shaders.json)
  • 新版教程
    • 1 基础部分
      • 1.1 安装集成开发环境
      • 1.2 获取TerraCraft源码
      • 1.3 认识Lua
      • 1.4 Mod架构
      • 1.5 游戏主生命周期和主状态机
      • 1.6 Lua实战
      • 1.7 第一个物品
      • 1.8 本地化翻译
      • 1.9 配方系统初探和矿物字典
Powered by GitBook
On this page
  • 区块有效性(Chunk Validity)
  • 写入(Set)和放置(Place)方块的区别
  • 地图通用模块(MapUtils)
  • 通用常量
  • 通用函数

Was this helpful?

  1. 简体中文(旧版教程)
  2. 模组文档
  3. 模组API文档

地图API

区块有效性(Chunk Validity)

TerraCraft中的地图采用动态区块加载技术实现无限地图。一个区块为1024x1024格。如果地图格子所在的区块存在,则这个地图格子有效。

在使用地图API时,请使用IsValid或IsAreaValid函数来保证所操作格子是有效的。对无效格子进行任何操作都是没有意义的行为。

写入(Set)和放置(Place)方块的区别

写入表示不需要靠着其他方块而加入新的方块,而放置必须靠着附近可以被附着的方块才能放入。

地图通用模块(MapUtils)

通用常量

常量

类型

值

描述

MapUtils.UNDERGROUND_LINE

int

416

地表层与地下层分界格纵坐标。

MapUtils.NETHER_LINE

int

2450

地下层与地狱层分界格纵坐标。

MapUtils.NETHER_CAVE_LINE

int

2560

地狱层大型洞穴分界格纵坐标。

通用函数

查询地图相关函数

这些函数在客户端和服务端均有效。

函数

返回值

描述

MapUtils.IsValid(int xi, int yi)

bool

判断指定格子是否有效,即所在区块是否存在。

MapUtils.IsAreaValid(int xi, int yi, int width, int height)

bool

判断矩形区域内所有格子是否都有效,即矩形区域覆盖的区块是否全部存在。

MapUtils.IsSolid(int xi, int yi)

bool

判断指定格子是否为实心前景。 格子无效时总是返回false。

MapUtils.HasFront(int xi, int yi)

bool

判断指定格子是否有前景方块(前景图块或家具)。

格子无效时总是返回false。

MapUtils.GetFrontID(int xi, int yi)

int

获取指定格子的前景方块ID。 若不存在或格子无效总是返回0。

MapUtils.GetFrontIDTag(int xi, int yi)

int, int

获取指定格子的前景方块ID和附加值。 若不存在或格子无效总是返回两个0。

MapUtils.HasWall(int xi, int yi)

bool

判断指定格子是否有背景墙。

格子无效时总是返回false。

MapUtils.GetWallID(int xi, int yi)

int

获取指定格子的背景墙方块ID。 若不存在或格子无效总是返回0。

MapUtils.HasLiquid(int xi, int yi)

bool

判断指定格子是否有流体。

格子无效时总是返回false。

MapUtils.GetLiquidID(int xi, int yi)

int

获取指定格子的流体ID。 若不存在或格子无效总是返回0。

MapUtils.GetLiquidIDAmount(int xi, int yi)

int, int

获取指定格子的流体ID和流体量。 若不存在或格子无效总是返回两个0。

MapUtils.CanSetWall(int xi, int yi, int blockID)

bool

判断指定格子是否允许写入背景墙方块。

格子无效、背景墙被占用、方块ID不可作为背景墙时总是返回false。

MapUtils.CanPlaceWall(int xi, int yi, int blockID)

bool

判断指定格子是否允许放置背景墙方块。

格子无效、背景墙被占用、方块ID不可作为背景墙、附近无可依靠方块时总是返回false。

MapUtils.CanSetFront(int xi, int yi, int blockID, bool destroyFraglie = true, bool checkEntities = false)

bool

判断指定格子是否允许写入前景方块(前景图块或家具)。 destroyFraglie表示是否将要强行破坏易碎方块来写入当前方块。checkEntities表示是否检测有无实体堵着格子。

格子无效、前景被占用、方块ID不可作为前景时总是返回false。

MapUtils.CanPlaceFront(int xi, int yi, int blockID, bool destroyFraglie = true, bool checkEntities = false)

bool

判断指定格子是否允许放置前景方块(前景图块或家具)。 destroyFraglie表示是否将要强行破坏易碎方块来写入当前方块。checkEntities表示是否检测有无实体堵着格子。

格子无效、前景被占用、方块ID不可作为前景、附近无可依靠方块时总是返回false。

MapUtils.CanSetFrontTag(int xi, int yi)

bool

判断指定格子是否允许写入前景方块的附加值。

格子无效、前景不存在、前景是方块实体时总是返回false。

MapUtils.GetBlockEntity(int blockEntityID, int xi, int yi)

BlockEntity/nil

返回指定格子的方块实体。blockEntityID表示待返回的方块实体ID。

格子无效或方块实体不存在时总是返回nil。

修改地图相关函数

这些函数只在服务端执行,操作成功均返回true。

在客户端中或者格子无效时不进行任何操作并总是返回false。游戏会通过内部算法自动将服务端的地图变化同步到客户端。

函数

返回值

描述

MapUtils.RemoveFront(int xi, int yi, bool showEffect = false, bool playSound = false)

bool

移除指定格子的前景方块(前景图块或家具)。 需保证HasFront(xi, yi)为真。

MapUtils.RemoveFrontAndDrop(int xi, int yi, bool isDropOriginal = false, int dropFortune = 0, bool showEffect = true, bool playSound = true)

bool

移除指定格子的前景方块(前景图块或家具),并生成掉落物。 isDropOriginal表示是否精准采集,dropFortune表示时运量。 需保证HasFront(xi, yi)为真。

MapUtils.RemoveWall(int xi, int yi, bool showEffect = false, bool playSound = false)

bool

移除指定格子的背景墙方块。 需保证HasWall(xi, yi)为真。

MapUtils.RemoveWallAndDrop(int xi, int yi, bool isDropOriginal = false, int dropFortune = 0, bool showEffect = true, bool playSound = true)

bool

移除指定格子的背景墙方块,并生成掉落物。 isDropOriginal表示是否精准采集,dropFortune表示时运量。 需保证HasWall(xi, yi)为真。

MapUtils.SetWall(int xi, int yi, int blockID, bool showEffect = false, bool playSound = false)

bool

在指定格子写入背景墙。 showEffect表示写入瞬间是否产生粒子效果。playSound表示写入瞬间是否播放放置音效。

需保证CanSetWall(xi, yi, blockID)为真。

MapUtils.PlaceWall(int xi, int yi, int blockID, bool showEffect = true, bool playSound = true)

bool

在指定格子放置背景墙。 showEffect表示放置瞬间是否产生粒子效果。playSound表示放置瞬间是否播放放置音效。

需保证CanPlaceWall(xi, yi, blockID)为真。

MapUtils.SetFront(int xi, int yi, int blockID, bool destroyFraglie = true, bool showEffect = false, bool playSound = false)

bool

在指定格子写入前景方块(前景图块或家具)。 showEffect表示写入瞬间是否产生粒子效果。playSound表示写入瞬间是否播放放置音效。

需保证CanSetFront(xi, yi, blockID, destroyFraglie)为真。

MapUtils.PlaceFront(int xi, int yi, int blockID, bool destroyFraglie = true, bool showEffect = true, bool playSound = true)

bool

在指定格子放置前景方块(前景图块或家具)。 showEffect表示放置瞬间是否产生粒子效果。playSound表示放置瞬间是否播放放置音效。

需保证CanPlaceFront(xi, yi, blockID, destroyFraglie)为真。

MapUtils.SetFrontTag(int xi, int yi, int tag)

bool

在指定格子写入前景附加值。

tag表示前景的附加值。

需保证CanSetFrontTag(xi, yi)为真。

MapUtils.TriggerSignal(int xi, int yi, bool isOn)

bool

在指定格子写入触发一个红石信号。

isOn表示红石信号是激活还是取消激活。

MapUtils.DelayTriggerSignal(int xi, int yi, bool isOn, int delayTime)

bool

在指定格子等待指定延迟时间后触发一个红石信号。

isOn表示红石信号是激活还是取消激活,delayTime表示延迟时间。

Previous方块实体APINext渲染API

Last updated 4 years ago

Was this helpful?