@Override
 public void handleServerSide(EntityPlayer player) {
   World world = DimensionManager.getWorld(this.dim);
   if (world == null) return;
   TileEntity tileEntity = world.getTileEntity(this.x, this.y, this.z);
   if (tileEntity != null && tileEntity instanceof TileEntityCustomizeableDecoration) {
     TileEntityCustomizeableDecoration tile = (TileEntityCustomizeableDecoration) tileEntity;
     tile.setOrientation(rotation);
     tile.setScale(scale);
   }
 }
  public PacketTileRotationScale(
      World world, int xCoord, int yCoord, int zCoord, double rot, double sc) {
    dim = world.provider.dimensionId;
    x = xCoord;
    y = yCoord;
    z = zCoord;
    rotation = rot;
    scale = sc;

    TileEntity tileEntity = world.getTileEntity(this.x, this.y, this.z);
    if (tileEntity != null && tileEntity instanceof TileEntityCustomizeableDecoration) {
      TileEntityCustomizeableDecoration tile = (TileEntityCustomizeableDecoration) tileEntity;
      tile.setOrientation(rotation);
      tile.setScale(scale);
    }
  }
  @Override
  public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) {
    TileEntityCustomizeableDecoration tile = (TileEntityCustomizeableDecoration) tileEntity;
    RenderElement[] renderElements = tile.getRenderElements();

    GL11.glPushMatrix();
    GL11.glColor4d(1, 1, 1, 1);
    GL11.glEnable(3042);
    GL11.glBlendFunc(770, 771);
    GL11.glTranslated(x, y, z);
    for (RenderElement element : renderElements) {
      if (element != null) {
        try {
          //					if(!GraphicUtilities.isModelPathValid(element.getModel())
          //						/*||*/if(	!GraphicUtilities.isTexturePathValid(element.getTexture()) )
          //						break;
          GL11.glPushMatrix();

          GraphicUtilities.bindTexture(element.getTexture());
          GL11.glColor4d(
              element.getColour()[0],
              element.getColour()[1],
              element.getColour()[2],
              element.getAlpha());
          GL11.glTranslated(0.5, 0.5, 0.5);
          GL11.glRotated(tile.getOrientation(), 0, 1, 0);
          GL11.glTranslated(-0.5, -0.5, -0.5);
          GL11.glTranslated(
              element.getTranslation()[0],
              element.getTranslation()[1],
              element.getTranslation()[2]);

          if (element.getRotation()[2] != 0) GL11.glRotated(element.getRotation()[2], 0, 0, 1);
          if (element.getRotation()[1] != 0) GL11.glRotated(element.getRotation()[1], 0, 1, 0);
          if (element.getRotation()[0] != 0) GL11.glRotated(element.getRotation()[0], 1, 0, 0);

          GL11.glScaled(tile.getScale(), tile.getScale(), tile.getScale());
          if (GraphicUtilities.isModelPathValid(element.getModel())) {
            IModelCustom tempMod = GraphicUtilities.bindModel(element.getModel());
            if (tempMod != null && GraphicUtilities.isModelPartValid(tempMod, element.getPart()))
              tempMod.renderPart(element.getPart());
          }
          GL11.glPopMatrix();
        } catch (Exception except) {
          // except.printStackTrace();
          GL11.glPopMatrix();
        }
      }
    }

    GL11.glDisable(3042);
    GL11.glColor4d(1, 1, 1, 1);
    GL11.glPopMatrix();
  }