network streaming upgrade
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit

This commit is contained in:
austin 2025-05-25 20:09:47 -04:00
parent e0b22d2949
commit 349986788b
13 changed files with 842 additions and 79 deletions

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -127,7 +129,6 @@ public class AuthMessage extends NetworkMessage {
*/
public static AuthMessage constructAuthRequestMessage(){
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHREQUEST);
rVal.serialize();
return rVal;
}
@ -185,7 +186,6 @@ public class AuthMessage extends NetworkMessage {
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHDETAILS);
rVal.setuser(user);
rVal.setpass(pass);
rVal.serialize();
return rVal;
}
@ -204,7 +204,6 @@ public class AuthMessage extends NetworkMessage {
*/
public static AuthMessage constructAuthSuccessMessage(){
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHSUCCESS);
rVal.serialize();
return rVal;
}
@ -223,10 +222,10 @@ public class AuthMessage extends NetworkMessage {
*/
public static AuthMessage constructAuthFailureMessage(){
AuthMessage rVal = new AuthMessage(AuthMessageType.AUTHFAILURE);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -280,4 +279,32 @@ public class AuthMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case AUTHREQUEST:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_AUTH);
stream.write(TypeBytes.AUTH_MESSAGE_TYPE_AUTHREQUEST);
break;
case AUTHDETAILS:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_AUTH);
stream.write(TypeBytes.AUTH_MESSAGE_TYPE_AUTHDETAILS);
ByteStreamUtils.writeString(stream, user);
ByteStreamUtils.writeString(stream, pass);
break;
case AUTHSUCCESS:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_AUTH);
stream.write(TypeBytes.AUTH_MESSAGE_TYPE_AUTHSUCCESS);
break;
case AUTHFAILURE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_AUTH);
stream.write(TypeBytes.AUTH_MESSAGE_TYPE_AUTHFAILURE);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -128,7 +130,6 @@ public class CharacterMessage extends NetworkMessage {
*/
public static CharacterMessage constructRequestCharacterListMessage(){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.REQUESTCHARACTERLIST);
rVal.serialize();
return rVal;
}
@ -171,7 +172,6 @@ public class CharacterMessage extends NetworkMessage {
public static CharacterMessage constructResponseCharacterListMessage(String data){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSECHARACTERLIST);
rVal.setdata(data);
rVal.serialize();
return rVal;
}
@ -214,7 +214,6 @@ public class CharacterMessage extends NetworkMessage {
public static CharacterMessage constructRequestCreateCharacterMessage(String data){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.REQUESTCREATECHARACTER);
rVal.setdata(data);
rVal.serialize();
return rVal;
}
@ -233,7 +232,6 @@ public class CharacterMessage extends NetworkMessage {
*/
public static CharacterMessage constructResponseCreateCharacterSuccessMessage(){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSECREATECHARACTERSUCCESS);
rVal.serialize();
return rVal;
}
@ -252,7 +250,6 @@ public class CharacterMessage extends NetworkMessage {
*/
public static CharacterMessage constructResponseCreateCharacterFailureMessage(){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSECREATECHARACTERFAILURE);
rVal.serialize();
return rVal;
}
@ -295,7 +292,6 @@ public class CharacterMessage extends NetworkMessage {
public static CharacterMessage constructRequestSpawnCharacterMessage(String data){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.REQUESTSPAWNCHARACTER);
rVal.setdata(data);
rVal.serialize();
return rVal;
}
@ -338,7 +334,6 @@ public class CharacterMessage extends NetworkMessage {
public static CharacterMessage constructResponseSpawnCharacterMessage(String data){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.RESPONSESPAWNCHARACTER);
rVal.setdata(data);
rVal.serialize();
return rVal;
}
@ -357,10 +352,10 @@ public class CharacterMessage extends NetworkMessage {
*/
public static CharacterMessage constructEditorSwapMessage(){
CharacterMessage rVal = new CharacterMessage(CharacterMessageType.EDITORSWAP);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -458,4 +453,54 @@ public class CharacterMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case REQUESTCHARACTERLIST:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTCHARACTERLIST);
break;
case RESPONSECHARACTERLIST:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECHARACTERLIST);
ByteStreamUtils.writeString(stream, data);
break;
case REQUESTCREATECHARACTER:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTCREATECHARACTER);
ByteStreamUtils.writeString(stream, data);
break;
case RESPONSECREATECHARACTERSUCCESS:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECREATECHARACTERSUCCESS);
break;
case RESPONSECREATECHARACTERFAILURE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSECREATECHARACTERFAILURE);
break;
case REQUESTSPAWNCHARACTER:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_REQUESTSPAWNCHARACTER);
ByteStreamUtils.writeString(stream, data);
break;
case RESPONSESPAWNCHARACTER:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_RESPONSESPAWNCHARACTER);
ByteStreamUtils.writeString(stream, data);
break;
case EDITORSWAP:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_CHARACTER);
stream.write(TypeBytes.CHARACTER_MESSAGE_TYPE_EDITORSWAP);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -325,10 +327,10 @@ public class CombatMessage extends NetworkMessage {
rVal.setpositionX(positionX);
rVal.setpositionY(positionY);
rVal.setpositionZ(positionZ);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -385,4 +387,23 @@ public class CombatMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case SERVERREPORTHITBOXCOLLISION:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_COMBAT);
stream.write(TypeBytes.COMBAT_MESSAGE_TYPE_SERVERREPORTHITBOXCOLLISION);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeInt(stream, receiverEntityID);
ByteStreamUtils.writeLong(stream, time);
ByteStreamUtils.writeString(stream, hitboxType);
ByteStreamUtils.writeString(stream, hurtboxType);
ByteStreamUtils.writeDouble(stream, positionX);
ByteStreamUtils.writeDouble(stream, positionY);
ByteStreamUtils.writeDouble(stream, positionZ);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -747,7 +749,6 @@ public class EntityMessage extends NetworkMessage {
rVal.setrotationY(rotationY);
rVal.setrotationZ(rotationZ);
rVal.setrotationW(rotationW);
rVal.serialize();
return rVal;
}
@ -790,7 +791,6 @@ public class EntityMessage extends NetworkMessage {
rVal.setvelocity(velocity);
rVal.setpropertyValueInt(propertyValueInt);
rVal.settreeState(treeState);
rVal.serialize();
return rVal;
}
@ -829,7 +829,6 @@ public class EntityMessage extends NetworkMessage {
rVal.setrotationZ(rotationZ);
rVal.setvelocity(velocity);
rVal.settreeState(treeState);
rVal.serialize();
return rVal;
}
@ -848,7 +847,6 @@ public class EntityMessage extends NetworkMessage {
*/
public static EntityMessage constructstartAttackMessage(){
EntityMessage rVal = new EntityMessage(EntityMessageType.STARTATTACK);
rVal.serialize();
return rVal;
}
@ -871,7 +869,6 @@ public class EntityMessage extends NetworkMessage {
EntityMessage rVal = new EntityMessage(EntityMessageType.KILL);
rVal.settime(time);
rVal.setentityID(entityID);
rVal.serialize();
return rVal;
}
@ -892,7 +889,6 @@ public class EntityMessage extends NetworkMessage {
public static EntityMessage constructDestroyMessage(int entityID){
EntityMessage rVal = new EntityMessage(EntityMessageType.DESTROY);
rVal.setentityID(entityID);
rVal.serialize();
return rVal;
}
@ -919,7 +915,6 @@ public class EntityMessage extends NetworkMessage {
rVal.settime(time);
rVal.setpropertyType(propertyType);
rVal.setpropertyValue(propertyValue);
rVal.serialize();
return rVal;
}
@ -972,7 +967,6 @@ public class EntityMessage extends NetworkMessage {
rVal.setentityID(entityID);
rVal.setbone(bone);
rVal.settargetID(targetID);
rVal.serialize();
return rVal;
}
@ -1001,7 +995,6 @@ public class EntityMessage extends NetworkMessage {
rVal.setpropertyType(propertyType);
rVal.setyaw(yaw);
rVal.setpitch(pitch);
rVal.serialize();
return rVal;
}
@ -1062,7 +1055,6 @@ public class EntityMessage extends NetworkMessage {
rVal.setangForceX(angForceX);
rVal.setangForceY(angForceY);
rVal.setangForceZ(angForceZ);
rVal.serialize();
return rVal;
}
@ -1110,10 +1102,10 @@ public class EntityMessage extends NetworkMessage {
EntityMessage rVal = new EntityMessage(EntityMessageType.INTERACT);
rVal.setentityID(entityID);
rVal.setinteractionSignal(interactionSignal);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -1500,4 +1492,136 @@ public class EntityMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case CREATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_CREATE);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeInt(stream, entityCategory);
ByteStreamUtils.writeString(stream, entitySubtype);
ByteStreamUtils.writeString(stream, creatureTemplate);
ByteStreamUtils.writeDouble(stream, positionX);
ByteStreamUtils.writeDouble(stream, positionY);
ByteStreamUtils.writeDouble(stream, positionZ);
ByteStreamUtils.writeDouble(stream, rotationX);
ByteStreamUtils.writeDouble(stream, rotationY);
ByteStreamUtils.writeDouble(stream, rotationZ);
ByteStreamUtils.writeDouble(stream, rotationW);
break;
case MOVEUPDATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_MOVEUPDATE);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeLong(stream, time);
ByteStreamUtils.writeDouble(stream, positionX);
ByteStreamUtils.writeDouble(stream, positionY);
ByteStreamUtils.writeDouble(stream, positionZ);
ByteStreamUtils.writeDouble(stream, rotationX);
ByteStreamUtils.writeDouble(stream, rotationY);
ByteStreamUtils.writeDouble(stream, rotationZ);
ByteStreamUtils.writeDouble(stream, rotationW);
ByteStreamUtils.writeDouble(stream, velocity);
ByteStreamUtils.writeInt(stream, propertyValueInt);
ByteStreamUtils.writeInt(stream, treeState);
break;
case ATTACKUPDATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_ATTACKUPDATE);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeLong(stream, time);
ByteStreamUtils.writeDouble(stream, positionX);
ByteStreamUtils.writeDouble(stream, positionY);
ByteStreamUtils.writeDouble(stream, positionZ);
ByteStreamUtils.writeDouble(stream, rotationX);
ByteStreamUtils.writeDouble(stream, rotationY);
ByteStreamUtils.writeDouble(stream, rotationZ);
ByteStreamUtils.writeDouble(stream, velocity);
ByteStreamUtils.writeInt(stream, treeState);
break;
case STARTATTACK:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_STARTATTACK);
break;
case KILL:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_KILL);
ByteStreamUtils.writeLong(stream, time);
ByteStreamUtils.writeInt(stream, entityID);
break;
case DESTROY:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_DESTROY);
ByteStreamUtils.writeInt(stream, entityID);
break;
case SETPROPERTY:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_SETPROPERTY);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeLong(stream, time);
ByteStreamUtils.writeInt(stream, propertyType);
ByteStreamUtils.writeInt(stream, propertyValue);
break;
case ATTACHENTITYTOENTITY:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_ATTACHENTITYTOENTITY);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeString(stream, bone);
ByteStreamUtils.writeInt(stream, targetID);
break;
case UPDATEENTITYVIEWDIR:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_UPDATEENTITYVIEWDIR);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeLong(stream, time);
ByteStreamUtils.writeInt(stream, propertyType);
ByteStreamUtils.writeDouble(stream, yaw);
ByteStreamUtils.writeDouble(stream, pitch);
break;
case SYNCPHYSICS:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_SYNCPHYSICS);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeLong(stream, time);
ByteStreamUtils.writeDouble(stream, positionX);
ByteStreamUtils.writeDouble(stream, positionY);
ByteStreamUtils.writeDouble(stream, positionZ);
ByteStreamUtils.writeDouble(stream, rotationX);
ByteStreamUtils.writeDouble(stream, rotationY);
ByteStreamUtils.writeDouble(stream, rotationZ);
ByteStreamUtils.writeDouble(stream, rotationW);
ByteStreamUtils.writeDouble(stream, linVelX);
ByteStreamUtils.writeDouble(stream, linVelY);
ByteStreamUtils.writeDouble(stream, linVelZ);
ByteStreamUtils.writeDouble(stream, angVelX);
ByteStreamUtils.writeDouble(stream, angVelY);
ByteStreamUtils.writeDouble(stream, angVelZ);
ByteStreamUtils.writeDouble(stream, linForceX);
ByteStreamUtils.writeDouble(stream, linForceY);
ByteStreamUtils.writeDouble(stream, linForceZ);
ByteStreamUtils.writeDouble(stream, angForceX);
ByteStreamUtils.writeDouble(stream, angForceY);
ByteStreamUtils.writeDouble(stream, angForceZ);
break;
case INTERACT:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_ENTITY);
stream.write(TypeBytes.ENTITY_MESSAGE_TYPE_INTERACT);
ByteStreamUtils.writeInt(stream, entityID);
ByteStreamUtils.writeString(stream, interactionSignal);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -430,7 +432,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.settargetEntId(targetEntId);
rVal.setitemEntId(itemEntId);
rVal.setitemTemplate(itemTemplate);
rVal.serialize();
return rVal;
}
@ -451,7 +452,6 @@ public class InventoryMessage extends NetworkMessage {
public static InventoryMessage constructremoveItemFromInventoryMessage(int entityId){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.REMOVEITEMFROMINVENTORY);
rVal.setentityId(entityId);
rVal.serialize();
return rVal;
}
@ -499,7 +499,6 @@ public class InventoryMessage extends NetworkMessage {
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTEQUIPITEM);
rVal.setequipPointId(equipPointId);
rVal.setentityId(entityId);
rVal.serialize();
return rVal;
}
@ -552,7 +551,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.setentityId(entityId);
rVal.setcontainerType(containerType);
rVal.setequipPointId(equipPointId);
rVal.serialize();
return rVal;
}
@ -625,7 +623,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.setequipPointId(equipPointId);
rVal.setentityId(entityId);
rVal.setitemTemplate(itemTemplate);
rVal.serialize();
return rVal;
}
@ -678,7 +675,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.setequipperId(equipperId);
rVal.setcontainerType(containerType);
rVal.setequipPointId(equipPointId);
rVal.serialize();
return rVal;
}
@ -721,7 +717,6 @@ public class InventoryMessage extends NetworkMessage {
public static InventoryMessage constructclientRequestUnequipItemMessage(String equipPointId){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTUNEQUIPITEM);
rVal.setequipPointId(equipPointId);
rVal.serialize();
return rVal;
}
@ -779,7 +774,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.setcontainerType(containerType);
rVal.setequipPointId(equipPointId);
rVal.setitemEntId(itemEntId);
rVal.serialize();
return rVal;
}
@ -852,7 +846,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.setitemTemplate(itemTemplate);
rVal.setcontainerType(containerType);
rVal.setequipPointId(equipPointId);
rVal.serialize();
return rVal;
}
@ -873,7 +866,6 @@ public class InventoryMessage extends NetworkMessage {
public static InventoryMessage constructclientRequestWatchInventoryMessage(int targetEntId){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTWATCHINVENTORY);
rVal.settargetEntId(targetEntId);
rVal.serialize();
return rVal;
}
@ -894,7 +886,6 @@ public class InventoryMessage extends NetworkMessage {
public static InventoryMessage constructclientRequestUnwatchInventoryMessage(int targetEntId){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTUNWATCHINVENTORY);
rVal.settargetEntId(targetEntId);
rVal.serialize();
return rVal;
}
@ -917,7 +908,6 @@ public class InventoryMessage extends NetworkMessage {
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTADDTOOLBAR);
rVal.setentityId(entityId);
rVal.settoolbarId(toolbarId);
rVal.serialize();
return rVal;
}
@ -938,7 +928,6 @@ public class InventoryMessage extends NetworkMessage {
public static InventoryMessage constructclientRequestAddNaturalMessage(int entityId){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTREQUESTADDNATURAL);
rVal.setentityId(entityId);
rVal.serialize();
return rVal;
}
@ -959,7 +948,6 @@ public class InventoryMessage extends NetworkMessage {
public static InventoryMessage constructclientUpdateToolbarMessage(int toolbarId){
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.CLIENTUPDATETOOLBAR);
rVal.settoolbarId(toolbarId);
rVal.serialize();
return rVal;
}
@ -1027,7 +1015,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.setviewTargetX(viewTargetX);
rVal.setviewTargetY(viewTargetY);
rVal.setviewTargetZ(viewTargetZ);
rVal.serialize();
return rVal;
}
@ -1052,7 +1039,6 @@ public class InventoryMessage extends NetworkMessage {
rVal.setentityId(entityId);
rVal.setstationId(stationId);
rVal.setrecipeId(recipeId);
rVal.serialize();
return rVal;
}
@ -1075,10 +1061,10 @@ public class InventoryMessage extends NetworkMessage {
InventoryMessage rVal = new InventoryMessage(InventoryMessageType.SERVERUPDATEITEMCHARGES);
rVal.setentityId(entityId);
rVal.setcharges(charges);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -1427,4 +1413,139 @@ public class InventoryMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case ADDITEMTOINVENTORY:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_ADDITEMTOINVENTORY);
ByteStreamUtils.writeInt(stream, targetEntId);
ByteStreamUtils.writeInt(stream, itemEntId);
ByteStreamUtils.writeString(stream, itemTemplate);
break;
case REMOVEITEMFROMINVENTORY:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_REMOVEITEMFROMINVENTORY);
ByteStreamUtils.writeInt(stream, entityId);
break;
case CLIENTREQUESTEQUIPITEM:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTEQUIPITEM);
ByteStreamUtils.writeString(stream, equipPointId);
ByteStreamUtils.writeInt(stream, entityId);
break;
case SERVERCOMMANDMOVEITEMCONTAINER:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDMOVEITEMCONTAINER);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, containerType);
ByteStreamUtils.writeString(stream, equipPointId);
break;
case SERVERCOMMANDEQUIPITEM:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDEQUIPITEM);
ByteStreamUtils.writeInt(stream, equipperId);
ByteStreamUtils.writeInt(stream, containerType);
ByteStreamUtils.writeString(stream, equipPointId);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeString(stream, itemTemplate);
break;
case SERVERCOMMANDUNEQUIPITEM:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDUNEQUIPITEM);
ByteStreamUtils.writeInt(stream, equipperId);
ByteStreamUtils.writeInt(stream, containerType);
ByteStreamUtils.writeString(stream, equipPointId);
break;
case CLIENTREQUESTUNEQUIPITEM:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTUNEQUIPITEM);
ByteStreamUtils.writeString(stream, equipPointId);
break;
case CLIENTREQUESTSTOREITEM:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTSTOREITEM);
ByteStreamUtils.writeInt(stream, targetEntId);
ByteStreamUtils.writeInt(stream, containerType);
ByteStreamUtils.writeString(stream, equipPointId);
ByteStreamUtils.writeInt(stream, itemEntId);
break;
case SERVERCOMMANDSTOREITEM:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERCOMMANDSTOREITEM);
ByteStreamUtils.writeInt(stream, targetEntId);
ByteStreamUtils.writeInt(stream, itemEntId);
ByteStreamUtils.writeString(stream, itemTemplate);
ByteStreamUtils.writeInt(stream, containerType);
ByteStreamUtils.writeString(stream, equipPointId);
break;
case CLIENTREQUESTWATCHINVENTORY:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTWATCHINVENTORY);
ByteStreamUtils.writeInt(stream, targetEntId);
break;
case CLIENTREQUESTUNWATCHINVENTORY:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTUNWATCHINVENTORY);
ByteStreamUtils.writeInt(stream, targetEntId);
break;
case CLIENTREQUESTADDTOOLBAR:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTADDTOOLBAR);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, toolbarId);
break;
case CLIENTREQUESTADDNATURAL:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTADDNATURAL);
ByteStreamUtils.writeInt(stream, entityId);
break;
case CLIENTUPDATETOOLBAR:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTUPDATETOOLBAR);
ByteStreamUtils.writeInt(stream, toolbarId);
break;
case CLIENTREQUESTPERFORMITEMACTION:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTPERFORMITEMACTION);
ByteStreamUtils.writeString(stream, equipPointId);
ByteStreamUtils.writeInt(stream, itemActionCode);
ByteStreamUtils.writeInt(stream, itemActionCodeState);
ByteStreamUtils.writeDouble(stream, viewTargetX);
ByteStreamUtils.writeDouble(stream, viewTargetY);
ByteStreamUtils.writeDouble(stream, viewTargetZ);
break;
case CLIENTREQUESTCRAFT:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_CLIENTREQUESTCRAFT);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, stationId);
ByteStreamUtils.writeInt(stream, recipeId);
break;
case SERVERUPDATEITEMCHARGES:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_INVENTORY);
stream.write(TypeBytes.INVENTORY_MESSAGE_TYPE_SERVERUPDATEITEMCHARGES);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, charges);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -98,7 +100,6 @@ public class LoreMessage extends NetworkMessage {
*/
public static LoreMessage constructRequestRacesMessage(){
LoreMessage rVal = new LoreMessage(LoreMessageType.REQUESTRACES);
rVal.serialize();
return rVal;
}
@ -141,10 +142,10 @@ public class LoreMessage extends NetworkMessage {
public static LoreMessage constructResponseRacesMessage(String data){
LoreMessage rVal = new LoreMessage(LoreMessageType.RESPONSERACES);
rVal.setdata(data);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -176,4 +177,21 @@ public class LoreMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case REQUESTRACES:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_LORE);
stream.write(TypeBytes.LORE_MESSAGE_TYPE_REQUESTRACES);
break;
case RESPONSERACES:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_LORE);
stream.write(TypeBytes.LORE_MESSAGE_TYPE_RESPONSERACES);
ByteStreamUtils.writeString(stream, data);
break;
}
}
}

View File

@ -2,6 +2,9 @@ package electrosphere.net.parser.net.message;
import io.github.studiorailgun.CircularByteBuffer;
import java.io.IOException;
import java.io.OutputStream;
/**
* A network message
*/
@ -511,6 +514,12 @@ public abstract class NetworkMessage {
}
return rVal;
}
/**
* Writes this message to the output stream
* @param stream The stream
*/
public abstract void write(OutputStream stream) throws IOException;
/**
* Checks if this message is serialized or not

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
public class PlayerMessage extends NetworkMessage {
@ -146,7 +148,6 @@ public class PlayerMessage extends NetworkMessage {
public static PlayerMessage constructSet_IDMessage(int playerID){
PlayerMessage rVal = new PlayerMessage(PlayerMessageType.SET_ID);
rVal.setplayerID(playerID);
rVal.serialize();
return rVal;
}
@ -171,10 +172,10 @@ public class PlayerMessage extends NetworkMessage {
rVal.setinitialDiscretePositionX(initialDiscretePositionX);
rVal.setinitialDiscretePositionY(initialDiscretePositionY);
rVal.setinitialDiscretePositionZ(initialDiscretePositionZ);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -213,4 +214,24 @@ public class PlayerMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case SET_ID:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_PLAYER);
stream.write(TypeBytes.PLAYER_MESSAGE_TYPE_SET_ID);
ByteStreamUtils.writeInt(stream, playerID);
break;
case SETINITIALDISCRETEPOSITION:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_PLAYER);
stream.write(TypeBytes.PLAYER_MESSAGE_TYPE_SETINITIALDISCRETEPOSITION);
ByteStreamUtils.writeInt(stream, initialDiscretePositionX);
ByteStreamUtils.writeInt(stream, initialDiscretePositionY);
ByteStreamUtils.writeInt(stream, initialDiscretePositionZ);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
public class ServerMessage extends NetworkMessage {
@ -90,7 +92,6 @@ public class ServerMessage extends NetworkMessage {
*/
public static ServerMessage constructPingMessage(){
ServerMessage rVal = new ServerMessage(ServerMessageType.PING);
rVal.serialize();
return rVal;
}
@ -109,7 +110,6 @@ public class ServerMessage extends NetworkMessage {
*/
public static ServerMessage constructPongMessage(){
ServerMessage rVal = new ServerMessage(ServerMessageType.PONG);
rVal.serialize();
return rVal;
}
@ -128,10 +128,10 @@ public class ServerMessage extends NetworkMessage {
*/
public static ServerMessage constructDisconnectMessage(){
ServerMessage rVal = new ServerMessage(ServerMessageType.DISCONNECT);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
switch(this.messageType){
@ -160,4 +160,25 @@ public class ServerMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case PING:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SERVER);
stream.write(TypeBytes.SERVER_MESSAGE_TYPE_PING);
break;
case PONG:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SERVER);
stream.write(TypeBytes.SERVER_MESSAGE_TYPE_PONG);
break;
case DISCONNECT:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SERVER);
stream.write(TypeBytes.SERVER_MESSAGE_TYPE_DISCONNECT);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -285,7 +287,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setbTreeId(bTreeId);
rVal.setfieldId(fieldId);
rVal.setbTreeValue(bTreeValue);
rVal.serialize();
return rVal;
}
@ -343,7 +344,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setbTreeId(bTreeId);
rVal.setfieldId(fieldId);
rVal.setstringValue(stringValue);
rVal.serialize();
return rVal;
}
@ -370,7 +370,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setbTreeId(bTreeId);
rVal.setfieldId(fieldId);
rVal.setintValue(intValue);
rVal.serialize();
return rVal;
}
@ -397,7 +396,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setbTreeId(bTreeId);
rVal.setfieldId(fieldId);
rVal.setlongValue(longValue);
rVal.serialize();
return rVal;
}
@ -424,7 +422,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setbTreeId(bTreeId);
rVal.setfieldId(fieldId);
rVal.setfloatValue(floatValue);
rVal.serialize();
return rVal;
}
@ -451,7 +448,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setbTreeId(bTreeId);
rVal.setfieldId(fieldId);
rVal.setdoubleValue(doubleValue);
rVal.serialize();
return rVal;
}
@ -476,7 +472,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setentityId(entityId);
rVal.setbTreeId(bTreeId);
rVal.setbTreeValue(bTreeValue);
rVal.serialize();
return rVal;
}
@ -503,7 +498,6 @@ public class SynchronizationMessage extends NetworkMessage {
rVal.setbTreeId(bTreeId);
rVal.setfieldId(fieldId);
rVal.setbTreeValue(bTreeValue);
rVal.serialize();
return rVal;
}
@ -526,7 +520,6 @@ public class SynchronizationMessage extends NetworkMessage {
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.ATTACHTREE);
rVal.setentityId(entityId);
rVal.setbTreeId(bTreeId);
rVal.serialize();
return rVal;
}
@ -549,7 +542,6 @@ public class SynchronizationMessage extends NetworkMessage {
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.DETATCHTREE);
rVal.setentityId(entityId);
rVal.setbTreeId(bTreeId);
rVal.serialize();
return rVal;
}
@ -592,10 +584,10 @@ public class SynchronizationMessage extends NetworkMessage {
public static SynchronizationMessage constructLoadSceneMessage(String stringValue){
SynchronizationMessage rVal = new SynchronizationMessage(SynchronizationMessageType.LOADSCENE);
rVal.setstringValue(stringValue);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -833,4 +825,101 @@ public class SynchronizationMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case UPDATECLIENTSTATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTSTATE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, fieldId);
ByteStreamUtils.writeInt(stream, bTreeValue);
break;
case UPDATECLIENTSTRINGSTATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTSTRINGSTATE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, fieldId);
ByteStreamUtils.writeString(stream, stringValue);
break;
case UPDATECLIENTINTSTATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTINTSTATE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, fieldId);
ByteStreamUtils.writeInt(stream, intValue);
break;
case UPDATECLIENTLONGSTATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTLONGSTATE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, fieldId);
ByteStreamUtils.writeLong(stream, longValue);
break;
case UPDATECLIENTFLOATSTATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTFLOATSTATE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, fieldId);
ByteStreamUtils.writeFloat(stream, floatValue);
break;
case UPDATECLIENTDOUBLESTATE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_UPDATECLIENTDOUBLESTATE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, fieldId);
ByteStreamUtils.writeDouble(stream, doubleValue);
break;
case CLIENTREQUESTBTREEACTION:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_CLIENTREQUESTBTREEACTION);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, bTreeValue);
break;
case SERVERNOTIFYBTREETRANSITION:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_SERVERNOTIFYBTREETRANSITION);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
ByteStreamUtils.writeInt(stream, fieldId);
ByteStreamUtils.writeInt(stream, bTreeValue);
break;
case ATTACHTREE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_ATTACHTREE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
break;
case DETATCHTREE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_DETATCHTREE);
ByteStreamUtils.writeInt(stream, entityId);
ByteStreamUtils.writeInt(stream, bTreeId);
break;
case LOADSCENE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_SYNCHRONIZATION);
stream.write(TypeBytes.SYNCHRONIZATION_MESSAGE_TYPE_LOADSCENE);
ByteStreamUtils.writeString(stream, stringValue);
break;
}
}
}

View File

@ -1,5 +1,7 @@
package electrosphere.net.parser.net.message;
import java.io.IOException;
import java.io.OutputStream;
import io.github.studiorailgun.CircularByteBuffer;
import electrosphere.net.parser.util.ByteStreamUtils;
import java.util.LinkedList;
@ -617,7 +619,6 @@ public class TerrainMessage extends NetworkMessage {
*/
public static TerrainMessage constructRequestMetadataMessage(){
TerrainMessage rVal = new TerrainMessage(TerrainMessageType.REQUESTMETADATA);
rVal.serialize();
return rVal;
}
@ -650,7 +651,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldMaxX(worldMaxX);
rVal.setworldMaxY(worldMaxY);
rVal.setworldMaxZ(worldMaxZ);
rVal.serialize();
return rVal;
}
@ -685,7 +685,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setvoxelZ(voxelZ);
rVal.setterrainWeight(terrainWeight);
rVal.setterrainValue(terrainValue);
rVal.serialize();
return rVal;
}
@ -720,7 +719,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setvoxelZ(voxelZ);
rVal.setterrainWeight(terrainWeight);
rVal.setterrainValue(terrainValue);
rVal.serialize();
return rVal;
}
@ -751,7 +749,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setvalue(value);
rVal.setterrainWeight(terrainWeight);
rVal.setterrainValue(terrainValue);
rVal.serialize();
return rVal;
}
@ -780,7 +777,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setrealLocationZ(realLocationZ);
rVal.setvalue(value);
rVal.setterrainWeight(terrainWeight);
rVal.serialize();
return rVal;
}
@ -805,7 +801,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setrealLocationX(realLocationX);
rVal.setrealLocationY(realLocationY);
rVal.setrealLocationZ(realLocationZ);
rVal.serialize();
return rVal;
}
@ -830,7 +825,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldX(worldX);
rVal.setworldY(worldY);
rVal.setworldZ(worldZ);
rVal.serialize();
return rVal;
}
@ -888,7 +882,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldY(worldY);
rVal.setworldZ(worldZ);
rVal.setchunkData(chunkData);
rVal.serialize();
return rVal;
}
@ -915,7 +908,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldY(worldY);
rVal.setworldZ(worldZ);
rVal.setchunkResolution(chunkResolution);
rVal.serialize();
return rVal;
}
@ -983,7 +975,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setchunkResolution(chunkResolution);
rVal.sethomogenousValue(homogenousValue);
rVal.setchunkData(chunkData);
rVal.serialize();
return rVal;
}
@ -1010,7 +1001,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldY(worldY);
rVal.setworldZ(worldZ);
rVal.setchunkResolution(chunkResolution);
rVal.serialize();
return rVal;
}
@ -1078,7 +1068,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setchunkResolution(chunkResolution);
rVal.sethomogenousValue(homogenousValue);
rVal.setchunkData(chunkData);
rVal.serialize();
return rVal;
}
@ -1113,7 +1102,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setvoxelZ(voxelZ);
rVal.setblockType(blockType);
rVal.setblockMetadata(blockMetadata);
rVal.serialize();
return rVal;
}
@ -1138,7 +1126,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldX(worldX);
rVal.setworldY(worldY);
rVal.setworldZ(worldZ);
rVal.serialize();
return rVal;
}
@ -1196,7 +1183,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldY(worldY);
rVal.setworldZ(worldZ);
rVal.setchunkData(chunkData);
rVal.serialize();
return rVal;
}
@ -1254,7 +1240,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setworldY(worldY);
rVal.setworldZ(worldZ);
rVal.setchunkData(chunkData);
rVal.serialize();
return rVal;
}
@ -1291,7 +1276,6 @@ public class TerrainMessage extends NetworkMessage {
rVal.setblockType(blockType);
rVal.setblockMetadata(blockMetadata);
rVal.setblockEditSize(blockEditSize);
rVal.serialize();
return rVal;
}
@ -1369,10 +1353,10 @@ public class TerrainMessage extends NetworkMessage {
rVal.setvoxelZ(voxelZ);
rVal.setblockRotation(blockRotation);
rVal.setfabPath(fabPath);
rVal.serialize();
return rVal;
}
@Deprecated
@Override
void serialize(){
byte[] intValues = new byte[8];
@ -1928,4 +1912,210 @@ public class TerrainMessage extends NetworkMessage {
serialized = true;
}
@Override
public void write(OutputStream stream) throws IOException {
switch(this.messageType){
case REQUESTMETADATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTMETADATA);
break;
case RESPONSEMETADATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_RESPONSEMETADATA);
ByteStreamUtils.writeInt(stream, worldSizeDiscrete);
ByteStreamUtils.writeInt(stream, worldMinX);
ByteStreamUtils.writeInt(stream, worldMinY);
ByteStreamUtils.writeInt(stream, worldMinZ);
ByteStreamUtils.writeInt(stream, worldMaxX);
ByteStreamUtils.writeInt(stream, worldMaxY);
ByteStreamUtils.writeInt(stream, worldMaxZ);
break;
case REQUESTEDITVOXEL:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTEDITVOXEL);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, voxelX);
ByteStreamUtils.writeInt(stream, voxelY);
ByteStreamUtils.writeInt(stream, voxelZ);
ByteStreamUtils.writeFloat(stream, terrainWeight);
ByteStreamUtils.writeInt(stream, terrainValue);
break;
case UPDATEVOXEL:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_UPDATEVOXEL);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, voxelX);
ByteStreamUtils.writeInt(stream, voxelY);
ByteStreamUtils.writeInt(stream, voxelZ);
ByteStreamUtils.writeFloat(stream, terrainWeight);
ByteStreamUtils.writeInt(stream, terrainValue);
break;
case REQUESTUSETERRAINPALETTE:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTUSETERRAINPALETTE);
ByteStreamUtils.writeDouble(stream, realLocationX);
ByteStreamUtils.writeDouble(stream, realLocationY);
ByteStreamUtils.writeDouble(stream, realLocationZ);
ByteStreamUtils.writeFloat(stream, value);
ByteStreamUtils.writeFloat(stream, terrainWeight);
ByteStreamUtils.writeInt(stream, terrainValue);
break;
case REQUESTDESTROYTERRAIN:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTDESTROYTERRAIN);
ByteStreamUtils.writeDouble(stream, realLocationX);
ByteStreamUtils.writeDouble(stream, realLocationY);
ByteStreamUtils.writeDouble(stream, realLocationZ);
ByteStreamUtils.writeFloat(stream, value);
ByteStreamUtils.writeFloat(stream, terrainWeight);
break;
case SPAWNPOSITION:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_SPAWNPOSITION);
ByteStreamUtils.writeDouble(stream, realLocationX);
ByteStreamUtils.writeDouble(stream, realLocationY);
ByteStreamUtils.writeDouble(stream, realLocationZ);
break;
case REQUESTCHUNKDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTCHUNKDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
break;
case SENDCHUNKDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_SENDCHUNKDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, chunkData.length);
stream.write(chunkData);
break;
case REQUESTREDUCEDCHUNKDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTREDUCEDCHUNKDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, chunkResolution);
break;
case SENDREDUCEDCHUNKDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_SENDREDUCEDCHUNKDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, chunkResolution);
ByteStreamUtils.writeInt(stream, homogenousValue);
ByteStreamUtils.writeInt(stream, chunkData.length);
stream.write(chunkData);
break;
case REQUESTREDUCEDBLOCKDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTREDUCEDBLOCKDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, chunkResolution);
break;
case SENDREDUCEDBLOCKDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_SENDREDUCEDBLOCKDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, chunkResolution);
ByteStreamUtils.writeInt(stream, homogenousValue);
ByteStreamUtils.writeInt(stream, chunkData.length);
stream.write(chunkData);
break;
case UPDATEBLOCK:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_UPDATEBLOCK);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, voxelX);
ByteStreamUtils.writeInt(stream, voxelY);
ByteStreamUtils.writeInt(stream, voxelZ);
ByteStreamUtils.writeInt(stream, blockType);
ByteStreamUtils.writeInt(stream, blockMetadata);
break;
case REQUESTFLUIDDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTFLUIDDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
break;
case SENDFLUIDDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_SENDFLUIDDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, chunkData.length);
stream.write(chunkData);
break;
case UPDATEFLUIDDATA:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_UPDATEFLUIDDATA);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, chunkData.length);
stream.write(chunkData);
break;
case REQUESTEDITBLOCK:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTEDITBLOCK);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, voxelX);
ByteStreamUtils.writeInt(stream, voxelY);
ByteStreamUtils.writeInt(stream, voxelZ);
ByteStreamUtils.writeInt(stream, blockType);
ByteStreamUtils.writeInt(stream, blockMetadata);
ByteStreamUtils.writeInt(stream, blockEditSize);
break;
case REQUESTPLACEFAB:
//message header
stream.write(TypeBytes.MESSAGE_TYPE_TERRAIN);
stream.write(TypeBytes.TERRAIN_MESSAGE_TYPE_REQUESTPLACEFAB);
ByteStreamUtils.writeInt(stream, worldX);
ByteStreamUtils.writeInt(stream, worldY);
ByteStreamUtils.writeInt(stream, worldZ);
ByteStreamUtils.writeInt(stream, voxelX);
ByteStreamUtils.writeInt(stream, voxelY);
ByteStreamUtils.writeInt(stream, voxelZ);
ByteStreamUtils.writeInt(stream, blockRotation);
ByteStreamUtils.writeString(stream, fabPath);
break;
}
}
}

View File

@ -115,7 +115,7 @@ public class NetworkParser {
public void pushMessagesOut() throws IOException {
for(NetworkMessage message : outgoingMessageQueue){
outgoingMessageQueue.remove(message);
outgoingStream.write(message.getRawBytes());
message.write(outgoingStream);
if(this.releaseOnSend){
this.pool.release(message);
}

View File

@ -2,6 +2,8 @@ package electrosphere.net.parser.util;
import io.github.studiorailgun.CircularByteBuffer;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.concurrent.Semaphore;
@ -290,5 +292,80 @@ public class ByteStreamUtils {
bufferLock.release();
return rVal;
}
public static void writeInt(OutputStream stream, int i) throws IOException {
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(4);
integerCompactor.putInt(i);
integerCompactor.position(0);
integerCompactor.limit(4);
stream.write(integerCompactor.get(0));
stream.write(integerCompactor.get(1));
stream.write(integerCompactor.get(2));
stream.write(integerCompactor.get(3));
bufferLock.release();
}
public static void writeFloat(OutputStream stream, float i) throws IOException {
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(4);
integerCompactor.putFloat(i);
integerCompactor.position(0);
integerCompactor.limit(4);
stream.write(integerCompactor.get(0));
stream.write(integerCompactor.get(1));
stream.write(integerCompactor.get(2));
stream.write(integerCompactor.get(3));
bufferLock.release();
}
public static void writeLong(OutputStream stream, long i) throws IOException {
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(8);
integerCompactor.putLong(i);
integerCompactor.position(0);
integerCompactor.limit(8);
stream.write(integerCompactor.get(0));
stream.write(integerCompactor.get(1));
stream.write(integerCompactor.get(2));
stream.write(integerCompactor.get(3));
stream.write(integerCompactor.get(4));
stream.write(integerCompactor.get(5));
stream.write(integerCompactor.get(6));
stream.write(integerCompactor.get(7));
bufferLock.release();
}
public static void writeString(OutputStream stream, String s) throws IOException {
int length = s.length();
writeInt(stream, length);
byte[] stringBytes = s.getBytes();
stream.write(stringBytes);
}
public static void writeDouble(OutputStream stream, double i) throws IOException {
bufferLock.acquireUninterruptibly();
integerCompactor.clear();
integerCompactor.position(0);
integerCompactor.limit(8);
integerCompactor.putDouble(i);
integerCompactor.position(0);
integerCompactor.limit(8);
stream.write(integerCompactor.get(0));
stream.write(integerCompactor.get(1));
stream.write(integerCompactor.get(2));
stream.write(integerCompactor.get(3));
stream.write(integerCompactor.get(4));
stream.write(integerCompactor.get(5));
stream.write(integerCompactor.get(6));
stream.write(integerCompactor.get(7));
bufferLock.release();
}
}