APIDump: Documented cChunkDesc:GetBlockEntity().
This commit is contained in:
parent
ee1ac65e54
commit
4f2645d0e5
@ -458,6 +458,7 @@ World:ForEachChestInChunk(Player:GetChunkX(), Player:GetChunkZ(),
|
|||||||
{ Params = "MinRelX, MaxRelX, MinRelY, MaxRelY, MinRelZ, MaxRelZ, BlockType, BlockMeta", Return = "", Notes = "Fills those blocks of the cuboid (specified in relative coords) that are considered non-floor (air, water) with the specified block type and meta. Cuboid may reach outside the chunk, only the part intersecting with this chunk is filled." },
|
{ Params = "MinRelX, MaxRelX, MinRelY, MaxRelY, MinRelZ, MaxRelZ, BlockType, BlockMeta", Return = "", Notes = "Fills those blocks of the cuboid (specified in relative coords) that are considered non-floor (air, water) with the specified block type and meta. Cuboid may reach outside the chunk, only the part intersecting with this chunk is filled." },
|
||||||
},
|
},
|
||||||
GetBiome = { Params = "RelX, RelZ", Return = "EMCSBiome", Notes = "Returns the biome at the specified relative coords" },
|
GetBiome = { Params = "RelX, RelZ", Return = "EMCSBiome", Notes = "Returns the biome at the specified relative coords" },
|
||||||
|
GetBlockEntity = { Params = "RelX, RelY, RelZ", Return = "{{cBlockEntity}} descendant", Notes = "Returns the block entity for the block at the specified coords. Creates it if it doesn't exist. Returns nil if the block has no block entity capability." },
|
||||||
GetBlockMeta = { Params = "RelX, RelY, RelZ", Return = "NIBBLETYPE", Notes = "Returns the block meta at the specified relative coords" },
|
GetBlockMeta = { Params = "RelX, RelY, RelZ", Return = "NIBBLETYPE", Notes = "Returns the block meta at the specified relative coords" },
|
||||||
GetBlockType = { Params = "RelX, RelY, RelZ", Return = "BLOCKTYPE", Notes = "Returns the block type at the specified relative coords" },
|
GetBlockType = { Params = "RelX, RelY, RelZ", Return = "BLOCKTYPE", Notes = "Returns the block type at the specified relative coords" },
|
||||||
GetBlockTypeMeta = { Params = "RelX, RelY, RelZ", Return = "BLOCKTYPE, NIBBLETYPE", Notes = "Returns the block type and meta at the specified relative coords" },
|
GetBlockTypeMeta = { Params = "RelX, RelY, RelZ", Return = "BLOCKTYPE, NIBBLETYPE", Notes = "Returns the block type and meta at the specified relative coords" },
|
||||||
@ -496,7 +497,42 @@ World:ForEachChestInChunk(Player:GetChunkX(), Player:GetChunkZ(),
|
|||||||
Constants =
|
Constants =
|
||||||
{
|
{
|
||||||
},
|
},
|
||||||
},
|
AdditionalInfo =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
Header = "Manipulating block entities",
|
||||||
|
Contents = [[
|
||||||
|
To manipulate block entities while the chunk is generated, first use SetBlockTypeMeta() to set
|
||||||
|
the correct block type and meta at the position. Then use the GetBlockEntity() to create and
|
||||||
|
return the correct block entity instance. Finally, use tolua.cast() to cast to the proper
|
||||||
|
type.</p>
|
||||||
|
Note that you don't need to check if a block entity has previously existed at the place, because
|
||||||
|
GetBlockEntity() will automatically re-create the correct type for you.</p>
|
||||||
|
<p>
|
||||||
|
The following code is taken from the Debuggers plugin, it creates a sign at each chunk's [0, 0]
|
||||||
|
coords, with the text being the chunk coords:
|
||||||
|
<pre class="prettyprint lang-lua">
|
||||||
|
function OnChunkGenerated(a_World, a_ChunkX, a_ChunkZ, a_ChunkDesc)
|
||||||
|
-- Get the topmost block coord:
|
||||||
|
local Height = a_ChunkDesc:GetHeight(0, 0);
|
||||||
|
|
||||||
|
-- Create a sign there:
|
||||||
|
a_ChunkDesc:SetBlockTypeMeta(0, Height + 1, 0, E_BLOCK_SIGN_POST, 0);
|
||||||
|
local BlockEntity = a_ChunkDesc:GetBlockEntity(0, Height + 1, 0);
|
||||||
|
if (BlockEntity ~= nil) then
|
||||||
|
LOG("Setting sign lines...");
|
||||||
|
local SignEntity = tolua.cast(BlockEntity, "cSignEntity");
|
||||||
|
SignEntity:SetLines("Chunk:", tonumber(a_ChunkX) .. ", " .. tonumber(a_ChunkZ), "", "(Debuggers)");
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Update the heightmap:
|
||||||
|
a_ChunkDesc:SetHeight(0, 0, Height + 1);
|
||||||
|
end
|
||||||
|
</pre>
|
||||||
|
]],
|
||||||
|
},
|
||||||
|
}, -- AdditionalInfo
|
||||||
|
}, -- cChunkDesc
|
||||||
|
|
||||||
cClientHandle =
|
cClientHandle =
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user