Sign in to follow this  
bdew

[BETA] 3D Stuff, AKA "Putting stuff on tables"

Recommended Posts

cPFkN6b.jpg

 

Info below is outdated. Read further in the thread for more detais. 

 

Downloads here: https://github.com/bdew-wurm/threedee/releases

 

Super unfinished, no prototype yet. Might or might not ever actually happen.

 

Right now it's just that one table, i turned it into a container and the first item inside will be shown on top.

In theory i can extend it to other items, but they need to be manually chosen, container-ified and the Z offset determined experimentally (since the server doesn't know anything about models it can't know how big a table actually is).

The item can't be pushed/pulled (will always be on center of the table), and for now can't be rotated (though i hope to remedy that).

Bigger tables maybe will get 3 slots for items, like left/right/center.

Edited by bdew
  • Like 24

Share this post


Link to post
Share on other sites

Very impressive!  Though the offset will need to be hardcoded, is there at least a way to get them automatically from the texture files?

Share this post


Link to post
Share on other sites

I have noticed in the game code a new item showed up in the features list around the time they began the new highways thing. It eludes to the possibility they Dev might even be addressing this issue. One could hope.

Share this post


Link to post
Share on other sites

Don't know if it is something you want to consider, but I just remembered way back at the beginning I was going to make a flying carpet. If you use an item model as a creature and adjust its seat position it rises off the ground (sadly when you mount it, you don't rise also and no way to drive it). However might be something useful in a strange way to make height setting for decorating?

Share this post


Link to post
Share on other sites

The way i'm doing it is just hooking the method that sends an item to the client, and once the table gets sent i'm also sending the item on top with a Z offset. It's pretty easy and non-hacky :P

 

I haven't really got time to work on this recently but my plans (if i ever get to it), is to add some kind of invisible "hook" item, with each item on top being placed inside the "hook" container. The hook will encode rotation and X/Y offset from the center in it's data field and that will be used when sending the attached items. Then i can hook the push/pull/rotate actions on attached items and have them modify the data in the hook instead.

 

Regarding creatures - yeah the player/camera offset from the ground is hardcoded in the client, so changing the seat height just moves the creature relative to that. That's why they had to make all ride-able champions smaller.

  • Like 1

Share this post


Link to post
Share on other sites

Interesting I have been able to increase creature size and the character move appropriately based on how big the creature was. The dragon issue is a matter of they got the y axis on one of the seats backwards. I was assuming the item thing was due to not having a mount point. Kind of like standing in some creatures. Not really understanding why I couldnt drive it though, eh well I gave up on that a long time ago :) Also with the camera offset from ground, turn into a rift ogre :) why that doesn't work with the valrei avatars I dunno.

Edited by Xyp

Share this post


Link to post
Share on other sites

Is this still in the works?  It would make the game so much nicer!  :-)

Share this post


Link to post
Share on other sites

Got a bit of time to work on this again and made a ton of progress.

 

image.png

 

First prototype is available here (put probably not ready to use on real servers): https://github.com/bdew-wurm/threedee/releases/tag/v0.1

 

What works so far:

  • Items can be placed on stuff, activate an item (in your inventory), right click a table, choose Place - this will place the item on top of the table.
  • Multiple items can be placed on a single table.
  • Items on tables can be pushed/pulled/rotated using the appropriate action or keybind and will maintain their position if the table is moved.
  • Items can be removed from tables normally (using take action or keybind).
  • Surfaces that can hold items can be specified in config file.

Stuff that still needs work:

  • Currently items can only be placed on top of "dining table". 
  • Permission and sanity checking when placing or removing items.
  • Tables that can hold items become containers that can be opened and you can see my "hook" items inside. Ultimately they shouldn't be player-visible.
  • Tables that are positioned on a slope don't work right. (This might be unfixable without client modification)
  • Some item models aren't "centered" in their own coordinate system and that causes some odd behavior, this mostly applies to weapons and tools. (This might be unfixable without client modification)

 

  • Like 8

Share this post


Link to post
Share on other sites

When I extracted this, I got a jar file in a folder, plus a config file, but no properties file.  Is this what it's supposed to be?

Share this post


Link to post
Share on other sites
12 minutes ago, Batta said:

When I extracted this, I got a jar file in a folder, plus a config file, but no properties file.  Is this what it's supposed to be?

 

There is a properties file in the zip...

 

What you should get:

 

mods/threedee/threedee.jar

mods/threedee.config

mods/threedee.properties

Share this post


Link to post
Share on other sites
On 12/7/2017 at 2:00 AM, bdew said:

 

There is a properties file in the zip...

 

What you should get:

 

mods/threedee/threedee.jar

mods/threedee.config

mods/threedee.properties

 

Hmm.  I guess I'll delete and re-download, and see if I get the properties file this time.

 

UPDATE:  Yes, re-downloading it fixed my issue. I guess it got interrupted during the original download.  :-)

Edited by Batta

Share this post


Link to post
Share on other sites

Okay, I made a large dining table, and was able to open it and place items inside. I put in a twisted horn, bouquet of flowers, and a lantern, but none of them is showing up on top of the table. Also, I'm not seeing any sort of "hook" items inside when I open the table.  Table QL is 56.

 

Am I missing some detail about how this works?

 

4807C5E2C06AC43D067A97063EB586A19380FCC7

Edited by Batta

Share this post


Link to post
Share on other sites
On 12/6/2017 at 5:23 PM, bdew said:

activate an item (in your inventory), right click a table, choose Place - this will place the item on top of the table

 

Share this post


Link to post
Share on other sites
11 hours ago, bdew said:

 

OH, okay.  Thanks again!

 

EDIT - It works great now.  :-)

 

I'd love to see the table container be lockable, if that's a possibility, so that we can determine who can take things off the table. It would be really handy to be able to leave items for each other on top of a table! 

 

Edited by Batta

Share this post


Link to post
Share on other sites

The container will not be accessible normally in the final version. i'm not 100% decided on how permissions to take will work yet but i'll try to make it something sensible.

Share this post


Link to post
Share on other sites
4 hours ago, DiWorm said:

Hehehe, I can put Table on Table :D 

Lol, I'm going to try that while we're still able.  :-)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this