/* Minetest Copyright (C) 2013 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "genericobject.h" #include #include "util/serialize.h" std::string gob_cmd_set_properties(const ObjectProperties &prop) { std::ostringstream os(std::ios::binary); writeU8(os, GENERIC_CMD_SET_PROPERTIES); prop.serialize(os); return os.str(); } ObjectProperties gob_read_set_properties(std::istream &is) { ObjectProperties prop; prop.deSerialize(is); return prop; } std::string gob_cmd_update_position( v3f position, v3f velocity, v3f acceleration, v3f rotation, bool do_interpolate, bool is_movement_end, f32 update_interval ){ std::ostringstream os(std::ios::binary); // command writeU8(os, GENERIC_CMD_UPDATE_POSITION); // pos writeV3F32(os, position); // velocity writeV3F32(os, velocity); // acceleration writeV3F32(os, acceleration); // rotation writeV3F32(os, rotation); // do_interpolate writeU8(os, do_interpolate); // is_end_position (for interpolation) writeU8(os, is_movement_end); // update_interval (for interpolation) writeF32(os, update_interval); return os.str(); } std::string gob_cmd_set_texture_mod(const std::string &mod) { std::ostringstream os(std::ios::binary); // command writeU8(os, GENERIC_CMD_SET_TEXTURE_MOD); // parameters os<