summaryrefslogtreecommitdiff
path: root/src/genericobject.cpp
diff options
context:
space:
mode:
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>2012-10-27 15:14:24 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-11-25 18:14:15 +0200
commit948b5a8be7b13a346c873c157567a72b4e7e320a (patch)
treece5a770f27043ee1b4ec21e3730d959c559ce6fe /src/genericobject.cpp
parente42eeec8f626acbaa54ae31c10ca06c868c7931c (diff)
downloadminetest-948b5a8be7b13a346c873c157567a72b4e7e320a.tar.gz
minetest-948b5a8be7b13a346c873c157567a72b4e7e320a.tar.bz2
minetest-948b5a8be7b13a346c873c157567a72b4e7e320a.zip
Complete the attachment framework.
The child ID can now be checked against the parent ID in content_cao.cpp so the parent can be detected. Actual attachment code to come Divide attachment system between server attachments and client attachments, neither coded right now. As explained in the code comment: // Attachments need to be handled on both the server and client. // If we attach only on the server, models (which are client-side) // can't be read so we don't know the origin and orientation of bones. // If we attach only on the client, the real position of attachments is // not updated and you can't click them for example.
Diffstat (limited to 'src/genericobject.cpp')
-rw-r--r--src/genericobject.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/genericobject.cpp b/src/genericobject.cpp
index 482dbbc78..480c4209d 100644
--- a/src/genericobject.cpp
+++ b/src/genericobject.cpp
@@ -104,23 +104,25 @@ std::string gob_cmd_set_animations(v2f frames, float frame_speed, float frame_bl
return os.str();
}
-// Part of the attachment structure, not used yet!
-std::string gob_cmd_set_attachment() // <- parameters here
+std::string gob_cmd_set_bone_posrot(std::string bone, v3f position, v3f rotation)
{
std::ostringstream os(std::ios::binary);
// command
- writeU8(os, GENERIC_CMD_SET_ATTACHMENT);
+ writeU8(os, GENERIC_CMD_SET_BONE_POSROT);
// parameters
- // Parameters go here
+ os<<serializeString(bone);
+ writeV3F1000(os, position);
+ writeV3F1000(os, rotation);
return os.str();
}
-std::string gob_cmd_set_bone_posrot(std::string bone, v3f position, v3f rotation)
+std::string gob_cmd_set_attachment(int parent_id, std::string bone, v3f position, v3f rotation)
{
std::ostringstream os(std::ios::binary);
// command
- writeU8(os, GENERIC_CMD_SET_BONE_POSROT);
+ writeU8(os, GENERIC_CMD_SET_ATTACHMENT);
// parameters
+ writeS16(os, parent_id);
os<<serializeString(bone);
writeV3F1000(os, position);
writeV3F1000(os, rotation);