Archive for the ‘Code Stuffs’ Category
I have been a bit quiet lately, there were a lot of things I had to do IRL.
I visited my family for a few days on easter and it took a day to “recover” from it, it was a good time but very exhausting.
I’ve been trying to bring back my kanji lessons schedule under control (spaced repetition can get pretty wild if you stop following it for a few days) and that means that I’ve spent a lot of days essentially studying most of the day.
And after that there was a lot of long long overdue spring cleaning, trying to make my tiny apartment a liveable space again. To be honest, this is something I should not have allowed to accumulate, but you never really pay attention to it until after the facts. At least I did not wait until summer for this.
With my place now in a somewhat liveable state, I’ve been experimenting with VR a little. Room-scale is certainly a challenge when you live in a place that isn’t much bigger than some people’s walk-in closet. I’m not leaving SL don’t worry, this is mostly an opportunity to spend less time in a chair and be a little more “active”.
I did put down some work for KDC still. Since the change to the keyless padlock, I wanted to rewrite the fingerprint padlock, to essentially provide the same features it does currently, but better and clearer. Those that hang out in the KDC Mailing List Group probably saw me talk about it.
The real actual “change” is the addition of a built-in way to erase a fingerprint padlock without having to reset the script. People already would reset them all the time, why not spare them the trouble. Everything else is more focused on trying to make the way they lock and unlock as transparent as possible.
The other thing I want to do with it is fixing some of the problems the original texture had. I was under time constraints back then and did not take the time to really finish it up the way I should have.
And maybe make a couple more colors, so long as it remains visually different from the keyless model.
I’m pretty much done with the cell furniture scripts & animations! Large picture set today!
The furnitures have their own configuration system that allows you to adjust the most important aspects, which can help if you want to use your own poses.
Now, what is going on with these “config.use” cards? It’s really simple! It allows to define which sides of the furniture will allow sitting (the furnitures REQUIRE the “KDC Experiment” experience, sorry!) You still have to be fairly close.
I also included pictures of all the poses I’ve made for the bed and the toilet unit. Feedback welcome!
Slowly, but surely, I’m getting to the bottom of the prison cell project 🙂
- ✔ Config for the inside/outside lamp behavior: always on/off and toggled by the switch.
- ✔ (Optional) automatic unlocking after X minutes.
- ✔ (Experimental) “secure locking”, a padlock ID whitelist for roleplay areas that want some level of key control.
- ✔ RLV feature toggle (restrictions and/or force teleport).
- ✔ Experience feature toggle (teleport on/off).
- ✔ I got pretty much all the sounds I needed to be done: door, hatch, shutter, etc…
- ✔ Color, intensity & other light properties are now saved by the script when you edit them.
- ✔ A variant of the main cell body without the window.
- ✔ A standalone anchor bar with advanced reach checks.
- ✔ A standalone version of the light ramp.
I started working on the furniture script. I came up with a cool configurable, directional range check. You can decide in which directions the furniture will allow an avatar to sit, including top & bottom (useful to allow sitting on a top bunk, but only from “below”, or to prevent sitting through a wall).
That’s all for today!
Brief late night update!
- I added an (optiona) automatic prisoner number generator, it is unique and fixed for all avatars, (I’ll share the code if others want to use it).
- All major interactions have a small built in delay (1 second or less), specifically those that produce messages or sounds.
- Touch areas check not only for range, but also evaluate whether you can realistically reach the object you are clicking from your location (example: from inside the cell, door closed, you can only pull the door handle if the hatch is open)
- RLV restrictions via relay is in, I still need to do some testing to implement (optional) vision spheres.
- Experience Force-teleport is in.
- RLV Force-Teleport is in.
- Some of the sounds are in and are inventory-based to help with modding, it is also fault tolerant (missing sounds won’t play at all).
- All standard TouchBound locks and Heavy-Duty locks are implemented.
- Mod-friendly animation system, resizing & moving parts ‘should’ be handled gracefully (no hard-coded positions & scales on anything).
- Very satisfying light switch & neon light?
Terribly produced videos! And a short list of the prison cell features (so far):
- ✔ The door handle latches/unlatches.
- ✔ The door opens.
- ✔ The hatches swing open/closed.
- ✔ The window shutter slides.
- ✔ Light turns on/off inside and outside, the light switch actuates.
- ✔ The door takes standard/heavy locks but also timelocks & accessories.
- ✔ Handle rattles when it can’t unlatch.
- ⭕ Swing open/close sounds, shutters, hatch sounds, lamp sounds.
- ⭕ Touch distance check, inside/outside reachability checks.
- ⭕ RLV relay force-teleport & seating restrictions.
- ⭕ Experience force-teleport.
- ⭕ TouchBound anchor code.
- ⭕ Furniture scripting (toilet & bed).
- ⭕ Furniture poses (toilet & bed).
I’m probably forgetting a bunch…
Well, I did not write the entire thing, it depends on the buttplug project, for all the important stuff.
It essentially allows you to run a mini web server that can be interacted with from Second Life (http requests)
The project is written in c# dotnet core and also includes a couple of LSL examples on how to interface with it.
The sourcecode and documentation can be found here:
I’m trying something different for this one, in line with the meat market set’s decorative rings, there is a handy little button row for setting your prefered stud configuration. But you can also load presets, same as my other items that have this feature.
It’s functional, I started fresh code-wise and it took me most of the evening to get it done. The HUD texture isn’t 100% final yet and I’m sure there are issues here and there that need fixing.
After much back and forth, various changes and improvements, the LockMeister plugin for AVsitter2 is now part of the official repository!
The final version includes a couple of optimisation improvements and support for sitter swapping.
I’ve finished debugging, testing, re-testing, re-debugging, and so on. This is as good as it is going to get code-wise.
So here are more pictures:
- On top of the “light” version (cannot be padlocked or chained) I’ve added two variants with a shorter and longer shackle (called XS and XL) to offer more adjustment flexibility.
- I haven’t really shown a good shot of what the captive ring indents ended up looking like, pretty crisp for what it is.
- XL + a tag plate, and while they are smaller than on other items, it’s still ridiculously cumbersome. I guess it works if you don’t plan on having a formal diner that day.
(But you don’t, since you eat your food from a bowl on the floor, right? :P)
I am more or less done with the nose shackle code, so I figured I would give a long hard look at some of the TouchBound core code to see what could potentially be improved.
I have found a handful of small little issues that I’m going to correct, I know this is probably not something anyone cares about, but here is what I’ve found and fixed:
- Some of my timer threads would end timer processing before other threads had a chance to run, this causes the animation watchdog to stop running during a suspension.
- Lock “pins” wouldn’t reset to hidden on script reset.
- Some messages still used llInstantMessage rather than llRegionSayTo (causing some delay).
- I MIGHT have greatly improved memory & script time of the animation watchdog.
- I removed some message arguments I don’t use anymore.
- I was accidentally loading some lists in the module script that… aren’t actually used there.
- A few functions were passing sounds around that are already the default one.
I’m tempted to merge all of this into the master branch right now but I’m afraid of introducing bugs -_-.