예제 #1
0
 @Override
 protected void actionPerformed(GuiButton par1GuiButton) {
   if (par1GuiButton.enabled) {
     switch (par1GuiButton.id) {
       case 0:
         PacketDispatcher.sendPacketToServer(
             PacketUtil.createPacket(
                 GalacticraftCore.CHANNEL,
                 EnumPacketServer.UPDATE_DISABLEABLE_BUTTON,
                 new Object[] {
                   this.terraformer.xCoord, this.terraformer.yCoord, this.terraformer.zCoord, 0
                 }));
         break;
       case 1:
         PacketDispatcher.sendPacketToServer(
             PacketUtil.createPacket(
                 GalacticraftCore.CHANNEL,
                 EnumPacketServer.UPDATE_DISABLEABLE_BUTTON,
                 new Object[] {
                   this.terraformer.xCoord, this.terraformer.yCoord, this.terraformer.zCoord, 1
                 }));
         break;
     }
   }
 }
예제 #2
0
  /**
   * Handles a packet describing a stack of items inside a pipe.
   *
   * @param packet
   */
  public void handleItemPacket(PacketPipeTransportContent packet) {

    if (packet.getID() != PacketIds.PIPE_CONTENTS) return;

    TravelingItem item = items.get(packet.getTravellingItemId());
    if (item == null) {
      item = new TravelingItem(packet.getTravellingItemId());
      items.add(item);
    }

    if (item.getItemStack() == null) {
      item.setItemStack(
          new ItemStack(packet.getItemId(), packet.getStackSize(), packet.getItemDamage()));
      if (packet.hasNBT()) {
        PacketDispatcher.sendPacketToServer(
            new PacketSimpleId(
                    PacketIds.REQUEST_ITEM_NBT,
                    container.xCoord,
                    container.yCoord,
                    container.zCoord,
                    packet.getTravellingItemId())
                .getPacket());
      }
    } else {
      if (item.getItemStack().itemID != packet.getItemId()
          || item.getItemStack().stackSize != packet.getStackSize()
          || item.getItemStack().getItemDamage() != packet.getItemDamage()
          || item.getItemStack().hasTagCompound() != packet.hasNBT()) {
        item.setItemStack(
            new ItemStack(packet.getItemId(), packet.getStackSize(), packet.getItemDamage()));
        if (packet.hasNBT()) {
          PacketDispatcher.sendPacketToServer(
              new PacketSimpleId(
                      PacketIds.REQUEST_ITEM_NBT,
                      container.xCoord,
                      container.yCoord,
                      container.zCoord,
                      packet.getTravellingItemId())
                  .getPacket());
        }
      }
    }

    item.setPosition(packet.getItemX(), packet.getItemY(), packet.getItemZ());

    item.setSpeed(packet.getSpeed());

    item.input = packet.getInputOrientation();
    item.output = packet.getOutputOrientation();
    item.color = packet.getColor();
  }
  @Override
  public void onGuiClosed() {
    super.onGuiClosed();

    if (hasInteractedWith) {
      PacketDispatcher.sendPacketToServer(
          PacketEnhancedPortals.makePacket(new PacketPortalModifierUpdate(portalModifier)));
      PacketDispatcher.sendPacketToServer(
          PacketEnhancedPortals.makePacket(new PacketPortalModifierUpgrade(portalModifier)));

      portalModifier.worldObj.markBlockForRenderUpdate(
          portalModifier.xCoord, portalModifier.yCoord, portalModifier.zCoord);
    }
  }
예제 #4
0
 @Override
 public boolean hitEntity(
     ItemStack par1ItemStack,
     EntityLivingBase par2EntityLivingBase,
     EntityLivingBase par3EntityLivingBase) {
   if (par3EntityLivingBase instanceof EntityClientPlayerMP) {
     // System.out.println("Atk: " + par2EntityLivingBase.hurtTime);
     // EntityClientPlayerMP player = (EntityClientPlayerMP)par3EntityLivingBase;
     // player.heal(1.0F);
     // player.setHealth(player.getHealth()+1);
     if (par2EntityLivingBase.hurtTime == 0) {
       ByteArrayOutputStream bt = new ByteArrayOutputStream();
       DataOutputStream out = new DataOutputStream(bt);
       try {
         // System.out.println("Building packet...");
         out.writeInt(1);
         out.writeFloat(1);
         Packet250CustomPayload packet = new Packet250CustomPayload("Artifacts", bt.toByteArray());
         Player player = (Player) par3EntityLivingBase;
         // System.out.println("Sending packet..." + player);
         PacketDispatcher.sendPacketToServer(packet);
         par1ItemStack.damageItem(1, par3EntityLivingBase);
       } catch (IOException ex) {
         System.out.println("couldnt send packet!");
       }
     }
   }
   return false;
 }
  public static void fireTileEntityEvent(TileEntity tileEntity, int key, String vaule) {
    if ((tileEntity instanceof INetworkHandlerEventListener)) {
      ByteArrayOutputStream bos = new ByteArrayOutputStream(140);
      DataOutputStream dos = new DataOutputStream(bos);
      int x = tileEntity.xCoord;
      int y = tileEntity.yCoord;
      int z = tileEntity.zCoord;
      int typ = 3;

      int Dimension = tileEntity.worldObj.provider.dimensionId;
      try {
        dos.writeInt(x);
        dos.writeInt(y);
        dos.writeInt(z);
        dos.writeInt(typ);
        dos.writeInt(Dimension);
        dos.writeInt(key);
        dos.writeUTF(vaule);
      } catch (Exception e) {
      }

      Packet250CustomPayload pkt = new Packet250CustomPayload();
      pkt.channel = "MFFS";
      pkt.data = bos.toByteArray();
      pkt.length = bos.size();
      pkt.isChunkDataPacket = true;

      PacketDispatcher.sendPacketToServer(pkt);
    }
  }
    void updateServer (ItemStack stack)
    {
        ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
        DataOutputStream outputStream = new DataOutputStream(bos);
        try
        {
            outputStream.writeByte(2);
            outputStream.writeInt(logic.worldObj.provider.dimensionId);
            outputStream.writeInt(logic.xCoord);
            outputStream.writeInt(logic.yCoord);
            outputStream.writeInt(logic.zCoord);
            outputStream.writeShort(stack.itemID);
            outputStream.writeShort(stack.getItemDamage());
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }

        Packet250CustomPayload packet = new Packet250CustomPayload();
        packet.channel = "TConstruct";
        packet.data = bos.toByteArray();
        packet.length = bos.size();

        PacketDispatcher.sendPacketToServer(packet);
    }
예제 #7
0
  @Override
  public boolean pressKey(int key) {
    if (this.worldObj.isRemote && (key == 6 || key == 8 || key == 9)) {
      PacketDispatcher.sendPacketToServer(GCCorePacketControllableEntity.buildKeyPacket(key));
      return true;
    }
    switch (key) {
      case 0: // Accelerate
        {
          this.speed += this.accel / 20D;
          return true;
        }
      case 1: // Deccelerate
        {
          this.speed -= this.accel / 20D;
          return true;
        }
      case 2: // Left
        {
          this.rotationYaw -= 0.5F * this.turnFactor;
          return true;
        }
      case 3: // Right
        {
          this.rotationYaw += 0.5F * this.turnFactor;
          return true;
        }
    }

    return false;
  }
예제 #8
0
 @Override
 public boolean hitEntity(
     ItemStack par1ItemStack,
     EntityLivingBase par2EntityLivingBase,
     EntityLivingBase par3EntityLivingBase) {
   if (par3EntityLivingBase instanceof EntityClientPlayerMP) {
     if (par2EntityLivingBase.hurtTime == 0) {
       ByteArrayOutputStream bt = new ByteArrayOutputStream();
       DataOutputStream out = new DataOutputStream(bt);
       try {
         out.writeInt(7);
         out.writeInt(par2EntityLivingBase.entityId);
         EntityPlayer par3EntityPlayer = (EntityPlayer) par3EntityLivingBase;
         out.writeInt(par3EntityPlayer.inventory.currentItem);
         Packet250CustomPayload packet = new Packet250CustomPayload("Artifacts", bt.toByteArray());
         Player player = (Player) par3EntityLivingBase;
         PacketDispatcher.sendPacketToServer(packet);
         par1ItemStack.damageItem(3, par3EntityLivingBase);
       } catch (IOException ex) {
         System.out.println("couldnt send packet!");
       }
     }
   }
   return false;
 }
예제 #9
0
  /** Handles mouse input. */
  @Override
  public void handleMouseInput() {
    super.handleMouseInput();
    int var1 = Mouse.getEventDWheel();

    if (var1 != 0 && needsScrollBars()) {
      final int invHeight = ((ContainerStorage) inventorySlots).inventory.getSizeInventory() / 9;

      if (var1 > 0) {
        var1 = 1;
      }

      if (var1 < 0) {
        var1 = -1;
      }

      currentScroll = currentScroll - var1;

      if (currentScroll < 0) {
        currentScroll = 0;
      }

      if (currentScroll > invHeight - 5) {
        currentScroll = invHeight - 5;
      }

      // ((ContainerStorage)this.inventorySlots).inventory.scroll =
      // currentScroll;
      PacketDispatcher.sendPacketToServer(
          PacketHandler.getScrollPacket(
              tabList.get(selectedTabIndex).icon.itemID, (int) currentScroll, x, y, z));
      // ((ContainerCreative)this.inventorySlots).scrollTo(this.currentScroll);
    }
  }
예제 #10
0
 private void setSelectedTab(int i) {
   final int selectedTabIndex = tabPage * 6 + i;
   final int itemID = tabList.get(selectedTabIndex).icon.itemID;
   PacketDispatcher.sendPacketToServer(PacketHandler.getChangeTabPacket(x, y, z, itemID));
   // ((ContainerStorage)inventorySlots).changeTab(selectedTabIndex,
   // tabList.get(selectedTabIndex).icon);
 }
예제 #11
0
 public void actionPerformed(GuiButton button) {
   switch (button.id) {
     case 0:
       PacketDispatcher.sendPacketToServer(PacketCreator.createPacket(EnumPackets.PCClick, -5));
       mc.displayGuiScreen(parent);
       break;
   }
 }
 @Override
 public void openPortableCrafting(String keyPressed) {
   /*
    * Notify the Server that we opened the GUI. When the server receives the packet, it will open the Gui
    * server side, and notify the client to open the Gui client side on its own. Magic!
    */
   PacketDispatcher.sendPacketToServer(
       PacketTypeHandler.populatePacket(new PacketKeyPressed(keyPressed)));
 }
  @Override
  protected void actionPerformed(GuiButton guibutton) {
    super.actionPerformed(guibutton);

    if (guibutton.id == 1) {
      PacketDispatcher.sendPacketToServer(
          ModularForceFieldSystem.PACKET_TILE.getPacket(
              (TileEntity) this.frequencyTile, TilePacketType.TOGGLE_MODE.ordinal()));
    }
  }
  @Override
  protected void actionPerformed(GuiButton guiButton) {
    super.actionPerformed(guiButton);

    if (guiButton.id == 1) {
      PacketDispatcher.sendPacketToServer(
          PacketManager.getPacket(
              ZhuYao.CHANNEL, this.tileEntity, TPacketType.TOGGLE_MODE.ordinal()));
    }
  }
  @Override
  public void endChore() {
    if (!owner.worldObj.isRemote) {
      PacketDispatcher.sendPacketToAllPlayers(PacketHelper.createSyncPacket(owner));
      PacketDispatcher.sendPacketToAllPlayers(PacketHelper.createAddAIPacket(owner));
    } else {
      PacketDispatcher.sendPacketToServer(PacketHelper.createAddAIPacket(owner));
    }

    owner.addAI();

    hasEnded = true;
  }
예제 #16
0
  /** Draws the screen and all the components in it. */
  @Override
  public void drawScreen(int par1, int par2, float par3) {
    final boolean var4 = Mouse.isButtonDown(0);
    final int var5 = guiLeft;
    final int var6 = guiTop;
    final int var7 = var5 + 175;
    final int var8 = var6 + 18;
    final int var9 = var7 + 14;
    final int var10 = var8 + 112;

    if (!wasClicking && var4 && par1 >= var7 && par2 >= var8 && par1 < var9 && par2 < var10) {
      isScrolling = needsScrollBars();
    }

    if (!var4) {
      isScrolling = false;
    }

    wasClicking = var4;

    if (isScrolling) {
      final int invHeight =
          ((ContainerStorage) inventorySlots).inventory.getSizeInventory() / 9 - 5;
      final float scrollFraction = (par2 - var8 - 7.5F) / (var10 - var8 - 15.0F);

      final float oldScroll = currentScroll;
      currentScroll = (int) Math.floor(invHeight * scrollFraction + 0.5);

      if (currentScroll < 0.0F) {
        currentScroll = 0;
      }

      if (currentScroll > invHeight) {
        currentScroll = invHeight;
      }

      if (Math.floor(currentScroll) != Math.floor(oldScroll)) {
        // ((ContainerStorage)this.inventorySlots).inventory.scroll =
        // currentScroll;
        PacketDispatcher.sendPacketToServer(
            PacketHandler.getScrollPacket(
                tabList.get(selectedTabIndex).icon.itemID,
                (int) Math.floor(currentScroll),
                x,
                y,
                z));
      }
    }

    super.drawScreen(par1, par2, par3);
  }
예제 #17
0
 @Override
 protected void actionPerformed(GuiButton gb) {
   if (!gb.enabled) {
     return;
   }
   switch (gb.id) {
     case 1:
       this.eng.setText("10.0");
       break;
     case 2:
       this.itv.setText("1");
       break;
     case 3:
       try {
         this.tile.power = Float.parseFloat(this.eng.getText());
       } catch (Exception e) {
         this.eng.setText(StatCollector.translateToLocal("tof.error"));
         return;
       }
       if (this.tile.power <= 0) {
         this.eng.setText(StatCollector.translateToLocal("tof.error"));
         return;
       }
       try {
         this.tile.interval = Integer.parseInt(this.itv.getText());
       } catch (Exception e) {
         this.itv.setText(StatCollector.translateToLocal("tof.error"));
         return;
       }
       if (this.tile.interval < 1) {
         this.itv.setText(StatCollector.translateToLocal("tof.error"));
         return;
       }
       ByteArrayOutputStream bos = new ByteArrayOutputStream();
       DataOutputStream dos = new DataOutputStream(bos);
       try {
         dos.writeInt(this.tile.xCoord);
         dos.writeInt(this.tile.yCoord);
         dos.writeInt(this.tile.zCoord);
         dos.writeByte(PacketHandler.CtS_INFMJSRC);
         dos.writeFloat(this.tile.power);
         dos.writeInt(this.tile.interval);
       } catch (Exception e) {
         e.printStackTrace();
       }
       PacketDispatcher.sendPacketToServer(PacketHandler.composeTilePacket(bos));
       break;
   }
 }
예제 #18
0
  @Override
  protected void mouseClicked(int x, int y, int buttonClicked) {
    super.mouseClicked(x, y, buttonClicked);

    if (isPointInRegion(7, 46, 162, 18, x, y)) {
      PacketDispatcher.sendPacketToServer(
          PacketEnhancedPortals.makePacket(
              new PacketGui(portalModifier, GuiIds.PortalModifierNetwork)));
    } else if (isShiftKeyDown() && getSlotAtPosition(x, y) != null) {
      ItemStack itemStack = getSlotAtPosition(x, y).getStack();
      PortalTexture Text = Textures.getTextureFromItemStack(itemStack);

      if (Text != null) {
        extendedSlots.get(0).setSlot(itemStack);
      }
    }
  }
예제 #19
0
  /** Call this method from you GuiScreen to process the keys into textbox. */
  @Override
  public void keyTyped(char par1, int par2) {
    super.keyTyped(par1, par2);
    this.textFieldFrequency.textboxKeyTyped(par1, par2);

    try {
      int newFrequency = Math.max(0, Integer.parseInt(this.textFieldFrequency.getText()));
      this.textFieldFrequency.setText(newFrequency + "");

      if (((IItemFrequency) this.itemStack.getItem()).getFrequency(this.itemStack)
          != newFrequency) {
        ((IItemFrequency) this.itemStack.getItem()).setFrequency(newFrequency, this.itemStack);
        PacketDispatcher.sendPacketToServer(
            ICBMCore.PACKET_ITEM.getPacket(this.player, newFrequency));
      }
    } catch (NumberFormatException e) {
    }
  }
예제 #20
0
 /** {@inheritDoc} */
 @Override
 public void onUploaded(IUpload task) {
   if (task.getChannel().equals(MOD_ID)) {
     FMLLog.log(MOD_ID, Level.INFO, "Klaxon has been uploaded, notifying players");
     try {
       ByteArrayOutputStream bos = new ByteArrayOutputStream();
       DataOutputStream dos = new DataOutputStream(bos);
       dos.writeInt(PacketType.UploadedKlaxon.ordinal());
       dos.writeUTF(task.getName());
       Packet250CustomPayload packet = new Packet250CustomPayload();
       packet.channel = MOD_ID;
       packet.data = bos.toByteArray();
       packet.length = bos.size();
       PacketDispatcher.sendPacketToServer(packet);
     } catch (IOException e) {
       FMLLog.log(MOD_ID, Level.SEVERE, e, "Could not notify the players");
     }
   }
 }
예제 #21
0
 // works once!?
 // client side only!!
 @Override
 public ItemStack onItemRightClick(
     ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
   ByteArrayOutputStream bt = new ByteArrayOutputStream();
   DataOutputStream out = new DataOutputStream(bt);
   try {
     // System.out.println("Building packet...");
     out.writeInt(1);
     out.writeFloat(1);
     Packet250CustomPayload packet = new Packet250CustomPayload("Artifacts", bt.toByteArray());
     Player player = (Player) par3EntityPlayer;
     // System.out.println("Sending packet..." + player);
     PacketDispatcher.sendPacketToServer(packet);
     par1ItemStack.damageItem(1, par3EntityPlayer);
   } catch (IOException ex) {
     System.out.println("couldnt send packet!");
   }
   return par1ItemStack;
 }
  public static Packet requestInitialData(TileEntity tileEntity, boolean senddirekt) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream(140);
    DataOutputStream dos = new DataOutputStream(bos);
    int x = tileEntity.xCoord;
    int y = tileEntity.yCoord;
    int z = tileEntity.zCoord;
    int typ = 2;

    int Dimension = tileEntity.worldObj.provider.dimensionId;

    StringBuilder str = new StringBuilder();

    for (String fields : ((INetworkHandlerListener) tileEntity).getFieldsforUpdate()) {
      str.append(fields);
      str.append("/");
    }

    try {
      dos.writeInt(x);
      dos.writeInt(y);
      dos.writeInt(z);
      dos.writeInt(typ);
      dos.writeInt(Dimension);
      dos.writeUTF(str.toString());
    } catch (Exception e) {
    }

    Packet250CustomPayload pkt = new Packet250CustomPayload();
    pkt.channel = "MFFS";
    pkt.data = bos.toByteArray();
    pkt.length = bos.size();
    pkt.isChunkDataPacket = false;

    if (senddirekt) {
      PacketDispatcher.sendPacketToServer(pkt);
    }
    return pkt;
  }
예제 #23
0
 @Override
 public boolean itemInteractionForEntity(
     ItemStack par1ItemStack,
     EntityPlayer par2EntityPlayer,
     EntityLivingBase par3EntityLivingBase) {
   ByteArrayOutputStream bt = new ByteArrayOutputStream();
   DataOutputStream out = new DataOutputStream(bt);
   try {
     // System.out.println("Building packet...");
     out.writeInt(7);
     out.writeInt(par2EntityPlayer.entityId);
     out.writeInt(par2EntityPlayer.inventory.currentItem);
     // out.writeFloat(par3EntityPlayer.getHealth()+1);
     Packet250CustomPayload packet = new Packet250CustomPayload("Artifacts", bt.toByteArray());
     // System.out.println("Sending packet..." + player);
     PacketDispatcher.sendPacketToServer(packet);
     // par1ItemStack.damageItem(1, par2EntityPlayer);
     return true;
   } catch (IOException ex) {
     System.out.println("couldnt send packet!");
   }
   return false;
 }
  public static void requestForceFieldInitialData(int Dimension, String corridnaten) {
    try {
      ByteArrayOutputStream bos = new ByteArrayOutputStream(63000);
      DataOutputStream dos = new DataOutputStream(bos);

      dos.writeInt(0);
      dos.writeInt(0);
      dos.writeInt(0);
      dos.writeInt(10);
      dos.writeInt(Dimension);
      dos.writeUTF(corridnaten);

      Packet250CustomPayload pkt = new Packet250CustomPayload();
      pkt.channel = "MFFS";
      pkt.data = bos.toByteArray();
      pkt.length = bos.size();
      pkt.isChunkDataPacket = false;

      PacketDispatcher.sendPacketToServer(pkt);
    } catch (Exception e) {
      System.out.println(e.getLocalizedMessage());
    }
  }
  @Override
  public void tickStart(EnumSet<TickType> type, Object... tickData) {
    final Minecraft minecraft = FMLClientHandler.instance().getClient();

    final WorldClient world = minecraft.theWorld;

    final EntityClientPlayerMP player = minecraft.thePlayer;

    if (type.equals(EnumSet.of(TickType.CLIENT))) {
      if (GCCoreTickHandlerClient.tickCount >= Long.MAX_VALUE) {
        GCCoreTickHandlerClient.tickCount = 0;
      }

      GCCoreTickHandlerClient.tickCount++;

      if (GCCoreTickHandlerClient.tickCount % 20 == 0) {
        if (player != null
            && player.inventory.armorItemInSlot(3) != null
            && player.inventory.armorItemInSlot(3).getItem() instanceof GCCoreItemSensorGlasses) {
          ClientProxyCore.valueableBlocks.clear();

          for (int i = -4; i < 5; i++) {
            for (int j = -4; j < 5; j++) {
              for (int k = -4; k < 5; k++) {
                int x = MathHelper.floor_double(player.posX + i);
                int y = MathHelper.floor_double(player.posY + j);
                int z = MathHelper.floor_double(player.posZ + k);

                final int id = player.worldObj.getBlockId(x, y, z);

                if (id != 0) {
                  final Block block = Block.blocksList[id];
                  int metadata = world.getBlockMetadata(x, y, z);
                  boolean isDetectable = false;

                  for (BlockMetaList blockMetaList : ClientProxyCore.detectableBlocks) {
                    if (blockMetaList.getBlockID() == id
                        && blockMetaList.getMetaList().contains(metadata)) {
                      isDetectable = true;
                      break;
                    }
                  }

                  if (isDetectable) {
                    if (!this.alreadyContainsBlock(x, y, z)) {
                      ClientProxyCore.valueableBlocks.add(new Vector3(x, y, z));
                    }
                  } else if (block instanceof IDetectableResource
                      && ((IDetectableResource) block).isValueable(metadata)) {
                    if (!this.alreadyContainsBlock(x, y, z)) {
                      ClientProxyCore.valueableBlocks.add(new Vector3(x, y, z));
                    }

                    List<Integer> metaList = Lists.newArrayList();
                    metaList.add(metadata);

                    for (BlockMetaList blockMetaList : ClientProxyCore.detectableBlocks) {
                      if (blockMetaList.getBlockID() == id) {
                        metaList.addAll(blockMetaList.getMetaList());
                        break;
                      }
                    }

                    ClientProxyCore.detectableBlocks.add(new BlockMetaList(id, metaList));
                  }
                }
              }
            }
          }
        }
      }

      if (GCCoreTickHandlerClient.addTabsNextTick) {
        if (minecraft.currentScreen.getClass().equals(GuiInventory.class)) {
          GCCoreTickHandlerClient.addTabsToInventory((GuiContainer) minecraft.currentScreen);
        }

        GCCoreTickHandlerClient.addTabsNextTick = false;
      }

      if (minecraft.currentScreen != null && minecraft.currentScreen instanceof GuiMainMenu) {
        GalacticraftCore.playersServer.clear();
        GalacticraftCore.playersClient.clear();
        ClientProxyCore.playerItemData.clear();

        if (GCCoreTickHandlerClient.missingRequirementThread == null) {
          GCCoreTickHandlerClient.missingRequirementThread =
              new GCCoreThreadRequirementMissing(FMLCommonHandler.instance().getEffectiveSide());
          GCCoreTickHandlerClient.missingRequirementThread.start();
        }
      }

      if (world != null && GCCoreTickHandlerClient.checkedVersion) {
        GCCoreUtil.checkVersion(Side.CLIENT);
        GCCoreTickHandlerClient.checkedVersion = false;
      }

      if (player != null
          && player.ridingEntity != null
          && player.ridingEntity instanceof EntitySpaceshipBase) {
        final Object[] toSend = {player.ridingEntity.rotationPitch};
        PacketDispatcher.sendPacketToServer(
            PacketUtil.createPacket(
                GalacticraftCore.CHANNEL, EnumPacketServer.UPDATE_SHIP_PITCH, toSend));
        final Object[] toSend2 = {player.ridingEntity.rotationYaw};
        PacketDispatcher.sendPacketToServer(
            PacketUtil.createPacket(
                GalacticraftCore.CHANNEL, EnumPacketServer.UPDATE_SHIP_YAW, toSend2));
      }

      if (world != null && world.provider instanceof WorldProviderSurface) {
        if (world.provider.getSkyRenderer() == null
            && player.ridingEntity != null
            && player.ridingEntity.posY >= 200) {
          world.provider.setSkyRenderer(new GCCoreSkyProviderOverworld());
        } else if (world.provider.getSkyRenderer() != null
            && world.provider.getSkyRenderer() instanceof GCCoreSkyProviderOverworld
            && (player.ridingEntity == null || player.ridingEntity.posY < 200)) {
          world.provider.setSkyRenderer(null);
        }
      }

      if (world != null && world.provider instanceof GCCoreWorldProviderSpaceStation) {
        if (world.provider.getSkyRenderer() == null) {
          world.provider.setSkyRenderer(
              new GCCoreSkyProviderOrbit(
                  new ResourceLocation(
                      GalacticraftCore.ASSET_DOMAIN, "textures/gui/planets/overworld.png"),
                  true,
                  true));
        }

        if (world.provider.getCloudRenderer() == null) {
          world.provider.setCloudRenderer(new GCCoreCloudRenderer());
        }
      }

      if (player != null
          && player.ridingEntity != null
          && player.ridingEntity instanceof EntitySpaceshipBase) {
        final EntitySpaceshipBase ship = (EntitySpaceshipBase) player.ridingEntity;

        if (minecraft.gameSettings.keyBindLeft.pressed) {
          ship.turnYaw(-1.0F);
          final Object[] toSend = {ship.rotationYaw};
          PacketDispatcher.sendPacketToServer(
              PacketUtil.createPacket(
                  GalacticraftCore.CHANNEL, EnumPacketServer.UPDATE_SHIP_YAW, toSend));
        }

        if (minecraft.gameSettings.keyBindRight.pressed) {
          ship.turnYaw(1.0F);
          final Object[] toSend = {ship.rotationYaw};
          PacketDispatcher.sendPacketToServer(
              PacketUtil.createPacket(
                  GalacticraftCore.CHANNEL, EnumPacketServer.UPDATE_SHIP_YAW, toSend));
        }

        if (minecraft.gameSettings.keyBindForward.pressed) {
          if (ship.getLaunched()) {
            ship.turnPitch(-0.7F);
            final Object[] toSend = {ship.rotationPitch};
            PacketDispatcher.sendPacketToServer(
                PacketUtil.createPacket(
                    GalacticraftCore.CHANNEL, EnumPacketServer.UPDATE_SHIP_PITCH, toSend));
          }
        }

        if (minecraft.gameSettings.keyBindBack.pressed) {
          if (ship.getLaunched()) {
            ship.turnPitch(0.7F);
            final Object[] toSend = {ship.rotationPitch};
            PacketDispatcher.sendPacketToServer(
                PacketUtil.createPacket(
                    GalacticraftCore.CHANNEL, EnumPacketServer.UPDATE_SHIP_PITCH, toSend));
          }
        }
      }

      if (world != null) {
        for (int i = 0; i < world.loadedEntityList.size(); i++) {
          final Entity e = (Entity) world.loadedEntityList.get(i);

          if (e != null) {
            if (e instanceof GCCoreEntityRocketT1) {
              final GCCoreEntityRocketT1 eship = (GCCoreEntityRocketT1) e;

              if (eship.rocketSoundUpdater == null) {
                eship.rocketSoundUpdater =
                    new GCCoreSoundUpdaterSpaceship(
                        FMLClientHandler.instance().getClient().sndManager,
                        eship,
                        FMLClientHandler.instance().getClient().thePlayer);
              }
            }
          }
        }
      }

      if (FMLClientHandler.instance().getClient().currentScreen instanceof GCCoreGuiChoosePlanet) {
        player.motionY = 0;
      }

      if (world != null && world.provider instanceof IGalacticraftWorldProvider) {
        world.setRainStrength(0.0F);
      }

      if (!minecraft.gameSettings.keyBindJump.pressed) {
        ClientProxyCore.lastSpacebarDown = false;
      }

      if (player != null
          && player.ridingEntity != null
          && minecraft.gameSettings.keyBindJump.pressed
          && !ClientProxyCore.lastSpacebarDown) {
        final Object[] toSend = {0};
        PacketDispatcher.sendPacketToServer(
            PacketUtil.createPacket(
                GalacticraftCore.CHANNEL, EnumPacketServer.IGNITE_ROCKET, toSend));
        ClientProxyCore.lastSpacebarDown = true;
      }
    }
  }
예제 #26
0
  @Override
  public void updateEntity() {
    boolean flag = false;
    if (!this.initnal && this.worldObj != null) {
      if (this.worldObj.isRemote) {
        NetworkHelper.requestInitialData(this);
      } else {
        MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
        this.initnal = true;
      }
    }

    if (this.storage > 0) {
      if (this.storage - 16 > 0) {
        this.production = sendEnergy(16);
        this.storage -= 16;
      } else {
        this.production = sendEnergy(this.storage);
        this.storage = 0;
      }
      PacketDispatcher.sendPacketToServer(ClientPacketHandler.sendPacket(this));
    }

    if (isWorking()) {
      if (production > 0) {
        this.storage = this.storage + this.production;
        this.production = 0;
      }
      this.waitTime--;
      if (this.waitTime <= 0 && !this.worldObj.isRemote) {
        if (this.inv[0].getItemDamage() == Atoms.HYDROGEN.id
            && this.inv[1].getItemDamage() == Atoms.OXYGEN.id) {
          this.inv[0] = delSlot(this.inv[0]);
          this.inv[1] = delSlot(this.inv[1]);
          addSlot(new ItemStack(KagacraftItems.testTube, 1), 2);
          addSlot(new ItemStack(KagacraftItems.testTube, 1), 3);
          this.production = sendEnergy(this.hatuden);

          PacketDispatcher.sendPacketToServer(ClientPacketHandler.sendPacket(this));
          flag = true;
        }
        this.waitTime = 0;
      }
      if (this.inv[0] == null || this.inv[1] == null) {
        this.waitTime = 0;
      }
    } else if (this.inv[0] != null
        && this.inv[1] != null
        && this.inv[0].itemID == KagacraftItems.elements.itemID
        && this.inv[1].itemID == KagacraftItems.elements.itemID) {
      if (this.inv[0].getItemDamage() == Atoms.HYDROGEN.id
          && this.inv[1].getItemDamage() == Atoms.OXYGEN.id) {
        if (this.storage + this.hatuden < this.maxStorage) {
          this.waitTime = this.maxWaitTime;
        }
      }
    }

    if (flag) {
      this.onInventoryChanged();
    }
  }
예제 #27
0
 public void onButtonPushed(int buttonId) {
   this.buttonId = (byte) buttonId;
   PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(this));
 }
예제 #28
0
 @Override
 public ItemStack onItemRightClick(ItemStack par1ItemStack, World world, EntityPlayer player) {
   float f = 1.0F;
   float f1 = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * f;
   float f2 = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * f;
   double d0 = player.prevPosX + (player.posX - player.prevPosX) * (double) f;
   double d1 =
       player.prevPosY
           + (player.posY - player.prevPosY) * (double) f
           + 1.62D
           - (double) player.yOffset;
   double d2 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) f;
   Vec3 vec3 = world.getWorldVec3Pool().getVecFromPool(d0, d1, d2);
   float f3 = MathHelper.cos(-f2 * 0.017453292F - (float) Math.PI);
   float f4 = MathHelper.sin(-f2 * 0.017453292F - (float) Math.PI);
   float f5 = -MathHelper.cos(-f1 * 0.017453292F);
   float f6 = MathHelper.sin(-f1 * 0.017453292F);
   float f7 = f4 * f5;
   float f8 = f3 * f5;
   double d3 = 5.0D;
   Vec3 vec31 = vec3.addVector((double) f7 * d3, (double) f6 * d3, (double) f8 * d3);
   MovingObjectPosition movingobjectposition =
       world.rayTraceBlocks_do_do(vec3, vec31, false, true);
   if (movingobjectposition == null) {
     return par1ItemStack;
   }
   ByteArrayOutputStream bt = new ByteArrayOutputStream();
   DataOutputStream out = new DataOutputStream(bt);
   if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) {
     int ix = movingobjectposition.blockX;
     int iy = movingobjectposition.blockY;
     int iz = movingobjectposition.blockZ;
     if (!world.isBlockFullCube(ix, iy, iz)) {
       --iy;
     }
     /*EntityLightningBolt entityLightningBolt = new EntityLightningBolt(world, ix, iy, iz);
     world.addWeatherEffect(entityLightningBolt);*/
     // world.newExplosion(player, ix, iy, iz, 4, false, true);
     try {
       out.writeInt(7);
       out.writeInt(-1);
       out.writeInt(ix);
       out.writeInt(iy);
       out.writeInt(iz);
       out.writeInt(player.inventory.currentItem);
       Packet250CustomPayload packet = new Packet250CustomPayload("Artifacts", bt.toByteArray());
       PacketDispatcher.sendPacketToServer(packet);
       // par1ItemStack.damageItem(3, player);
     } catch (IOException ex) {
       System.out.println("couldnt send packet!");
     }
   }
   if (movingobjectposition.typeOfHit == EnumMovingObjectType.ENTITY) {
     System.out.println("Hit entity");
     System.out.println(movingobjectposition.hitVec);
     double ix = movingobjectposition.hitVec.xCoord;
     double iy = movingobjectposition.hitVec.yCoord;
     double iz = movingobjectposition.hitVec.zCoord;
     /*EntityLightningBolt entityLightningBolt = new EntityLightningBolt(world, ix, iy, iz);
     world.addWeatherEffect(entityLightningBolt);*/
     // world.newExplosion(player, ix, iy, iz, 4, false, true);
     try {
       out.writeInt(7);
       out.writeInt(movingobjectposition.entityHit.entityId);
       out.writeInt(player.inventory.currentItem);
       Packet250CustomPayload packet = new Packet250CustomPayload("Artifacts", bt.toByteArray());
       PacketDispatcher.sendPacketToServer(packet);
       par1ItemStack.damageItem(3, player);
     } catch (IOException ex) {
       System.out.println("couldnt send packet!");
     }
   }
   return par1ItemStack;
 }
예제 #29
0
 private void syncSneaking(EntityPlayer player, boolean isSneaking) {
   player.setSneaking(isSneaking);
   PacketDispatcher.sendPacketToServer(new Packet19EntityAction(player, isSneaking ? 1 : 2));
 }
예제 #30
0
  @Override
  public void onUpdate() {
    if (this.ticks >= Long.MAX_VALUE) {
      this.ticks = 1;
    }

    this.ticks++;

    super.onUpdate();

    if (this.worldObj.isRemote
        && (this.riddenByEntity == null
            || !(this.riddenByEntity instanceof EntityPlayer)
            || !FMLClientHandler.instance().getClient().thePlayer.equals(this.riddenByEntity))) {
      double x;
      double y;
      double var12;
      double z;
      if (this.boatPosRotationIncrements > 0) {
        x = this.posX + (this.boatX - this.posX) / this.boatPosRotationIncrements;
        y = this.posY + (this.boatY - this.posY) / this.boatPosRotationIncrements;
        z = this.posZ + (this.boatZ - this.posZ) / this.boatPosRotationIncrements;
        var12 = MathHelper.wrapAngleTo180_double(this.boatYaw - this.rotationYaw);
        this.rotationYaw = (float) (this.rotationYaw + var12 / this.boatPosRotationIncrements);
        this.rotationPitch =
            (float)
                (this.rotationPitch
                    + (this.boatPitch - this.rotationPitch) / this.boatPosRotationIncrements);
        --this.boatPosRotationIncrements;
        this.setPosition(x, y, z);
        this.setRotation(this.rotationYaw, this.rotationPitch);
      } else {
        x = this.posX + this.motionX;
        y = this.posY + this.motionY;
        z = this.posZ + this.motionZ;
        if (this.riddenByEntity != null) {
          this.setPosition(x, y, z);
        }

        if (this.onGround) {
          this.motionX *= 0.5D;
          this.motionY *= 0.5D;
          this.motionZ *= 0.5D;
        }

        this.motionX *= 0.9900000095367432D;
        this.motionY *= 0.949999988079071D;
        this.motionZ *= 0.9900000095367432D;
      }
      return;
    }

    if (this.dataWatcher.getWatchableObjectInt(this.timeSinceHit) > 0) {
      this.dataWatcher.updateObject(
          this.timeSinceHit,
          Integer.valueOf(this.dataWatcher.getWatchableObjectInt(this.timeSinceHit) - 1));
    }

    if (this.dataWatcher.getWatchableObjectInt(this.currentDamage) > 0) {
      this.dataWatcher.updateObject(
          this.currentDamage,
          Integer.valueOf(this.dataWatcher.getWatchableObjectInt(this.currentDamage) - 1));
    }

    final byte var20 = 5;
    final double var2 = 0.0D;
    int var4;

    for (var4 = 0; var4 < var20; ++var4) {}

    if (var2 < 1.0D) {
      this.motionY -= 0.04D;
    }

    if (this.riddenByEntity == null) {
      this.yOffset = 5;
    }

    if (this.inWater && this.speed > 0.2D) {
      this.worldObj.playSoundEffect(
          (float) this.posX,
          (float) this.posY,
          (float) this.posZ,
          "random.fizz",
          0.5F,
          2.6F + (this.worldObj.rand.nextFloat() - this.worldObj.rand.nextFloat()) * 0.8F);
    }

    this.speed *= 0.98D;

    if (this.speed > this.maxSpeed) {
      this.speed = this.maxSpeed;
    }

    if (this.isCollidedHorizontally) {
      this.speed *= 0.9;
      this.motionY = 0.1D;
    }

    if (this.worldObj.isRemote
        && this.buggyFuelTank.getFluid() != null
        && this.buggyFuelTank.getFluid().amount > 0) {
      this.motionX = -(this.speed * Math.cos((this.rotationYaw - 90F) * Math.PI / 180.0D));
      this.motionZ = -(this.speed * Math.sin((this.rotationYaw - 90F) * Math.PI / 180.0D));
    }

    if (this.worldObj.isRemote) {
      this.moveEntity(this.motionX, this.motionY, this.motionZ);
    }

    if (Math.abs(this.motionX * this.motionZ) > 0.000001) {
      double d = this.motionX * this.motionX + this.motionZ * this.motionZ;

      if (d != 0
          && !this.worldObj.isRemote
          && d != 0
          && this.ticks % MathHelper.floor_double(2 / d) == 0) {
        this.removeFuel(1);
      }
    }

    this.prevPosX = this.posX;
    this.prevPosY = this.posY;
    this.prevPosZ = this.posZ;

    if (this.worldObj.isRemote) {
      PacketDispatcher.sendPacketToServer(GCCorePacketEntityUpdate.buildUpdatePacket(this));
    }

    if (!this.worldObj.isRemote && this.ticks % 5 == 0) {
      PacketDispatcher.sendPacketToAllAround(
          this.posX,
          this.posY,
          this.posZ,
          50,
          this.dimension,
          GCCorePacketEntityUpdate.buildUpdatePacket(this));
    }

    if (!this.worldObj.isRemote && this.ticks % 5 == 0) {
      PacketManager.sendPacketToClients(
          this.getDescriptionPacket(), this.worldObj, new Vector3(this), 50);
    }
  }