2014-07-21 20:47:00 +02:00
|
|
|
package com.pahimar.ee3.network.message;
|
|
|
|
|
|
|
|
import com.pahimar.ee3.EquivalentExchange3;
|
2016-05-16 21:06:40 +02:00
|
|
|
import com.pahimar.ee3.handler.ConfigurationHandler;
|
2014-07-21 20:47:00 +02:00
|
|
|
import cpw.mods.fml.client.FMLClientHandler;
|
|
|
|
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
|
|
|
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
|
|
|
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
|
|
|
import io.netty.buffer.ByteBuf;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
public class MessageSoundEvent implements IMessage, IMessageHandler<MessageSoundEvent, IMessage>
|
|
|
|
{
|
|
|
|
private long mostSigUUID, leastSigUUID;
|
|
|
|
private String soundName;
|
|
|
|
private float xCoord, yCoord, zCoord;
|
|
|
|
private float volume, pitch;
|
|
|
|
|
|
|
|
public MessageSoundEvent()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public MessageSoundEvent(EntityPlayer entityPlayer, String soundName, float volume, float pitch)
|
|
|
|
{
|
|
|
|
this.mostSigUUID = entityPlayer.getUniqueID().getMostSignificantBits();
|
|
|
|
this.leastSigUUID = entityPlayer.getUniqueID().getLeastSignificantBits();
|
|
|
|
this.soundName = soundName;
|
|
|
|
this.xCoord = (float) entityPlayer.posX;
|
|
|
|
this.yCoord = (float) entityPlayer.posY;
|
|
|
|
this.zCoord = (float) entityPlayer.posZ;
|
|
|
|
this.volume = volume;
|
|
|
|
this.pitch = pitch;
|
|
|
|
}
|
|
|
|
|
|
|
|
public MessageSoundEvent(String soundName, float xCoord, float yCoord, float zCoord, float volume, float pitch)
|
|
|
|
{
|
|
|
|
this.mostSigUUID = 0;
|
|
|
|
this.leastSigUUID = 0;
|
|
|
|
this.soundName = soundName;
|
|
|
|
this.xCoord = xCoord;
|
|
|
|
this.yCoord = yCoord;
|
|
|
|
this.zCoord = zCoord;
|
|
|
|
this.volume = volume;
|
|
|
|
this.pitch = pitch;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void fromBytes(ByteBuf byteBuf)
|
|
|
|
{
|
|
|
|
this.mostSigUUID = byteBuf.readLong();
|
|
|
|
this.leastSigUUID = byteBuf.readLong();
|
|
|
|
int soundNameLength = byteBuf.readInt();
|
|
|
|
this.soundName = new String(byteBuf.readBytes(soundNameLength).array());
|
|
|
|
this.xCoord = byteBuf.readFloat();
|
|
|
|
this.yCoord = byteBuf.readFloat();
|
|
|
|
this.zCoord = byteBuf.readFloat();
|
|
|
|
this.volume = byteBuf.readFloat();
|
|
|
|
this.pitch = byteBuf.readFloat();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void toBytes(ByteBuf byteBuf)
|
|
|
|
{
|
|
|
|
byteBuf.writeLong(mostSigUUID);
|
|
|
|
byteBuf.writeLong(leastSigUUID);
|
|
|
|
byteBuf.writeInt(soundName.length());
|
|
|
|
byteBuf.writeBytes(soundName.getBytes());
|
|
|
|
byteBuf.writeFloat(xCoord);
|
|
|
|
byteBuf.writeFloat(yCoord);
|
|
|
|
byteBuf.writeFloat(zCoord);
|
|
|
|
byteBuf.writeFloat(volume);
|
|
|
|
byteBuf.writeFloat(pitch);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public IMessage onMessage(MessageSoundEvent event, MessageContext context)
|
|
|
|
{
|
|
|
|
UUID originUUID = new UUID(event.mostSigUUID, event.leastSigUUID);
|
|
|
|
|
2016-05-16 21:06:40 +02:00
|
|
|
if (ConfigurationHandler.Settings.soundMode.equalsIgnoreCase("All"))
|
2014-07-21 20:47:00 +02:00
|
|
|
{
|
|
|
|
EquivalentExchange3.proxy.playSound(event.soundName, event.xCoord, event.yCoord, event.zCoord, event.volume, event.pitch);
|
|
|
|
}
|
2016-05-16 21:06:40 +02:00
|
|
|
else if (ConfigurationHandler.Settings.soundMode.equalsIgnoreCase("Self"))
|
2014-07-21 20:47:00 +02:00
|
|
|
{
|
|
|
|
if (FMLClientHandler.instance().getClient().thePlayer.getUniqueID().equals(originUUID))
|
|
|
|
{
|
|
|
|
EquivalentExchange3.proxy.playSound(event.soundName, event.xCoord, event.yCoord, event.zCoord, event.volume, event.pitch);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|