Fix #2321
This commit is contained in:
parent
8af1624f9e
commit
cb70f1378c
2 changed files with 136 additions and 0 deletions
|
@ -1,5 +1,27 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/WorldRenderer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/WorldRenderer.java
|
||||
@@ -506,15 +506,15 @@
|
||||
break;
|
||||
case USHORT:
|
||||
case SHORT:
|
||||
- this.field_179001_a.putShort(i, (short)((int)p_181663_1_ * 32767 & 65535));
|
||||
- this.field_179001_a.putShort(i + 2, (short)((int)p_181663_2_ * 32767 & 65535));
|
||||
- this.field_179001_a.putShort(i + 4, (short)((int)p_181663_3_ * 32767 & 65535));
|
||||
+ this.field_179001_a.putShort(i, (short)((int)(p_181663_1_ * 32767) & 65535));
|
||||
+ this.field_179001_a.putShort(i + 2, (short)((int)(p_181663_2_ * 32767) & 65535));
|
||||
+ this.field_179001_a.putShort(i + 4, (short)((int)(p_181663_3_ * 32767) & 65535));
|
||||
break;
|
||||
case UBYTE:
|
||||
case BYTE:
|
||||
- this.field_179001_a.put(i, (byte)((int)p_181663_1_ * 127 & 255));
|
||||
- this.field_179001_a.put(i + 1, (byte)((int)p_181663_2_ * 127 & 255));
|
||||
- this.field_179001_a.put(i + 2, (byte)((int)p_181663_3_ * 127 & 255));
|
||||
+ this.field_179001_a.put(i, (byte)((int)(p_181663_1_ * 127) & 255));
|
||||
+ this.field_179001_a.put(i + 1, (byte)((int)(p_181663_2_ * 127) & 255));
|
||||
+ this.field_179001_a.put(i + 2, (byte)((int)(p_181663_3_ * 127) & 255));
|
||||
}
|
||||
|
||||
this.func_181667_k();
|
||||
@@ -578,6 +578,16 @@
|
||||
}
|
||||
}
|
||||
|
|
114
src/test/java/net/minecraftforge/test/WRNormalMod.java
Normal file
114
src/test/java/net/minecraftforge/test/WRNormalMod.java
Normal file
|
@ -0,0 +1,114 @@
|
|||
package net.minecraftforge.test;
|
||||
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.client.renderer.entity.RenderManager;
|
||||
import net.minecraft.client.renderer.entity.RendererLivingEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.EntityArmorStand;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.client.registry.IRenderFactory;
|
||||
import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.SidedProxy;
|
||||
import net.minecraftforge.fml.common.Mod.EventHandler;
|
||||
import net.minecraftforge.fml.common.Mod.Instance;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
import net.minecraftforge.fml.common.registry.EntityRegistry;
|
||||
|
||||
@Mod(modid = "wrnormal", version = "1.0")
|
||||
public class WRNormalMod
|
||||
{
|
||||
@Instance("wrnormal")
|
||||
public static WRNormalMod instance;
|
||||
|
||||
@SidedProxy
|
||||
public static ServerProxy proxy;
|
||||
|
||||
@EventHandler
|
||||
public void init(FMLPreInitializationEvent event)
|
||||
{
|
||||
EntityRegistry.registerModEntity(EntityScaleTest.class, "ScaleTest", 0, instance, 60, 3, true);
|
||||
proxy.registerRenders();
|
||||
}
|
||||
|
||||
public static class ServerProxy
|
||||
{
|
||||
public void registerRenders()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static class ClientProxy extends ServerProxy
|
||||
{
|
||||
@Override
|
||||
public void registerRenders()
|
||||
{
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityScaleTest.class, new RenderScaleTestFactory());
|
||||
}
|
||||
}
|
||||
|
||||
public static class RenderScaleTestFactory implements IRenderFactory<EntityScaleTest>
|
||||
{
|
||||
@Override
|
||||
public RenderScaleTest createRenderFor(RenderManager manager)
|
||||
{
|
||||
return new RenderScaleTest(manager);
|
||||
}
|
||||
}
|
||||
|
||||
public static class EntityScaleTest extends EntityArmorStand
|
||||
{
|
||||
public EntityScaleTest(World world)
|
||||
{
|
||||
super(world);
|
||||
}
|
||||
}
|
||||
|
||||
public static class RenderScaleTest extends RendererLivingEntity<EntityScaleTest>
|
||||
{
|
||||
private static final ResourceLocation TEXTURE = new ResourceLocation("textures/blocks/stone.png");
|
||||
|
||||
public RenderScaleTest(RenderManager manager)
|
||||
{
|
||||
super(manager, new ModelScaleTest(), 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderName(EntityScaleTest entity, double x, double y, double z)
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ResourceLocation getEntityTexture(EntityScaleTest entity)
|
||||
{
|
||||
return TEXTURE;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ModelScaleTest extends ModelBase
|
||||
{
|
||||
private ModelRenderer component;
|
||||
|
||||
public ModelScaleTest()
|
||||
{
|
||||
textureWidth = textureHeight = 16;
|
||||
component = new ModelRenderer(this);
|
||||
int size = 10;
|
||||
for (int x = 0; x < size; x++)
|
||||
{
|
||||
for (int z = 0; z < size; z++)
|
||||
{
|
||||
component.addBox((x - size / 2) * 3, 0, (z - size / 2) * 3, 2, 2, 2, -(x + z * size) / (float) (size * size) * 0.5F);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(Entity entity, float p1, float p2, float p3, float p4, float p5, float scale)
|
||||
{
|
||||
component.render(scale);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue