Commit Graph

171 Commits

Author SHA1 Message Date
Isidor Zeuner 942e91e00e better align to existing font 2020-11-14 13:04:50 +01:00
Isidor Zeuner 4b2d4db848 test with some european languages 2020-11-13 12:08:39 +01:00
Isidor Zeuner 4b432eec08 support for non-ascii characters 2020-11-12 06:22:34 +01:00
Isidor Zeuner d956c87dbc support for non-ascii characters 2020-11-12 06:02:56 +01:00
VanessaE 1a6b9f38ff enable static save on signs' entities 2020-11-01 12:43:55 -05:00
VanessaE 8b975d7fa1 add minimum minetest version key for contentdb 2020-06-03 13:00:34 -04:00
VanessaE b633a4bf8c fix wrong default sign entity ref 2020-04-16 17:06:07 -04:00
Vanessa Dannenberg bd20f9b776 add prefab_redo to opt depends 2020-02-26 16:03:48 +00:00
Vanessa Dannenberg 7c6a1c7611 add some missing aliases (and rearrange them) 2019-10-22 15:25:58 -04:00
Vanessa Dannenberg bd8ae112d0 README tweaks 2019-10-11 06:00:31 -04:00
Vanessa Dannenberg 8669385718 various readability improvements
in API.md, MODELS.md, and README.md

I also added a couple of things to API.md that I forgot to
document before.
2019-09-26 03:27:01 -04:00
Vanessa Dannenberg 0398684bfb tweak README 2019-09-26 02:01:06 -04:00
Vanessa Dannenberg b52913d506 fix wrong textures for stick and hangers 2019-09-26 01:17:44 -04:00
Vanessa Dannenberg ebeb035fac allow using "Sneak"/Shift to skip the on-pole/hanging/yard checks
(makes it possible to directly place a sign flat on the ground or
ceiling, among other things.)
2019-09-26 01:16:51 -04:00
Vanessa Dannenberg e92177b83e allowing `true` for horizontal pole function makes no sense 2019-09-26 01:02:00 -04:00
Vanessa Dannenberg 684e9237cd don't allow top of bottom to be considered
a mountable surface on a a pole/post.
2019-09-26 01:00:15 -04:00
Vanessa Dannenberg 3836215268 API changes to allow for more mounting styles
NODE NAMES:

The base name of a node can be whatever you want.  The basic wall sign
will keep the node name you give, while its hanging, on-pole, and yard
variants will, where applicable, use the same name, with "_onpole",
"_hanging", or "_yard" appended.

One exception:

If your node has "_wall" in its name, that bit will be stripped-out when
generating the above node variations.  For example:

"default:sign_wall_wood"

...will become...

"default:sign_wood_onpole"
"default:sign_wood_hanging"
"default:sign_wood_yard"

MODELS:

The base sign model and entity files must now be named:

sign:   mymod_foosign_wall.obj
        mymod_foosign_facedir_wall.obj

entity: mymod_foosign_entity_wall.obj

their other variants, where applicable, must be:

mymod_foosign_onpole.obj
mymod_foosign_hanging.obj
mymod_foosign_yard.obj

mymod_foosign_entity_onpole.obj
mymod_foosign_entity_hanging.obj
mymod_foosign_entity_yard.obj

For `facedir` signs, the "_facedir" in the base sign model filename is
automatically stripped from the name when generating the entity model
filename, as entities don't have a concept of wallmounted/facedir/etc.
For example:

"mymod_foosign_facedir_wall.obj"

...will become...

"mymod_foosign_entity_wall.obj"

* allow passing custom onpole, hanging, and yard sign models, for
situations where the filename(s) thereof can't be derived from the base
sign model filename.

* allow passing a custom pole mount, hanging, and yard sign stick
textures as the third, fourth, and fifth tiles{} entries, respectively
(independent of the above model file option)

* fine-tuned the pole mount on the standard sign models to eliminate
overlapping faces (so it looks better with basic_signs' glass sign.

* Move basic_signs wooden yard sign back to signs_lib.
2019-09-26 00:48:53 -04:00
Vanessa Dannenberg 6a4ddfddab attempt to work around engine player model bug
when the world loads and the player spawns in, or is
teleported to the same node space as a sign, occasionally, the
player's model goes flat and their skin gets changed to the
whatever the sign's text is.

Also, when checking if an entity needs spawned, or when
deleting, try to make absolutely sure that only sign-related
entities will be selected for re-use, or selected for deletion
(we don't want some player's prize cow to be deleted)

I think this will fix it, or at least it'll surely prevent
signs_lib from being able to cause it.

Also, moved another function to the entity-handling section of
the file and made it global (signs_lib namespace) in the
process.
2019-09-25 17:10:00 -04:00
Vanessa Dannenberg 1e05aa9309 fix bad selection box for prefab concrete rail
(when there's just one node not connected to anything)
2019-09-25 16:06:12 -04:00
Vanessa Dannenberg 80c0fc6a7e Add README and basic modeling instructions, and document the API
Also, tweaked the object names in the standard sign Blender
project file, renamed it, renamed the small/slim pole mount
project file as well, and added a copy of the standard pole
mount project file.
2019-09-24 06:37:33 -04:00
Vanessa Dannenberg 42091db05e treat cottages:table and prefab_redo:concrete_railing as vertical posts 2019-09-23 17:02:19 -04:00
Vanessa Dannenberg de5926233a also include hanging widefont signs 2019-09-22 06:01:32 -04:00
Vanessa Dannenberg ae6e707ebe forgot to include onpole_widefont signs in conversion list 2019-09-22 04:28:01 -04:00
Vanessa Dannenberg dcdee22265 allow mods to pass a function or just `true`
to the pole and horiz pole check routines, in case they need
their own, custom checking routines, if the usual, simple
checks aren't good enough.

got rid of the allowed-poles table, as it's now obsolete

moved all existing special code into compat.lua, altered to
use this feature.
2019-09-22 03:19:31 -04:00
Vanessa Dannenberg e4336e320c fix empty lines being skipped 2019-09-21 22:04:39 -04:00
Vanessa Dannenberg d41e2ffd73 use a meta key to select wide-font mode
instead of using a separate node
add LBM to convert old nodes.
2019-09-21 21:42:46 -04:00
Vanessa Dannenberg 77987d12b9 detect streets:bigpole_tjunction
Treat T-junction as a vertical or horizontal pole (depending
on its orientation), if the sign could be placed flat against
the back or side of the junction.

In this instance, the "front" of the junction is the side with
the middle bit sticking out, and will just get a regular wall
signif targeted, as with any non-pole node.
2019-09-21 21:39:53 -04:00
Vanessa Dannenberg dfece5275e rework horizontal pole detection slightly 2019-09-21 19:24:48 -04:00
Vanessa Dannenberg 6285d250d7 default "allow_onpole" to disabled
for consistency with other similar flags
2019-09-21 15:56:45 -04:00
Vanessa Dannenberg 9502812088 Add necessary bits to allow signs to be placed onto horizontal poles
(both wooden and steel signs)

only streets mod's "bigpole" supported for now.

Model changes:

To make a sign support horizontal mounting, make a single "_onpole"
model, with two copies of the pole mount, one rotated by 90°.  Make sure
the second copy appears has its own material entry, and that it is last
in the materials list in the exported .obj (`grep "g " file.obj` to
check).

When registered, signs_lib will set the "_onpole" and "_onpole_horiz"
tiles{} to reveal one mount or the other: entry 3 will expose the
vertical mount, entry 4 is the horizontal copy, with the opposite entry
being set to the "blank" image.
2019-09-21 15:45:48 -04:00
Vanessa Dannenberg c66c1b70bd disable backface culling on the sign entity
(allows for transparent signs i.e. glass)
2019-09-19 01:02:44 -04:00
Vanessa Dannenberg 831055095c remove debug prints 2019-09-18 20:28:42 -04:00
Vanessa Dannenberg f0bc18154e fix corner case
Placing a "wallmounted" sign onto a streets lamp would cause a
weird rotation if you're pointing downward too far.  Now it
enforces NESW direction according to your yaw.

Also fixes bad orientation when you're really close to a post.
2019-09-18 20:25:41 -04:00
Vanessa Dannenberg 4eeaf90ae3 allow placement of "facedir" signs flat on floor
(and on ceiling, if hanging isn't available)
mimics the way wallmounted signs behave
2019-09-18 20:12:31 -04:00
Vanessa Dannenberg 906ddbbcc5 rotation fixups
* combine rotation functions -- one no longer needs to choose
  a particular rotation function for the node's paramtype2,
  it'll figure it out automatically.
* fix glitch in wallmounted rotation
* re-order rotation facing order to N, E, S, W, floor, ceiling.
* limit yard sign to simple NESW-only rotation
* allow rotation of hanging signs (NESW only)
* allow rotation of signs on poles/posts if there's nothing in
  the way of where the sign has to move to (NESW only).
2019-09-18 20:07:20 -04:00
Vanessa Dannenberg 01e2adaa46 allow visible text on
floor and when flat on a ceiling
2019-09-18 17:23:07 -04:00
Vanessa Dannenberg 03bd471230 fix a couple of global warnings 2019-09-18 16:33:56 -04:00
Vanessa Dannenberg e5d525c272 in fact, just bail out if the sign needs no entity 2019-09-18 14:21:56 -04:00
Vanessa Dannenberg a907f9535c bail out of make_sign_texture is the node is unknown 2019-09-18 14:08:17 -04:00
Vanessa Dannenberg bbd580acb1 remove debug prints 2019-09-18 13:57:57 -04:00
Vanessa Dannenberg 2d29a539f8 fix minor global warning 2019-09-18 13:55:19 -04:00
Vanessa Dannenberg 4b2abfadce centralize entity handling
minor re-factor as needed for that
don't store entities statically, let the LBM generate them.

this works around Minetest's reload-positioning inaccuracy at very large
positive or negative X/Z coords (tested -18000/+18000 at all four corners,
both new signs and after reboot)
2019-09-18 13:51:53 -04:00
Vanessa Dannenberg ee2dc495c3 treat streets:streetlamp_basic_top_* as a type of post
as far as sign placement is concerned.
2019-09-16 22:46:26 -04:00
Vanessa Dannenberg f944337b1c fix non-writable signs not fitting onto a pole/fence 2019-09-15 18:37:03 -04:00
Vanessa Dannenberg a5e711d354 Use sign formspec to switch between wide/narrow font
if available on a given sign.  The sign must have a
"foo:bar_widefont" variant, with the horizontal scaling set
appropriately (about half of the normal value for the
narrow-font sign)

Add new corresponding API to anto-generate those signs where
desired; use this feature in default wood and steel signs
2019-09-15 16:10:11 -04:00
Vanessa Dannenberg bcb6a3aa39 add "wide font" overlay image 2019-09-15 03:18:52 -04:00
Vanessa Dannenberg b021b9666f Allow mod to specify custom selbox for on-pole variants 2019-09-15 02:00:05 -04:00
Vanessa Dannenberg c765d3b316 allow locked and all steel signs to hang from ceiling 2019-09-15 01:47:43 -04:00
Vanessa Dannenberg 78418de9c9 create a generic hanging sign feature and
move basic_signs' hanging wooden sign back to here, use it.
2019-09-15 01:23:40 -04:00
Vanessa Dannenberg f6673dc0f1 added a proper register-sign API call
(see api.lua and standard_signs.lua for examples)

make selectionbox call now ignores the old onpole flag (it's automatic now)
removed debug print()'s
moved the signs-on-fences lbm settings to here, from basic_signs.
some misc cleanups

added reference models for standard wooden sign ("wallmounted" on wall,
"facedir" on wall, and pole-mount variants, using standard-size pole
mount), and a separate .blend with street_signs' OM3 sign on slim pole
mount.
2019-09-14 22:45:01 -04:00