Multiplayer Bugfixes

This commit is contained in:
Tschipp 2017-08-12 21:30:03 +02:00
parent 2415e5db13
commit d5affb3a5a
3 changed files with 42 additions and 26 deletions

View File

@ -6,6 +6,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
@ -31,7 +32,6 @@ import net.minecraftforge.client.event.RenderHandEvent;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.InputEvent;
import net.minecraftforge.fml.relauncher.ReflectionHelper;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import tschipp.carryon.common.config.CarryOnConfig;
@ -76,8 +76,8 @@ public class RenderEvents
ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
if (inventory && !stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
{
event.setCanceled(true);
Minecraft.getMinecraft().currentScreen = null;
event.setCanceled(true);
Minecraft.getMinecraft().currentScreen = null;
}
}
}
@ -124,7 +124,7 @@ public class RenderEvents
World world = Minecraft.getMinecraft().world;
EntityPlayer player = Minecraft.getMinecraft().player;
ItemStack stack = player.getHeldItemMainhand();
int pass = event.getRenderPass();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
{
Block block = ItemTile.getBlock(stack);
@ -154,8 +154,11 @@ public class RenderEvents
GlStateManager.scale(1, 1, 1);
GlStateManager.popMatrix();
event.setCanceled(true);
if (perspective == 0)
event.setCanceled(true);
}
else
event.setCanceled(false);
}
/*
@ -166,7 +169,8 @@ public class RenderEvents
public void onPlayerRenderPost(RenderPlayerEvent.Post event)
{
World world = Minecraft.getMinecraft().world;
EntityPlayer player = Minecraft.getMinecraft().player;
EntityPlayer player = event.getEntityPlayer();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().player;
ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
{
@ -183,7 +187,12 @@ public class RenderEvents
float rotation = -player.renderYawOffset;
int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView;
double xOffset = (double) player.posX - (double) clientPlayer.posX;
double yOffset = (double) player.posY - (double) clientPlayer.posY;
double zOffset = (double) player.posZ - (double) clientPlayer.posZ;
GlStateManager.pushMatrix();
GlStateManager.translate(xOffset, yOffset, zOffset);
GlStateManager.scale(0.6, 0.6, 0.6);
if (CarryOnConfig.settings.facePlayer ? !isChest(block) : isChest(block))
@ -216,35 +225,40 @@ public class RenderEvents
@SubscribeEvent
public void onPlayerRenderPre(RenderPlayerEvent.Pre event)
{
EntityPlayer player = Minecraft.getMinecraft().player;
AbstractClientPlayer aplayer = Minecraft.getMinecraft().player;
EntityPlayer player = event.getEntityPlayer();
AbstractClientPlayer aplayer = (AbstractClientPlayer) player;
ItemStack stack = player.getHeldItemMainhand();
RenderPlayer renderer = event.getRenderer();
ModelBiped model = getPlayerModel(aplayer);
ModelBiped model = event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().player;
ResourceLocation skinLoc = DefaultPlayerSkin.getDefaultSkin(player.getPersistentID());
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
{
{
model.bipedLeftArm.isHidden = true;
model.bipedRightArm.isHidden = true;
Minecraft.getMinecraft().getTextureManager().bindTexture(skinLoc);
RenderPlayer renderPlayer = (RenderPlayer)renderer;
float rotation = -player.renderYawOffset;
ModelRenderer fakeLeftArm = new ModelRenderer(model, 40, 16);
fakeLeftArm.mirror = true;
if (aplayer.getSkinType().equals("default")) {
if (aplayer.getSkinType().equals("default"))
{
fakeLeftArm.addBox(model.bipedLeftArm.offsetX + 4.2F, model.bipedLeftArm.offsetY, model.bipedLeftArm.offsetZ, 4, 12, 4, .08F);
} else {
}
else
{
fakeLeftArm.addBox(model.bipedLeftArm.offsetX + 4.2F, model.bipedLeftArm.offsetY, model.bipedLeftArm.offsetZ, 3, 12, 4, .08F);
}
ModelRenderer fakeRightArm = new ModelRenderer(model, 40, 16);
fakeRightArm.mirror = true;
if (aplayer.getSkinType().equals("default")) {
if (aplayer.getSkinType().equals("default"))
{
fakeRightArm.addBox(model.bipedRightArm.offsetX - 7.9F, model.bipedRightArm.offsetY, model.bipedRightArm.offsetZ, 4, 12, 4, .08F);
} else {
}
else
{
fakeRightArm.addBox(model.bipedRightArm.offsetX - 7.2F, model.bipedRightArm.offsetY, model.bipedRightArm.offsetZ, 3, 12, 4, .08F);
}
@ -252,21 +266,21 @@ public class RenderEvents
fakeLeftArm.rotateAngleX = -.9F;
model.bipedBody.addChild(fakeLeftArm);
model.bipedBody.addChild(fakeRightArm);
} else {
}
else
{
model.bipedLeftArm.isHidden = false;
model.bipedRightArm.isHidden = false;
if (model.bipedBody.childModels != null && !model.bipedBody.childModels.isEmpty()) {
if (model.bipedBody.childModels != null && !model.bipedBody.childModels.isEmpty())
{
model.bipedBody.childModels.clear();
model.bipedBody.childModels.add(model.bipedLeftArm);
model.bipedBody.childModels.add(model.bipedRightArm);
}
}
}
private boolean isChest(Block block)
public static boolean isChest(Block block)
{
return block == Blocks.CHEST || block == Blocks.ENDER_CHEST || block == Blocks.TRAPPED_CHEST;
}

View File

@ -13,6 +13,7 @@ import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.player.PlayerEvent.StartTracking;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.eventhandler.Event.Result;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
@ -23,7 +24,7 @@ import tschipp.carryon.common.item.ItemTile;
public class ItemEvents
{
@SubscribeEvent(priority = EventPriority.HIGH)
public void onBlockClick(PlayerInteractEvent.RightClickBlock event)
{

View File

@ -37,5 +37,6 @@ public class RegistrationHandler
{
ModelOverridesHandler.initOverrides();
}
}