Java 为什么Minecraft的setLightLevel不能正常工作?
所以我开始为minectraft开发我的mod。它添加的块之一应该是更强大的glowstone版本。这就是剧本:Java 为什么Minecraft的setLightLevel不能正常工作?,java,minecraft,Java,Minecraft,所以我开始为minectraft开发我的mod。它添加的块之一应该是更强大的glowstone版本。这就是剧本: 导入net.minecraft.block.SoundType; 进口net.minecraft.block.material.material; 公共类FeralFlareBlock扩展了BlockBase { 公共FeralFlareBlock(字符串名称、材质) { 超级(名称、材料); setSoundType(SoundType.GLASS); 硬度(0.3F); 设定电阻
导入net.minecraft.block.SoundType;
进口net.minecraft.block.material.material;
公共类FeralFlareBlock扩展了BlockBase
{
公共FeralFlareBlock(字符串名称、材质)
{
超级(名称、材料);
setSoundType(SoundType.GLASS);
硬度(0.3F);
设定电阻(0.3F);
设置收割水平(“鹤嘴锄”,1);
设置照明水平(100.0F);
不透明度(1);
}
}
还有setLightLevel函数,我将它设置为100,即使辉光石是15,所以理论上这应该更强大。事实并非如此。不知道我做错了什么,请帮帮我。Thx最大亮度为15。所以它不能比辉光石轻 有16个灯 级别,由0(最小值)到15之间的整数指定 (最大值) 解释
setLightLevel
方法的值介于0.0
(最暗)和1.0
(最亮)之间
因此,100.0F
的值无效
还可以看到我在搜索您的问题时找到的一些线程::
Item#setLightLevel
在0.0F和1.0F之间浮动,而不是从0到15。如果要获得最大灯光级别,请使用1.0F
为了便于参考,这里有一个指向javadoc的链接:
我把它设置为100,即使辉光石是15,所以理论上这应该更强大。事实并非如此 Minecraft中最亮的灯光级别为
15
(通过setLightLevel
接收1.0
)。你不能做出比这更亮的东西。Minecraft不支持更亮的值
从0到15翻译 通过简单的数学运算,您可以轻松地将minecrafts灯光级别(0到15)转换为此方法:
// Takes values between 0 and 15 (both inclusive) and converts to 0 to 1.0.
private static double translateLightLevelToFloat(int lightLevel) {
if (ligthLevel < 0 || lightLevel > 15) {
throw new IllegalArgumentException("Light level must be between 0 and 15 (both inclusive)");
}
return lightLevel / 15.0;
}
//获取介于0和15之间的值(包括0和15),并将其转换为0到1.0。
专用静态双translateLightLevelToFloat(int lightLevel){
如果(亮度级<0 | |亮度级>15){
抛出新的IllegalArgumentException(“灯光级别必须介于0和15之间(包括0和15)”);
}
返回光级/15.0;
}
快速搜索告诉我该值应该在0.0f和1.0f之间。1是最大值是正确的,但是setLightLevel
方法采用0.0
和1.0
之间的值,而不是0
到15
之间的整数。这是正确的,但是lightlevel不能超过15,因此任何高于1.0的值都不会产生任何差异。这是我的声明