本文整理汇总了Java中ethanjones.cubes.core.event.world.block.BlockChangedEvent.getBlockReference方法的典型用法代码示例。如果您正苦于以下问题:Java BlockChangedEvent.getBlockReference方法的具体用法?Java BlockChangedEvent.getBlockReference怎么用?Java BlockChangedEvent.getBlockReference使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ethanjones.cubes.core.event.world.block.BlockChangedEvent
的用法示例。
在下文中一共展示了BlockChangedEvent.getBlockReference方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: blockChanged
import ethanjones.cubes.core.event.world.block.BlockChangedEvent; //导入方法依赖的package包/类
@EventHandler(critical = true)
public void blockChanged(BlockChangedEvent event) {
BlockReference blockReference = event.getBlockReference();
Block oldBlock = event.getOldBlock();
Block newBlock = event.getNewBlock();
int oldMeta = event.getOldMeta();
int newMeta = event.getNewMeta();
blockChangedOld(oldBlock, oldMeta, newBlock, newMeta);
Performance.start(PerformanceTags.LIGHT_UPDATE);
Area area = event.getArea();
LightWorldSection lws = new LightWorldSection(area);
try {
// Block light
BlockLight.removeLight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
if (newBlock != null && newBlock.getLightLevel(newMeta) > 0) {
BlockLight.addLight(blockReference.blockX, blockReference.blockY, blockReference.blockZ,
event.getNewBlock().getLightLevel(newMeta), area, lws);
}
BlockLight.spreadLight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
// Sunlight
if (newBlock != null && !newBlock.isTransparent(newMeta)) {
SunLight.removeSunlight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
} else {
SunLight.addSunlight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
}
} catch (AreaNotLoadedException e) {
Log.error("Failed to update light", e);
}
lws.unlock();
Performance.stop(PerformanceTags.LIGHT_UPDATE);
}
示例2: blockChanged
import ethanjones.cubes.core.event.world.block.BlockChangedEvent; //导入方法依赖的package包/类
@EventHandler(critical = true)
public void blockChanged(BlockChangedEvent event) {
BlockReference blockReference = event.getBlockReference();
Block oldBlock = event.getOldBlock();
Block newBlock = event.getNewBlock();
int oldMeta = event.getOldMeta();
int newMeta = event.getNewMeta();
if ((oldBlock == null ? 0 : oldBlock.getLightLevel(oldMeta)) == (newBlock == null ? 0 : newBlock.getLightLevel(newMeta)) && TransparencyManager.isTransparent(oldBlock, oldMeta) == TransparencyManager.isTransparent(newBlock, newMeta)) {
return;
}
Performance.start(PerformanceTags.LIGHT_UPDATE);
Area area = event.getArea();
LightWorldSection lws = new LightWorldSection(area);
try {
// Block light
BlockLight.removeLight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
if (newBlock != null && newBlock.getLightLevel(newMeta) > 0) {
BlockLight.addLight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, event.getNewBlock().getLightLevel(newMeta), area, lws);
}
BlockLight.spreadLight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
// Sunlight
if (newBlock != null && !newBlock.isTransparent(newMeta)) {
SunLight.removeSunlight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
} else {
SunLight.addSunlight(blockReference.blockX, blockReference.blockY, blockReference.blockZ, area, lws);
}
} catch (AreaNotLoadedException e) {
Log.error("Failed to update light", e);
}
lws.unlock();
Performance.stop(PerformanceTags.LIGHT_UPDATE);
}