Some variation would be sweet. If you could manage to have “smaller” trees/saplings I wouldn’t need to manually resize them and therefore they could grow into “real” big trees, not just those little bonsai that they are.
Also, they do stay in place? That’s weird, I haven’t changed anything. In theory, they shouldn’t, but perhaps you were just lucky with the orientation.
As said before; I think your Egyptian conversion had wheat? We could do real wheat now, with all the growing stages (or at least, similar like in Minecraft) if you wanted to. It doesn’t have to be a tree, it can be any inanimate growing object you please.
Edit: Three hours and one broken heart later (@Geoffers747) that was the first part. To make it less boring, a quick skip list:
1:08: The whole system I use - git, SciTE and grep.pl
6:38: What’s to do with rp_diy_trees; what the current status is, what the growing_oak_tree entity is and what the rp_diy_trees:growable component does
13:59: Using the abusable; what effects there are currently and which one I could easily mess around with. Introduction of rp_test, a little bare-bone mod that I can use to hook into different stuff really quickly. Kind of uninteresting.
24:00: No effects to use; back to implementing the scale thing.
33:25: Oh. We can scale stuff?
(34:30: Woooaaah sheep.)
35:00: Begin of a beautiful three-hour adventure to hunt the oddness of render_info
37:00: It’s David. For real. At this point, I am severely confused. Some scaling testing.
45:00: It’s beginning to dawn.
48:00: The Berry Bush exploitation begins. The mystery begins to unravel.
50:00: Printing stuff happens
53:00: Moving on to RP timers: Research & Development. What Stonehearth uses and what RP will use and why I think RP’s system is prettier
56:30: Accidentally finding Calendar:set_timer.
1:01:00: Actually starting the work. Creating and testing the timer functions. Pretty basic lua and basic logic, nothing really Stonehearth related. Also, me horribly failing at maths.
1:39:00 - 1:47:00: I mute my microphone without re-enabling it. I swear I did talk though. During this time, I basically just implement the basic run function of a timer and think about how to handle it since modifying the table while iterating through it is a bad idea. I also talk a bit about how to prevent errors in timer functions, what happens when errors get into the gameloop and therefore the whole event system and show that by having the dancing queens.
1:47:00: Quick recap because I’ve noticed what went wrong. After that, back to timer developing.
1:55:00: Using timers with os.exit.
2:03:00: Messing around with stuff that’s behind the C index wall.
2:08:20: Messing around with decoda to waste more time.
2:15:00: A nice idea, but it didn’t work out.
2:17:00: Magic happens. I’m not satisfied because color change.
2:19:00 and later: Finding out the last mystery I guess.
2:32:00: Abandoning scaling for now and moving back to actually do something useful; implementing timers in rp_diy_trees.
2:55:00: Wrapping up.
So, what was done/planned/happened on that ToDo list that was partially visible at some points:
Quick demonstration of the setup
Find a neat effect
“Implementing” scale for each growth stage
Avoid duration in last entry causing an error
Implementing RP timers
Incorperate RP timers into rp_diy_trees
Find a workaround to scale entities
=> replace with different qb file, wait 2 ticks
Implement array behaviour for model_variants
resource_node handling
What I did find out is that render_info:set_scale actually does work… as long as you “enforce” it by setting a different model variant. The only requirement is that the other variant uses another file. I’d love to hear if the guys fixed this in the next version or if I should continue worrying about how to work around that too.
3 files? I only saw 2.
The mod rp_diy_trees.smod and RP WIP r2703.smod
Yes, I sure want to do wheat, but the trees are only a couple minutes work. Made an acorn too which can drop from the trees. stage 3 is just the small oak, but I repositioned it.
You need to download RP r2701, which consists of -rp.smod, zzz_rp.smod and rp.smod. Except that rp.smod needs to be replaced with the 2703 one (that you’ve already downloaded). It’s sadly a big mess but I need at least two addons…
Also, the saplings look really good! I think there’s still some jumping around involved, however. I’ve uploaded the updated versions (rp.smodrp_diy_trees.smod). You’ll still need zzz_rp and -rp from GitHub, however. The saplings are included, not fine-tuned (in terms of size I’ve just used some values) in any way but it’s progress.
The scaling that I’ve built today seems to work really nicely. I didn’t expect to “accidentally” find it.
ok I try. Yes they might jump because the small oak true does not have a true center. I might change that model too to add a real center. Current center is 4 voxels.
the good news is the sapling shoot work. But when I plant the sapling, they plant it. But keep re-planting it over and over on the same place.
http://radiant/stonehearth/ui/game/create_camp/create_camp.js:128: Uncaught TypeError: undefined is not a function
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
set timer to 4m
Semi-watching and listening to when the magic happens. Actually tuned in very late (like 15-20min before lunch break). Anyway, this is fun, but I can honestly say that I don’t understand much
It’s a bit boring right now because it’s mainly LESS and CSS and both things are stuff that I haven’t done in ages. So I’m not really used to it too well but @Xavion has been a huge help and we’ll manage to get this done properly. Somehow.
I hope. The console so far looks rather fancy.
Edit: Still streaming and the console is looking niiice.
Looks pretty to me. Personally, since this is a debugging utility, it’s breaking the fourth wall anyway and doesn’t need to have the normal Stonehearth style… @Xavion said he might provide a Stonehearth-ish version, however.
There’s a few issue that are out of my league, however. For example, if you press any key, it’s also relayed to the script… which means that “wasd” is kind of bad. I guess the Radiant guys and gals need to provide some sort of input capturing mechanics, as the same happens with the workshop too.
Edit:
As some sort of pre-announcement, I plan to do another, much more coding-based Stream in about seven or eight hours (somewhere around 8:00-9:00 CET). The first part - the ugly part because I have very little HTML/LESS/EmberJS experience - is over and we can get to do nice stuff with the console.
What I plan to do:
Find out how events work. If I’m not mistaken, lua events are broadcast to JS somehow (and vice versa?). This will take half an hour or so, in which I’ll dig through SH’s code and do a few tests.
Create a way to have “console commands” in the all tab that can be listened to by lua and JS
Add a few basic commands: exit, print, luas_run, js_run
Add more complicated commands: select_entity, add_command, set_model, set_scale
Modify RP: Simplify configurations for mods by putting default configs into the manifest, have RP load them before the mod is loaded, pass it to the mod (if it’s a class) and then pass it to JavaScript too.
Find a way to save configurations. This is a step that will mainly involve thinking about a neat design (that will also survive the next update) and then implementing it.
Have the console use the new save config function to save its position and size.
If we’re extra fancy, we might add something to minimize the console (so just the head is visible).
I redid the appearance as I said. Other than the one minor bug I circled here’s what it looks like. I’ve got no idea why that bug occurs as it doesn’t occur for the right-most tab. The distortion is due to not running it on a 1920x1080 screen so there may be a 1 pixel error somewhere hidden by that. It seems fine to me though. A minimize button would be pretty easy, vary slightly depending on what you actually want it to do. For example, do you want it to just shrink to a little bar labeled console with a plus to unminimise it? Because I could do that right now in a few minutes.
I thought about having a button on the top-right that would simply be a minus or something. It would collapse the console then until only the header (or only the button?) were visible.
Made a minimize button. It looks like so. It’s not quite perfect yet in that it shifts around a little bit when maximising if it’s been resized but other than that it works. The changed files are here.
Amazing! I’ll have to tweak a few things but what you’ve done so far is really amazing.
Now, live stream time. I’ll try to move the future streams a bit forward into the afternoon, but morning streams are currently the best I can offer.
The content’s going to be the same as mentioned above:
This time, it will be much less about how stuff works and I’ll actually get something done for once. Hopefully. Not extremely SH based, but it’s touching some aspects of the system.
Nope. I was thinking if there was already a bridge from/to lua using events (and not custom callback handlers) - sadly, there isn’t. It’s something that I will likely have to implement with RP on my own. If I need it - right now, I took a different approach.
Command line parsing was more annoying than I thought, but I’m glad that’s over. If @Xavion figures out a proper RegEx to do it I’m more than happy to replace the current beast with it.
Event research
Add “console commands”
Add basic console commands
Add more complicated console command
What really needs to be done now is to avoid input being captured when the console has been opened. This means that I somehow need to disable all keydown/keyup commands in JS (to disable commands/menus/hotkeys) and find a way to deal with it on the server. The server one might be doable if I’m able to play man-in-the-middle with the input capture thingy.
If I had an actual reference for exactly what the regex needs to do I could probably do it fairly easily. As for the input capturing if goes via the web interface than it would be fairly easy to fix, if the engine is passing the input straight to the lua though it would still be possible. All you’d need is someway of telling if an input element is active and change the keyboard input handler to cope with it.