diff options
Diffstat (limited to 'src/main/java/gregtech/api/net')
-rw-r--r-- | src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java b/src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java new file mode 100644 index 0000000000..d03fd1d7f0 --- /dev/null +++ b/src/main/java/gregtech/api/net/GT_Packet_SendOregenPattern.java @@ -0,0 +1,56 @@ +package gregtech.api.net; + +import net.minecraft.world.IBlockAccess; + +import com.google.common.io.ByteArrayDataInput; + +import gregtech.api.util.GT_Log; +import gregtech.common.GT_Worldgenerator; +import gregtech.common.GT_Worldgenerator.OregenPattern; +import io.netty.buffer.ByteBuf; + +public class GT_Packet_SendOregenPattern extends GT_Packet_New { + + protected OregenPattern pattern = OregenPattern.AXISSYMMETRICAL; + + public GT_Packet_SendOregenPattern() { + super(true); + } + + public GT_Packet_SendOregenPattern(OregenPattern pattern) { + super(false); + this.pattern = pattern; + } + + @Override + public void encode(ByteBuf aOut) { + aOut.writeInt(this.pattern.ordinal()); + } + + @Override + public GT_Packet_New decode(ByteArrayDataInput aData) { + int ordinal = aData.readInt(); + // make sure we get valid data: + if (ordinal >= 0 && ordinal < OregenPattern.values().length) { + return new GT_Packet_SendOregenPattern(OregenPattern.values()[ordinal]); + } + // invalid data, default to AXISSYMMETRICAL: + GT_Log.err.println( + String.format( + "Received invalid data! Received %d but value must be between 0 and %d! Default (0) will be used.", + ordinal, + OregenPattern.values().length - 1)); + return new GT_Packet_SendOregenPattern(); + } + + @Override + public byte getPacketID() { + return 19; + } + + @Override + public void process(IBlockAccess aWorld) { + GT_Worldgenerator.oregenPattern = this.pattern; + } + +} |