package org.getspout.spout.packet;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import net.minecraft.src.Block;
import net.minecraft.src.Material;
import net.minecraft.src.StepSound;
public class PacketBlockTextures implements SpoutPacket {
private int id = 97;
private int[] texture = new int[6];
private byte byteSS = 127;
private byte byteMat = 127;
@Override
public int getNumBytes() {
// int*6 + int + byte + byte
return 4*6 + 4 + 1 + 1;
}
@Override
public void readData(DataInputStream input) throws IOException {
// TODO Auto-generated method stub
texture[0] = input.readInt();
texture[1] = input.readInt();
texture[2] = input.readInt();
texture[3] = input.readInt();
texture[4] = input.readInt();
texture[5] = input.readInt();
id = input.readInt();
byteSS = input.readByte();
byteMat = input.readByte();
}
@Override
public void writeData(DataOutputStream output) throws IOException {
// TODO Auto-generated method stub
output.writeInt(texture[0]);
output.writeInt(texture[1]);
output.writeInt(texture[2]);
output.writeInt(texture[3]);
output.writeInt(texture[4]);
output.writeInt(texture[5]);
output.writeInt(id);
output.writeByte(byteSS);
output.writeByte(byteMat);
}
@Override
public void run(int playerId) {
// TODO Auto-generated method stub
StepSound ss = Block.soundStoneFootstep;
switch (byteSS) { case 0:
ss = Block.soundClothFootstep; break;
case 1:
ss = Block.soundGlassFootstep; break;
case 2:
ss = Block.soundGrassFootstep; break;
case 3:
ss = Block.soundGravelFootstep; break;
case 4:
ss = Block.soundMetalFootstep; break;
case 5:
ss = Block.soundPowderFootstep; break;
case 6:
ss = Block.soundSandFootstep; break;
case 7:
ss = Block.soundStoneFootstep; break;
case 8:
ss = Block.soundWoodFootstep; break;
default:
ss = Block.soundStoneFootstep;
}
Material mat = Material.rock;
switch (byteMat) {
case 0: mat = Material.builtSnow; break;
case 1: mat = Material.cactus; break;
case 2: mat = Material.cakeMaterial; break;
case 3: mat = Material.circuits; break;
case 4: mat = Material.clay; break;
case 5: mat = Material.cloth; break;
case 6: mat = Material.fire; break;
case 7: mat = Material.glass; break;
case 8: mat = Material.grassMaterial; break;
case 9: mat = Material.ground; break;
case 10: mat = Material.ice; break;
case 11: mat = Material.lava; break;
case 12: mat = Material.leaves; break;
case 13: mat = Material.plants; break;
case 14: mat = Material.portal; break;
case 15: mat = Material.pumpkin; break;
case 16: mat = Material.rock; break;
case 17: mat = Material.sand; break;
case 18: mat = Material.snow; break;
case 19: mat = Material.sponge; break;
case 20: mat = Material.tnt; break;
case 21: mat = Material.water; break;
case 22: mat = Material.wood; break;
}
Block.defineBlockSMP(id, ss, texture, mat);
}
@Override
public void failure(int playerId) {
}
@Override
public PacketType getPacketType() {
// TODO Auto-generated method stub
return PacketType.PacketBlockTextures;
}
@Override
public int getVersion() {
// TODO Auto-generated method stub
return 1;
}
}