MirceaKitsune [Wed, 7 Nov 2012 16:42:38 +0000 (18:42 +0200)]
Update attachments at the ending of the addToScene function for parents. And with this... *drum roll* Client-side attachments are at last functional and stick visibly.
Fix the last segmentation fault (apparently). So far attachments seem to be fully functional, although removing the parent causes children to go to origin 0,0,0 and possibly still cause such a fault (though this should already be addressed)
Fix a bug in falling code where entities get stuck
Also check if the parent has been removed server-side, and detach the child if so. Fixes children going to origin 0,0,0 when their parent is removed.
Unset all attachment properties when permanently detaching (on both the client and server). Also store less data we don't need
Create a separate function for detaching, and also update lua api documentation
When a child is detached, update its position from the server to clients. This WILL cause it to get positioned slightly differently client side, as the server attachment system only copies parent origin and knows not about mesh / bone transformation. This prevents different clients seeing the object detached in different spots which is most correct
Update the position of attached players to clients. An attached player will see himself move, but this is currently VERY ugly and laggy as it is done by the server (it probably must stay this way too)
Use a different approach for locally attached players. This allows for smooth positio transitions to work, as well at the player turning around freely. Still buggy however
MirceaKitsune [Sun, 4 Nov 2012 21:54:50 +0000 (23:54 +0200)]
Send animations, bone overrides and attachments in entity initialization. Clients no longer have to be near an object when an animation or attachment is set to see the changes, and newly connected clients (or a client that simply renders the object for the first time) will get all of those settings. Therefore, the lua script no longer needs to run every X seconds either, just once per entity.
Finish fixing the material color code. But it won't work until MineTest has dynamic lighting... another day another feature.
Extra checks for the bone positioning / rotation code
Many checks and consistency improvements to the client attachment code
Make a separate function for checking if a client object is attached. A more in-depth change will be needed here to fix reading of invalid pointers
Use a different method of fetching the parent. Fixes the mass segmentation faults when rendering an attachment (some still happen though)
Major change to how attachments are handled. Fix the last segmentaton fault, which was due to the parent becoming invalid while being refreshed / removed which would bause the child to remain attached to nothing. Parents remove their children when being deleted themselves and add them back when re-added. Attachments are stored inside a 2D a vector which easily allows both a child to find their parent and a parent to find its children.
Remove attachment list entry when an object is being permanently removed. Also avoid duplicate entries in this list when re-attaching the same object
The "big code comments" can now go away. Client attachments almost work properly, and I know what else needs to be done
MirceaKitsune [Sun, 4 Nov 2012 12:33:30 +0000 (14:33 +0200)]
Enable client-side attachments, add detachment code
MirceaKitsune [Sun, 28 Oct 2012 15:07:11 +0000 (17:07 +0200)]
Fix some remaining issues with attachments, now they work. Tested with object->player and player->player attachments
MirceaKitsune [Sat, 27 Oct 2012 12:14:24 +0000 (15:14 +0300)]
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.
MirceaKitsune [Fri, 26 Oct 2012 22:49:01 +0000 (01:49 +0300)]
Framework for the attachment system, new object property which allows changing the color and alpha of mesh materials
New object property which allows changing the color and alpha of mesh materials. Due to the current lighting systems it doesn't work yet, but the full implementation is there
Framework for the attachment system, with no actual functionality yet
Send bone and player object to the setAttachment function in content_sao.cpp, but we need a way to translate it there and send it to the client
I will also want position and rotation offsets to be possible to apply to attachments
Network object ID from server to client. This will be used to identify the parent client-side and know what to attach to
MirceaKitsune [Fri, 26 Oct 2012 15:03:24 +0000 (18:03 +0300)]
Get the new animation framework properly working
Store start and end frames as v2f
Also move bone animations to their own function instead of object properties
MirceaKitsune [Fri, 26 Oct 2012 08:46:46 +0000 (11:46 +0300)]
Joint positioning and rotation code, and fix a problem related to their lua API
Attempt to move the animation system to a more correct implementation, rather than using object properties. Incomplete and breaks functionality
MirceaKitsune [Thu, 25 Oct 2012 20:29:07 +0000 (23:29 +0300)]
Allow the LUA API to set animations to meshes as well as the animation speed. Also update animations only when needed.
Support for animation blending, though for some reason it doesn't work.
Don't enable animation transitions by default for many reaosons
Object property to store individual bone positions. LUA can specify a bone name followed by a bone position. No functionality yet. Bone rotation to be added in the following commit
Same system for bone rotation, plus a few other things I missed
MirceaKitsune [Wed, 24 Oct 2012 19:10:05 +0000 (22:10 +0300)]
Get the mesh working through the memory cache properly. Most credit goes to celeron55 for the help on this code
Get the texture from memory as well
Add .x to the list of supported formats
Update LUA API documentation
MirceaKitsune [Tue, 23 Oct 2012 21:11:24 +0000 (00:11 +0300)]
Add a subfolder for models and transfer models from server to client
(obj, md2 and md3 are currently allowed)
Get rid of the texture string and use the existing textures array. Segmented meshes have multiple materials, and this will allow us to texture each. Do not switch to this commit yet!
If a texture string is left empty in LUA, don't modify that material. Useful so a script can change specific textures without affecting others
MirceaKitsune [Tue, 23 Oct 2012 20:57:36 +0000 (23:57 +0300)]
Fix material properties and allow lighting. Models should now be affected by light instead of being black
MirceaKitsune [Tue, 23 Oct 2012 17:03:06 +0000 (20:03 +0300)]
Properly read the mesh from LUA.
Players can now be set to meshes using the following test script:
function switch_player_visual()
prop = {
mesh="player.obj",
texture="player.png",
visual="mesh",
}
for _, obj in pairs(minetest.get_connected_players()) do
obj:set_properties(prop)
end
minetest.after(1.0, switch_player_visual)
end
minetest.after(1.0, switch_player_visual)
MirceaKitsune [Mon, 22 Oct 2012 21:03:14 +0000 (00:03 +0300)]
3D model support for players using Irrlicht. Also ready the basis for mesh support on nodes / items via LUA (to be done). Supports any mesh format compatible with Irrlicht, but animations are not set up yet.
Perttu Ahola [Sun, 25 Nov 2012 14:39:07 +0000 (16:39 +0200)]
Revert "Don't leak textures all over the place"
This causes textures to be deleted before they are no longer accessed,
resulting in a segmentation fault. This needs to be rewritten in such a way
that textures are deleted when the client disconnects from a server.
This reverts commit
41c00e87d42580881d8c7001f39014814e3b55f2.
Ilya Zhuravlev [Thu, 22 Nov 2012 20:36:52 +0000 (00:36 +0400)]
Fix trees growing into any type of node
xyzz [Thu, 22 Nov 2012 17:13:18 +0000 (09:13 -0800)]
Merge pull request #268 from khonkhortisan/image_button
Allow transparent image_buttons
Anthony [Sun, 18 Nov 2012 23:18:45 +0000 (18:18 -0500)]
Fix server crash on /clearpassword
According to #253, using `/clearpassword` without an argument causes the server to crash from an assertion failure. I've resubmitted matttpt's patch as a pull request to aid in merging.
xyzz [Mon, 12 Nov 2012 19:50:58 +0000 (11:50 -0800)]
Merge pull request #284 from RealBadAngel/master
Adding backgrounds to formspec
PilzAdam [Sat, 10 Nov 2012 18:33:16 +0000 (10:33 -0800)]
Merge pull request #286 from PilzAdam/digging_animation
Add jordan4ibanez' better digging animation
PilzAdam [Sat, 10 Nov 2012 16:36:56 +0000 (17:36 +0100)]
Add jordan4ibanez' better digging animation
Perttu Ahola [Fri, 9 Nov 2012 18:14:04 +0000 (20:14 +0200)]
Swap out pixel-perfect nyan cat by request of Chris Torres
Vanessa Ezekowitz [Sun, 4 Nov 2012 15:58:44 +0000 (10:58 -0500)]
added GUI checkboxes in Settings tab for the aforementioned video settings.
Vanessa Ezekowitz [Sun, 4 Nov 2012 15:51:40 +0000 (10:51 -0500)]
Added video settings filter options via config file - second try :-)
Set one or more of these in the config to turn the related option on:
mip_map = 1
anisotropic_filter = 1
bilinear_filter = 1
trilinear_filter = 1
Perttu Ahola [Thu, 8 Nov 2012 18:43:32 +0000 (20:43 +0200)]
Fix unnecessary network protocol incompatibility in ContentFeatures
RealBadAngel [Thu, 8 Nov 2012 18:22:37 +0000 (19:22 +0100)]
Adding background to Formspec
PilzAdam [Mon, 5 Nov 2012 16:12:12 +0000 (08:12 -0800)]
Merge pull request #279 from RealBadAngel/patch-2
Formspec: Draw images before inventories. Allows to use image as backgro...
RealBadAngel [Sun, 4 Nov 2012 20:18:28 +0000 (21:18 +0100)]
Formspec: Draw images before inventories. Allows to use image as background.
PilzAdam [Sat, 3 Nov 2012 22:14:14 +0000 (15:14 -0700)]
Merge pull request #274 from PilzAdam/falling
Fix a bug in falling code where entities get stuck
PilzAdam [Sat, 3 Nov 2012 19:34:44 +0000 (12:34 -0700)]
Merge pull request #243 from xyzz/liquid_renewable
Add liquid_renewable property, allow non-renewable liquids.
PilzAdam [Sat, 3 Nov 2012 17:36:46 +0000 (10:36 -0700)]
Merge pull request #273 from PilzAdam/air
Make air and ignore drop nothing
PilzAdam [Sat, 3 Nov 2012 17:29:01 +0000 (18:29 +0100)]
Make air and ignore drop nothing
PilzAdam [Sat, 3 Nov 2012 17:07:49 +0000 (18:07 +0100)]
Fix a bug in falling code where entities get stuck
Kahrl [Thu, 2 Feb 2012 03:11:56 +0000 (04:11 +0100)]
Don't leak textures all over the place
Perttu Ahola [Fri, 2 Nov 2012 16:05:42 +0000 (18:05 +0200)]
Fix flowing liquid animation direction calculation
PilzAdam [Fri, 2 Nov 2012 15:35:30 +0000 (08:35 -0700)]
Merge pull request #272 from PilzAdam/pow
Replace pow() with multiplikation to improve speed
PilzAdam [Fri, 2 Nov 2012 15:24:57 +0000 (16:24 +0100)]
Replace pow() with multiplikation to improve speed
PilzAdam [Thu, 1 Nov 2012 18:00:57 +0000 (11:00 -0700)]
Merge pull request #270 from PilzAdam/master
Move falling to builtin
PilzAdam [Thu, 1 Nov 2012 17:49:12 +0000 (18:49 +0100)]
Add functions to the default mod of minimal game to support old code
PilzAdam [Thu, 1 Nov 2012 11:33:24 +0000 (12:33 +0100)]
Add falling_node to special groups in lua-api.txt
PilzAdam [Wed, 31 Oct 2012 18:08:00 +0000 (19:08 +0100)]
Remove a useless comment
PilzAdam [Wed, 31 Oct 2012 18:06:11 +0000 (19:06 +0100)]
Move falling to builtin
Kyle [Thu, 18 Oct 2012 19:06:47 +0000 (12:06 -0700)]
Allow transparent image_buttons
Perttu Ahola [Sun, 9 Sep 2012 18:54:11 +0000 (21:54 +0300)]
Add nodedef.on_blast() to lua_api.txt in order to support chained explosions of any explosives
Perttu Ahola [Sun, 9 Sep 2012 18:29:44 +0000 (21:29 +0300)]
Statically store always_collect field of __builtin:item
Perttu Ahola [Sun, 9 Sep 2012 14:12:29 +0000 (17:12 +0300)]
Add dtime_s to entity activation
Perttu Ahola [Sun, 9 Sep 2012 11:18:14 +0000 (14:18 +0300)]
Fix ServerActiveObject stuff
Perttu Ahola [Sun, 9 Sep 2012 10:26:52 +0000 (13:26 +0300)]
Fix wielditem entity drawtype brightness control
Perttu Ahola [Sun, 9 Sep 2012 09:05:38 +0000 (12:05 +0300)]
Fix ObjectRef:punch()
Ilya Zhuravlev [Fri, 7 Sep 2012 16:48:12 +0000 (20:48 +0400)]
Add liquid_renewable property.
Perttu Ahola [Tue, 4 Sep 2012 22:31:06 +0000 (01:31 +0300)]
Version 0.4.3
Matthew I [Thu, 30 Aug 2012 19:41:48 +0000 (15:41 -0400)]
Prevent world creation if the world already exists
Matthew I [Sun, 2 Sep 2012 20:51:17 +0000 (16:51 -0400)]
Enforce stricter world names using a blacklist
Blacklisted characters are: / \
Perttu Ahola [Tue, 4 Sep 2012 21:55:19 +0000 (00:55 +0300)]
Add aux1_descends to key change menu
Perttu Ahola [Tue, 4 Sep 2012 21:39:43 +0000 (00:39 +0300)]
Version 0.4.3-rc0; increase PROTOCOL_VERSION due to backwards-incompatible InventoryList width field
Perttu Ahola [Tue, 4 Sep 2012 20:02:56 +0000 (23:02 +0300)]
Remove "Unknown inventory identifier" deserialization errors, because they can break forward compatibility
Perttu Ahola [Tue, 4 Sep 2012 06:48:26 +0000 (09:48 +0300)]
Reorganize ClientMap rendering code for a bit more performance
- Don't select blocks for drawing in every frame
- Sort meshbuffers by material before drawing
Perttu Ahola [Mon, 3 Sep 2012 20:31:51 +0000 (23:31 +0300)]
Fix shift-descend to ladders from a floor
Perttu Ahola [Sun, 2 Sep 2012 20:01:40 +0000 (23:01 +0300)]
Fix moving stuff into a mismatched stack in a "infinite" inventory
Perttu Ahola [Sun, 2 Sep 2012 19:51:38 +0000 (22:51 +0300)]
Make inventory GUI do sane things when server-side inventory acts unusually
Perttu Ahola [Sun, 2 Sep 2012 17:13:11 +0000 (20:13 +0300)]
Fix bug in moving a larger sized stack in inventory on top of another
- You have 2 stacks: a with x items and b with y<x items
- Take a with your mouse and place it on b
- Whole stack a moves to b
- (y * 2 - x) items move from b to a
- (x - y) items are left to the mouse cursor
Perttu Ahola [Sun, 2 Sep 2012 16:38:44 +0000 (19:38 +0300)]
Add overridable function for handling dropped items from nodes
Perttu Ahola [Sat, 1 Sep 2012 15:32:15 +0000 (18:32 +0300)]
Fix github issue #224
Thomas Lauro [Wed, 25 Jul 2012 13:56:09 +0000 (15:56 +0200)]
Fix issue with openal mac os x compile
Perttu Ahola [Sat, 1 Sep 2012 15:02:29 +0000 (18:02 +0300)]
Fix GUIKeyChangeMenu so that '/' can be inserted on a finnish keyboard
Thomas Lauro [Thu, 26 Jul 2012 07:49:00 +0000 (09:49 +0200)]
A bunch of GUIKeyChangeMenu fixes
- Display message when associating a key already in use
- Fix issue for not beeing able to assign space to an action
- Cleaning up
- Make it build (by celeron55)
Perttu Ahola [Sat, 1 Sep 2012 10:41:15 +0000 (13:41 +0300)]
Attempt to fix flying gravel and dirt
Sergey Gilfanov [Thu, 26 Jul 2012 18:52:05 +0000 (22:52 +0400)]
Smooth transition to the desert biome.
Perttu Ahola [Sat, 1 Sep 2012 10:21:52 +0000 (13:21 +0300)]
Fix the bouncy node related stuff a bit
Perttu Ahola [Sat, 1 Sep 2012 09:58:37 +0000 (12:58 +0300)]
Add bouncy node group
Perttu Ahola [Sat, 1 Sep 2012 09:07:27 +0000 (12:07 +0300)]
Add disable_jump and fall_damage_add_percent node groups
Ilya Zhuravlev [Sun, 19 Aug 2012 21:29:56 +0000 (01:29 +0400)]
Add InventoryList width property & allow custom crafting grids.
sfan5 [Sun, 19 Aug 2012 11:15:42 +0000 (13:15 +0200)]
Make shift the default descent control on ladders and when flying
"aux1_descends" setting switches to the old descend control.
Perttu Ahola [Sat, 1 Sep 2012 06:23:39 +0000 (09:23 +0300)]
Don't crash in "unexpected multibyte character"; just print it in log. Github #222
Perttu Ahola [Fri, 31 Aug 2012 15:06:47 +0000 (18:06 +0300)]
Use proper alpha blit in some more texture modifiers
Perttu Ahola [Fri, 31 Aug 2012 14:58:55 +0000 (17:58 +0300)]
Properly initialize baseimg for texture modifier [combine:WxH:X,Y=filename:X,Y=filename2
Matthew I [Sun, 29 Jul 2012 01:41:32 +0000 (21:41 -0400)]
Fix black display inside opaque water
Opaque water's solidness was being set to 2, like a normal node.
When you swim, it is treated like a solid block, and the display
goes black. Setting it to 1 like transparent water allows you to
see.
It looks somewhat awkward when you swim, look up, and see an opaque
wall of water (the surface), but there isn't much that can be done
about it. If you made the water transparent so it looked good,
it would defeat the purpose :) .
Perttu Ahola [Sun, 19 Aug 2012 07:55:04 +0000 (10:55 +0300)]
Fix github issue #213: Dropping unknown items crashes the game
The items will now just disappear when dropped.
Perttu Ahola [Sun, 12 Aug 2012 14:11:23 +0000 (17:11 +0300)]
Fix crash when furnace is full (minimal game)
Matthew I [Sun, 22 Jul 2012 13:42:43 +0000 (09:42 -0400)]
Move chat commands to Lua and remove servercommand.{cpp,h}
Commands moved:
/me
/status
/time
/shutdown
/ban
/clearobjects
Matthew I [Wed, 1 Aug 2012 21:17:52 +0000 (17:17 -0400)]
Add ban management routines to Lua API
Those functions are:
* minetest.get_ban_list()
* minetest.get_ban_description(ip_or_name)
* minetest.ban_player(name)
* minetest.unban_player_or_ip(ip_or_name)
Matthew I [Sat, 28 Jul 2012 19:27:31 +0000 (15:27 -0400)]
Extend Lua API in order to implement chat commands
minetest.get_server_status()
minetest.request_shutdown()
EnvRef:clear_objects()
Matthew I [Sat, 28 Jul 2012 19:49:23 +0000 (15:49 -0400)]
Remove trailing comma after player list in server status string
Matthew I [Mon, 30 Jul 2012 13:45:26 +0000 (09:45 -0400)]
Allow digging of unknown nodes
This allows the removal of nodes with unknown types.
get_item_callback() (C++) would fail if a node has an unknown type. Now it
will try using the callback from minetest.nodedef_default in this case.
Also, minetest.node_dig() (Lua) was altered to always allow digging when
the node definition is empty (i.e. unknown node).
Perttu Ahola [Sun, 12 Aug 2012 12:49:06 +0000 (15:49 +0300)]
Fix wrong amount of nodes being dropped from inventory
darkrose [Fri, 10 Aug 2012 02:34:02 +0000 (12:34 +1000)]
fix node timers so on_timer gets the correct position
Perttu Ahola [Sun, 12 Aug 2012 08:09:38 +0000 (11:09 +0300)]
Remove unwanted ! from ifs in inventory record-for-rollback code
Perttu Ahola [Sat, 28 Jul 2012 13:31:45 +0000 (16:31 +0300)]
Call this 0.4.2-rc1
Perttu Ahola [Sat, 28 Jul 2012 11:44:18 +0000 (14:44 +0300)]
Fix inventory segfault when rollback recording is disabled
Perttu Ahola [Sat, 28 Jul 2012 00:08:09 +0000 (03:08 +0300)]
Add enable_rollback_recording setting, defaulting to false
Perttu Ahola [Fri, 27 Jul 2012 16:03:15 +0000 (19:03 +0300)]
Handle max<min in LuaPseudoRandom::l_next()
Perttu Ahola [Fri, 27 Jul 2012 12:46:51 +0000 (15:46 +0300)]
Tweak rollback and liquids
Perttu Ahola [Fri, 27 Jul 2012 11:52:29 +0000 (14:52 +0300)]
Tweak rollback stuff
Perttu Ahola [Fri, 27 Jul 2012 10:54:14 +0000 (13:54 +0300)]
Increase automatic suspect guess timeframe
Perttu Ahola [Fri, 27 Jul 2012 10:45:49 +0000 (13:45 +0300)]
ABM and liquid overload skip
Perttu Ahola [Fri, 27 Jul 2012 10:43:25 +0000 (13:43 +0300)]
Fix server build (a missing header)
Perttu Ahola [Fri, 27 Jul 2012 10:24:28 +0000 (13:24 +0300)]
Make the rollback system VERY FUCKING GOD DAMN POWERFUL
Perttu Ahola [Thu, 26 Jul 2012 23:46:54 +0000 (02:46 +0300)]
Don't track liquids for rollback because of too much log
Perttu Ahola [Thu, 26 Jul 2012 23:37:04 +0000 (02:37 +0300)]
Properly rollback chat command triggered things
Perttu Ahola [Thu, 26 Jul 2012 19:06:45 +0000 (22:06 +0300)]
Experimental-ish rollback functionality