update castle, homedecor, maptools, moreblocks, moretrees, and teleport request

This commit is contained in:
Vanessa Ezekowitz 2016-05-19 22:20:33 -04:00
parent 7d08fbf33b
commit 0e8d734a69
33 changed files with 515 additions and 36 deletions

View File

@ -5,7 +5,7 @@ by: Philipbenr And DanDuncombe
=-=-=-=-=-=-=-=-=-=
Licence: MIT, LGPLv2.1
Licence: MIT, LGPLv2.1 (Crossbow)
see: LICENSE
@ -47,6 +47,7 @@ Planned features (anything with question mark means that I am either unsure or d
--Flags
--Brewery/Liquor (liquor effects is another thing altogether)
--Tannery?
--Dye Vats?
--Books? (that is an interesting one... I'll write a post on it later)
--Guards?
--Player status (King, queen, etc.)?

View File

@ -16,6 +16,7 @@ minetest.register_node("castle:stonewall", {
paramtype = "light",
drop = "castle:stonewall",
groups = {cracky=3},
sunlight_propagates = false,
sounds = default.node_sound_stone_defaults(),
})

BIN
castle/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 594 B

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 B

After

Width:  |  Height:  |  Size: 698 B

View File

@ -39,7 +39,7 @@ minetest.register_craft({
minetest.register_node("castle:workbench",{
description = "Workbench",
tiles = {"castle_workbench_top.png", "castle_workbench_bottom.png", "castle_workbench_1.png", "castle_workbench_1.png", "castle_workbench_2.png", "castle_workbench_2.png"},
tiles = {"castle_workbench_top.png", "castle_workbench_bottom.png", "castle_workbench_side.png", "castle_workbench_side.png", "castle_workbench_back.png", "castle_workbench_front.png"},
paramtype2 = "facedir",
paramtype = "light",
groups = {choppy=2,oddly_breakable_by_hand=2,flammable=2},

232
homedecor/locale/it.txt Normal file
View File

@ -0,0 +1,232 @@
#
# Language: Italiano
# Author: Emon
#
### Special strings ###
### kitchen_cabinet.lua ###
Kitchen Cabinet = Armadietto della cucina
## 1: Player name, 2: position
%s moves stuff in kitchen cabinet at %s = %s sposta delle cose nell'armadietto della cucina a %s
%s moves stuff to kitchen cabinet at %s = %s mette delle cose nell'armadietto della cucina a %s
%s takes stuff from kitchen cabinet at %s = %s prende delle cose nell'armadietto della cucina a %s
Half-height Kitchen Cabinet (on ceiling) = Armadietto della cucina di altezza dimezzata (sul soffitto)
Under-sink cabinet = Armadietto sotto il lavandino
Kitchen Cabinet with sink = Armadietto della cucina con il lavandino
### door_models.lua ###
Mahogany Closet Door = Porta dell'armadio in mogano
Oak Closet Door = Porta dell'armadio in quercia
Fancy Wood/Glass Door = Porta decorativa in vetro e legno
Glass Office Door = Porta dell'ufficio in vetro
Glass and Wood, Mahogany-colored = Vetro e legno, color mogano
Glass and Wood, Oak-colored = Vetro e legno, color quercia
Glass and Wood, White = Vetro e legno, bianca
Plain Wooden Door = Porta in legno semplice
left = sinistra
right = destra
## 1: Side the doors opens to
(Top Half, %s-opening) = (Metà superiore, apertura a %s)
(%s-opening) = (apertura a %s)
### door_nodes.lua ###
Not enough space above that spot to place a door! = Non c'è abbastanza spazio sopra quel punto per mettere una porta!
### crafts.lua ###
Brass Ingot = Lingotto di ottone
Bucket of white paint = Secchio di vernice bianca
Legs for Small Utility table = Gambe per il tavolo da lavoro piccolo
Plastic sheet = Foglio di plastica
Silicon lump = Grumo di silicone
Simple Integrated Circuit = Circuito integrato semplice
Small Wooden Drawer = Bauletto in legno
Terracotta Roof Tile = Tegole di terracotta
Titanium Dioxide = Biossido di titanio
Uncooked Terracotta Base = Base cruda di terracotta
Unprocessed Plastic base = Base non lavorata di plastica
### door_models.lua ###
### door_nodes.lua ###
### fences.lua ###
Barbed Wire Fence = Recinzione di filo spinato
Barbed Wire Fence Corner = Angolo della recinzione di filo spinato
Barbed Wire Fence Gate = Cancello della recinzione di filo spinato
Brass Fence/railing = Recinzione di ottone/ringhiera
Brass Fence/railing with sign = Recinzione di ottone/ringhiera con cartello
Chainlink Fence = Rete metallica
Chainlink Fence Corner = Angolo della rete metallica
Chainlink Fence Gate = Cancello della rete metallica
Unpainted Picket Fence = Recinzione non verniciata di paletti
Unpainted Picket Fence Corner = Angolo della recinzione non verniciata di paletti
Unpainted Picket Fence Gate = Cancello della recinzione non verniciata di paletti
White Picket Fence = Recinzione di paletti bianca
White Picket Fence Corner = Angolo della recinzione di paletti bianca
White Picket Fence Gate = Cancello della recinzione di paletti bianca
Wooden Privacy Fence = Recinzione di isolamento in legno
Wooden Privacy Fence Corner = Angolo della recinzione di isolamento in legno
Wrought Iron Fence/railing = Recinzione/ringhiera in ferro battuto
Wrought Iron Fence/railing with sign = Recinzione/ringhiera in ferro battuto con cartello
want to simply place the wielded item like usual. = vuole mettere l'oggetto impugnato come sempre.
### furniture.lua ###
Table = Tavolo
Chair = Sedia
Black = nero
Red = rosso
Pink = rosa
Violet = viola
Blue = blu
Dark Green = verde scuro
## 1: Color name
Armchair (%s) = Poltrona (%s)
Table Lamp = Lampada da tavolo
### furniture_medieval.lua ###
Bars = Sbarre
Binding Bars = Ceppi
Chains = Catene
Wall Torch = Torcia a muro
### furniture_bathroom.lua ###
Toilet = Water
Sink = Lavandino
Taps = Rubinetti
Shower Tray = Piatto della doccia
Shower Head = Pigna della doccia
### init.lua ###
Loaded! = Caricato!
Air Conditioner = Condizionatore dell'aria
Asphalt Shingles = Mattonelle di asfalto
Asphalt Shingles (outer corner) = Mattonelle di asfalto (angolo esterno)
Asphalt Shingles (inner corner) = Mattonelle di asfalto (angolo interno)
Black Plastic Flower Pot = Vaso per fiori di plastica nera
Brass Pole = Palo di ottone
Brass Table Legs = Gambe in ottone del tavolo
Wrought Iron Table Legs = Gambe in ferro battuto del tavolo
red = rosso
green = verde
blue = blu
white = bianco
pink = rosa
violet = viola
## 1: Color name
Curtains (%s) = Tende (%s)
Drop-Ceiling Tile = Piastrella del controsoffitto
Glass Skylight = Lucernario di vetro
Glass Skylight Frosted = Lucernario di vetro satinato
Glass Table (Small, Round) = Tavolo di vetro (piccolo, rotondo)
Glass Table (Small, Square) = Tavolo di vetro (piccolo, quadrato)
Glass Table Piece (large) = Pezzo di tavolo di vetro (grande)
Green Plastic Flower Pot = Vaso per fiori di plastica verde
Large Area Rug = Tappeto per aree grandi
Glass Table Piece (large) = Pezzo di tavolo di vetro (grande)
Large Stereo Speaker = Altoparlante stereo grande
Legs for Utility Table = Gambe per il tavolo da lavoro
Projection Screen Material = Materiale per lo schermo di proiezione
Small Surround Speaker = Altoparlante audio surround piccolo
Small Throw Rug = Tappetino
Stereo Receiver = Ricevitore stereo
Terracotta Flower Pot = Vaso per fiori in terracotta
Terracotta Shingles = Tegole di terracotta
Terracotta Shingles (outer corner) = Tegole di terracotta (angolo esterno)
Terracotta Shingles (inner corner) = Tegole di terracotta (angolo interno)
Textured Ceiling Paint = Vernice con trama per il soffitto
Utility Table = Tavolo di lavoro
Utility table mk2 = Tavolo di lavoro mk2
Wooden Shutter (Black) = Persiana in legno (nera)
Wooden Shutter (Dark grey) = Persiana in legno (grigia scura)
Wooden Shutter (Forest green) = Persiana in legno (verde foresta)
Wooden Shutter (Grey) = Persiana in legno (grigia)
Wooden Shutter (Light blue) = Persiana in legno (blu chiaro)
Wooden Shutter (Violet) = Persiana in legno (viola)
Wooden Shutter (Red) = Persiana in legno (rossa)
Wooden Shutter (Mahogany) = Persiana in legno (mogano)
Wooden Shutter (Unpainted oak) = Persiana in legno (quercia non verniciata)
Wooden Shutter (White) = Persiana in legno (bianca)
Wooden Shutter (Yellow) = Persiana in legno (gialla)
Wood Table Piece (large)= Pezzo di tavolo in legno (grande)
Wood Table (Small, Round) = Tavolo in legno (piccolo, rotondo)
Wood Table (Small, Square) = Tavolo in legno (piccolo, quadrato)
Wood Shingles = Tegole in legno
Wood Shingles (outer corner) = Tegole in legno (angolo esterno)
Wood Shingles (inner corner) = Tegole in legno (angolo interno)
Wrought Iron Pole = Palo di ferro battuto
someone = qualcuno
## 1: Player name
Sorry, %s owns that spot. = Spiacente, quel punto è di proprietà di %s.
### lighting.lua ###
White Glowlight (small cube) = Luce fosforescente bianca (cubo piccolo)
White Glowlight (small cube, on ceiling) = Luce fosforescente bianca (cubo piccolo, sul soffitto)
White Glowlight (thick) = Luce fosforescente bianca (spessa)
White Glowlight (thick, on wall) = Luce fosforescente bianca (spessa, a muro)
White Glowlight (thin) = Luce fosforescente bianca (sottile)
White Glowlight (thin, on wall) = Luce fosforescente bianca (sottile, a muro)
Yellow Glowlight (small cube) = Luce fosforescente gialla (cubo piccolo)
Yellow Glowlight (small cube, on ceiling) = Luce fosforescente gialla (cubo piccolo, sul soffitto)
Yellow Glowlight (thick) = Luce fosforescente gialla (spessa)
Yellow Glowlight (thick, on wall) = Luce fosforescente gialla (spessa, a muro)
Yellow Glowlight (thin) = Luce fosforescente gialla (sottile)
Yellow Glowlight (thin, on wall) = Luce fosforescente gialla (sottile, a muro)
### locked.lua ###
## 1: Item description, 2: Owner name
%s (owned by %s) = %s (di proprietà di %s)
## 1: Player name, 2: Item description, 3: Owner name, 4: Position
%s tried to access a %s belonging to %s at %s = %s ha provato ad accedere a %s di proprietà di %s alla posizione %s
## 1: Item description
%s (Locked) = %s (Con lucchetto)
Locked Fridge = Frigorifero con lucchetto
Locked Cabinet = Armadietto con lucchetto
Locked Nightstand = Comodino con lucchetto
Locked Oven = Forno con lucchetto
Locked Oven (active) = Forno con lucchetto (attivo)
Locked Microwave Oven = Forno a microonde con lucchetto
Locked Microwave Oven (active) = Forno a microonde con lucchetto (attivo)
### nightstands.lua ###
Mahogany Nightstand with One Drawer = Comodino in mogano con un cassetto
Mahogany Nightstand with Two Drawers = Comodino in mogano con due cassetti
Oak Nightstand with One Drawer = Comodino in quercia con un cassetto
Oak Nightstand with Two Drawers = Comodino in quercia con due cassetti
## 1: Player name, 2: position
%s moves stuff in nightstand at %s = %s sposta delle cose nel comodino alla posizione %s
%s moves stuff to nightstand at %s = %s mette delle cose nel comodino alla posizione %s
%s takes stuff from nightstand at %s = %s prende delle cose nel comodino alla posizione %s
One-drawer Nightstand = Comodino a singolo cassetto
Two-drawer Nightstand = Comodino a doppio cassetto
### oven.lua ###
Oven = Forno
Microwave Oven = Forno a microonde
## 1: Item description, 2: Percentage
%s active: %d%% = %s attivo: %d%% =
## 1: Item description
%s is empty = %s è vuoto
: Out of fuel = Senza combustibile
: output bins are full = i contenitori sono pieni
### refrigerator.lua ###
Refrigerator = Frigorifero
## 1: Player name, 2: position
%s moves stuff in refrigerator at %s = %s sposta delle cose nel frigorifero alla posizione %s
%s moves stuff to refrigerator at %s = %s mette delle cose nel comodino alla posizione %s
%s takes stuff from refrigerator at %s = %s prende delle cose nel comodino alla posizione %s
Not enough vertical space to place a refrigerator! = Non c'è abbastanza spazio verticale per mettere un frigorifero!
### television.lua ###
Small CRT Television = Piccola televisione a tubo catodico
### signs_lib.lua ###
%s wrote "%s" to sign at %s = %s ha scritto "%s" sul cartello alla posizione %s
Reading cached character database. = Lettura della banca dati dei caratteri nella cache.
Font seems to have changed. Rebuilding cache. = Sembra che i caratteri siano cambiati. Ricostruzione della cache.
Could not find font line height in cached DB. Trying brute force. = Non è stato possibile trovare l'altezza della riga del carattere nella banca dati nella cache.
Registered %s and %s = Registrato %s e %s
signs loaded = cartelli caricati

47
maptools/locale/it.txt Normal file
View File

@ -0,0 +1,47 @@
# Translation by Emon
[maptools] loaded. = [maptools] caricato.
Cloud = Nuvola
Infinite Fuel = Combustibile infinito
Admin Pickaxe = Piccone della amministrazione
Admin Pickaxe With Drops = Piccone della amministrazione che lascia cadere a terra
Copper Coin = Moneta di rame
Silver Coin = Moneta di argento
Gold Coin = Moneta di oro
Super Apple = Super mela
Fake Ladder = Finta scala a pioli
Smoke Block = Blocco di fumo
Damaging Block: %s = Blocco che danneggia : %s
Kill Block = Blocco che uccide
Build Prevention = Impedimento alla costruzione
Interact Prevention = Impedimento alla interazione
Climb Block = Blocco su cui ci si può arrampicare
Light Block = Blocco di luce
Light Bulb = Lampadina
Player Clip = Blocca giocatori
Player Clip Bottom Face = Blocca giocatori - faccia inferiore
Player Clip Top Face = Glocca giocatori - faccia superiore
Full Clip = Blocca tutti
Full Clip Face = Faccia del blocca tutti
Permanent Fire = Fuoco eterno
Fake Fire = Fuoco finto
Igniter = Accendino
Pusher: %s = Che ha spinto : %s
Unbreakable Stone = Pietra infrangibile
Unbreakable Sand = Sabbia infrangibile
Unbreakable Desert Stone = Pietra del deserto infrangibile
Unbreakable Desert Sand = Sabbia del deserto infrangibile
Unbreakable Gravel = Ghiaia infrangibile
Unbreakable Dirt = Terra infrangibile
Unbreakable Dirt with Grass = Erba infrangibile
Unbreakable Full Grass= Blocco d'erba infrangibile
Unbreakable Brick = Mattoni infrangibile
Unbreakable Wooden Planks = Assi in legno infrangibili
Unbreakable Tree = Albero infrangibile
Unbreakable Glass = Vetro infrangibile
Unbreakable Sandstone = Arenaria infrangibile
Unbreakable Leaves = Foglie infrangibili
Unbreakable Cobblestone = Ciottolo infrangibile
Unbreakable Mossy Cobblestone = Ciottolo muschioso infrangibile

View File

@ -457,6 +457,22 @@ minetest.register_craft({
type = "cooking", output = "moreblocks:tar", recipe = "default:gravel",
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:copperpatina",
recipe = {"bucket:bucket_water", "default:copperblock"},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"}
}
})
minetest.register_craft({
output = "default:copper_ingot 9",
recipe = {
{"moreblocks:copperpatina"},
}
})
if minetest.setting_getbool("moreblocks.circular_saw_crafting") ~= false then -- “If nil or true then”
minetest.register_craft({
output = "moreblocks:circular_saw",

70
moreblocks/locale/it.txt Normal file
View File

@ -0,0 +1,70 @@
#
# Italian translation
# Translator: Emon
#
###init.lua###
[moreblocks] loaded. = [moreblocks] caricato.
###nodes.lua###
Jungle Wood Fence = Recinzione in legno della giungla
Empty Bookshelf = Libreria vuota
Clean Glass = Vetro pulito
Plankstone = Pietra e legno
Wooden Tile = Mattonella in legno
Full Wooden Tile = Mattonella in legno pieno
Centered Wooden Tile = Mattonella in legno centrata
Up Wooden Tile = Mattonella in legno verso l'alto
Down Wooden Tile = Mattonella in legno verso il basso
Left Wooden Tile = Mattonella in legno verso sinistra
Right Wooden Tile = Mattonella in legno verso destra
Circle Stone Bricks = Mattoni concentrici in pietra
Stone Tile = Mattonella in pietra
Split Stone Tile = Mattonella in pietra divisa
Glow Glass = Vetro luminoso
Super Glow Glass = Super vetro luminoso
Coal Glass = Vetro e carbone
Iron Glass = Vetro e ferro
Coal Checker = Scacchiera in carbone
Iron Checker = Scacchiera in ferro
Trap Stone = Pietra trappola
Trap Glass = Vetro trappola
Trap Glow Glass = Vetro luminoso trappola
Trap Super Glow Glass = Super vetro luminoso trappola
Coal Stone = Pietra in carbone
Iron Stone = Pietra in ferro
Coal Stone Bricks = Mattoni di pietra in carbone
Iron Stone Bricks = Mattoni di pietra in ferro
Cactus Checker = Scacchiera in cactus
Cactus Brick = Mattoni di cactus
Sweeper = Spazzola
Jungle Stick = Bastone in legno della giungla
Rope = Corda
All-faces Tree = Albero su ogni lato
###circular_saw.lua###
Circular Saw = Sega circolare
Circular saw, empty (owned by %s) = Sega circolare, vuota (di proprietà di %s)
Circular saw, working with %s (owned by %s) = Sega circolare, in funzione su %s (di proprietà di %s)
Circular saw, empty = Sega circolare, vuota
Circular saw is empty (owned by %s) = La sega circolare è vuota (di proprietà di %s)
Input\nmaterial = Materiale\niniziale
Left-over = Scarto
Max = Max.
Set = Imp.
Recycle\noutput = Ricicla\nfinale
###ownership.lua###
someone = qualcuno
Sorry, %s owns that spot. = Spiacente, quel punto è di proprietà di %s
###./stairsplus/*###
%s Stairs = Scale - %s
%s Slab = Lastra - %s
%s Panel = Pannello - %s
%s Microblock = Microblocco %s
%s Pane = Pannello - %s
%s Fence = Recinzione - %s

View File

@ -331,6 +331,11 @@ local nodes = {
sounds = sound_leaves,
no_stairs = true,
},
["copperpatina"] = {
description = S("Copper Patina Block"),
groups = {cracky = 1, level = 2},
sounds = sound_stone,
},
}
for name, def in pairs(nodes) do

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

View File

@ -150,7 +150,7 @@ moretrees.spruce_biome = {
max_count = 5,
}
moretrees.pine_biome = {
moretrees.cedar_biome = {
surface = "default:dirt_with_grass",
avoid_nodes = moretrees.avoidnodes,
avoid_radius = 10,

View File

@ -80,9 +80,9 @@ minetest.register_craftitem("moretrees:spruce_nuts", {
on_use = minetest.item_eat(1),
})
minetest.register_craftitem("moretrees:pine_nuts", {
description = S("Roasted Pine Cone Nuts"),
inventory_image = "moretrees_pine_nuts.png",
minetest.register_craftitem("moretrees:cedar_nuts", {
description = S("Roasted Cedar Cone Nuts"),
inventory_image = "moretrees_cedar_nuts.png",
on_use = minetest.item_eat(1),
})
@ -138,8 +138,8 @@ minetest.register_craft({
minetest.register_craft({
type = "cooking",
output = "moretrees:pine_nuts 4",
recipe = "moretrees:pine_cone",
output = "moretrees:cedar_nuts 4",
recipe = "moretrees:cedar_cone",
})
minetest.register_craft({

View File

@ -6,7 +6,7 @@ moretrees.enable_apple_tree = true
moretrees.enable_oak = true
moretrees.enable_sequoia = true
moretrees.enable_palm = true
moretrees.enable_pine = true
moretrees.enable_cedar = true
moretrees.enable_rubber_tree = true
moretrees.enable_willow = true
moretrees.enable_acacia = true

View File

@ -85,7 +85,7 @@ if moretrees.spawn_saplings then
moretrees.spawn_oak_object = "moretrees:oak_sapling_ongen"
moretrees.spawn_sequoia_object = "moretrees:sequoia_sapling_ongen"
moretrees.spawn_palm_object = "moretrees:palm_sapling_ongen"
moretrees.spawn_pine_object = "moretrees:pine_sapling_ongen"
moretrees.spawn_cedar_object = "moretrees:cedar_sapling_ongen"
moretrees.spawn_rubber_tree_object = "moretrees:rubber_tree_sapling_ongen"
moretrees.spawn_willow_object = "moretrees:willow_sapling_ongen"
moretrees.spawn_acacia_object = "moretrees:acacia_sapling_ongen"
@ -100,7 +100,7 @@ else
moretrees.spawn_oak_object = moretrees.oak_model
moretrees.spawn_sequoia_object = moretrees.sequoia_model
moretrees.spawn_palm_object = moretrees.palm_model
moretrees.spawn_pine_object = moretrees.pine_model
moretrees.spawn_cedar_object = moretrees.cedar_model
moretrees.spawn_rubber_tree_object = moretrees.rubber_tree_model
moretrees.spawn_willow_object = moretrees.willow_model
moretrees.spawn_acacia_object = moretrees.acacia_model
@ -131,8 +131,8 @@ if moretrees.enable_palm then
biome_lib:register_generate_plant(moretrees.palm_biome, moretrees.spawn_palm_object)
end
if moretrees.enable_pine then
biome_lib:register_generate_plant(moretrees.pine_biome, moretrees.spawn_pine_object)
if moretrees.enable_cedar then
biome_lib:register_generate_plant(moretrees.cedar_biome, moretrees.spawn_cedar_object)
end
if moretrees.enable_rubber_tree then

View File

@ -10,12 +10,12 @@ moretrees.treelist = {
{"birch", "Birch Tree"},
{"palm", "Palm Tree", "coconut", "Coconut", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 1.0 },
{"spruce", "Spruce Tree", "spruce_cone", "Spruce Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
{"cedar", "Cedar Tree", "cedar_cone", "Cedar Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
{"willow", "Willow Tree"},
{"rubber_tree", "Rubber Tree"},
{"fir", "Douglas Fir", "fir_cone", "Fir Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8 },
{"jungletree", "Jungle Tree", nil, nil, nil, nil, "default_junglesapling.png" },
{"pine", "Pine Tree", "pine_cone", "Pine Cone", {-0.2, -0.5, -0.2, 0.2, 0, 0.2}, 0.8, "default_pine_sapling.png" },
{"acacia", "Acacia Tree", nil, nil, nil, nil, "default_acacia_sapling.png" },
}
@ -424,7 +424,9 @@ minetest.register_alias("moretrees:acacia_planks", "default:acacia_wood")
minetest.register_alias("moretrees:acacia_sapling", "default:acacia_sapling")
minetest.register_alias("moretrees:acacia_leaves", "default:acacia_leaves")
minetest.register_alias("moretrees:pine_trunk", "default:pine_tree")
minetest.register_alias("moretrees:pine_planks", "default:pine_wood")
minetest.register_alias("moretrees:pine_sapling", "default:pine_sapling")
minetest.register_alias("moretrees:pine_leaves", "default:pine_needles")
minetest.register_alias("moretrees:pine_trunk", "moretrees:cedar_trunk")
minetest.register_alias("moretrees:pine_planks", "moretrees:cedar_planks")
minetest.register_alias("moretrees:pine_sapling", "moretrees:cedar_sapling")
minetest.register_alias("moretrees:pine_leaves", "moretrees:cedar_leaves")
minetest.register_alias("moretrees:pine_cone", "moretrees:cedar_cone")
minetest.register_alias("moretrees:pine_nuts", "moretrees:cedar_nuts")

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

View File

@ -11,7 +11,7 @@ oak 0 to +10 + 4 to +16 n/a n/a dirt_with grass 332 15
sequoia 0 to +10 -30 to +50 n/a n/a dirt_with grass 333 10
birch +10 to +15 -20 to +10 n/a n/a dirt_with grass 334 5
spruce above +20 -20 to +10 n/a n/a dirt_with grass 335 10
pine n/a n/a water, 15 5 dirt_with grass 336 10
cedar n/a n/a water, 15 5 dirt_with grass 336 10
willow - 5 to + 5 n/a water, 15 5 dirt_with grass 337 20
acacia n/a n/a n/a n/a dirt_with_grass,
desert_sand n/a 15
@ -32,3 +32,6 @@ where the humidity is low (but not bone dry).
Fir trees appear in a snow biome only with older versions of SPlizard's Snow Biomes mod. In more recent versions,
these trees will not grow, due to an engine bug.
Cedar trees replace, and are identical to, the original pine trees, as the minetest default game now has (a completely
different type of) pine trees.

View File

@ -138,20 +138,20 @@ moretrees.spruce_model2={
fruit_chance=8
}
moretrees.pine_model={
moretrees.cedar_model={
axiom="FFFFFcccdddB///cFdFB////cFdFB///cFdFB///cFdFA///cFdFA///cFdFB[FF]f",
rules_a="[&&&TTTT[++^TFdd][--&TFd]//Tdd[+^Fd][--&Fdd]]",
rules_b="[&&&TTT[++^Fdd][--&Fdd]//dd[+^d][--&Fd]]",
rules_c="/",
rules_d="F",
trunk="default:pine_tree",
leaves="default:pine_needles",
trunk="moretrees:cedar_trunk",
leaves="moretrees:cedar_leaves",
angle=30,
iterations=2,
random_level=0,
trunk_type="single",
thin_branches=true,
fruit="moretrees:pine_cone",
fruit="moretrees:cedar_cone",
fruit_chance=8
}

View File

@ -4,32 +4,51 @@
[The Pixel Shadow](https://minetest.tv/) Minetest game servers have switched from "teleport" to "teleport request" via the *tps_teleport* mod. This mod makes it so players must send a request to another player in order to teleport to them. Before they will be allowed to do so, the player must accept the request. This prevents malicious users from teleporting to players' private areas without their permission. It also enhances the overall privacy of our services since if denied teleport, a player must instead travel to the area and "use the front door" so to speak... which might be a locked iron door.
##Privileges:
- *interact* Permits use of all tps_teleport commands
- *tp_admin* Admin priv allows admin to teleport anywhere without permission
- **interact** Permits use of /tpr and /tphr
- **tp_tpc** Permits use of /tpc
- **tp_admin** Admin priv allows admin to teleport anywhere without permission
Players may also teleport to coordinates, however if the area is protected, the teleport will be denied.
##Usage:
``` /tpr [playername] ```
Requests permission to teleport to another player, where [playername] is their exact name.
- **Description:** Requests permission to teleport to another player, where [playername] is their exact name.
- **Required Privilege:** interact
- **Example Usage:** */tpr RobbieF* - requests permission from RobbieF to teleport to them.
- **Notes:** Usernames are case-sensitive.
``` /tphr [playername] ```
Request permission to teleport another player to you.
- **Description:** Request permission to teleport another player to you.
- **Required Privilege:** interact
- **Example Usage:** /tphr RobbieF - requests RobbieF to teleport to you.
- **Notes:** Usernames are case-sensitive.
``` /tpc [x,y,z] ```
Teleport to coordinates. Honors area protection: if the area is protected, it must be owned by you in order to teleport to it.
- **Description:** Teleport to coordinates.
- **Required Privilege:** interact, tp_tpc
- **Notes:** Honors area protection: if the area is protected, it must be owned by you in order to teleport to it.
``` /tpj [axis] [distance] ```
- **Description:** Teleport a specified distance along a single specified axis. Useful for fast evading.
- **Required Privilege:** interact
- **Available Options for *axis*:** x, y, z
- **Example Usage:** '/tpj y 10' - teleport 10 nodes into the air.
``` /tpy ```
Accept a user's request to teleport to you or teleport you to them.
- **Description:** Accept a user's request to teleport to you or teleport you to them.
``` /tpn ```
Deny a user's request to teleport to youor teleport you to them.
- **Description:** Deny a user's request to teleport to youor teleport you to them.
###Please Note:
Players with the 'tp_admin' privilege override all the required privileges above, except 'interact'.
##Contributors:
- [RobbieF](https://minetest.tv) | [GitHub](https://github.com/Cat5TV)
- [DonBatman](https://github.com/donbatman)
- [NathanS21](http://nathansalapat.com/)
- [ChaosWormz](https://github.com/ChaosWormz)
- [Traxie21](https://github.com/Traxie21) The original creater of this mod
- All those who contributed to the original mod (please see init.lua)
@ -39,7 +58,9 @@ Deny a user's request to teleport to youor teleport you to them.
- Make it so tp_admin priv also overrides need for player to accept /tpr or /tphr
- Assess value in changing all tpr-based chat commands to one global command such as /tp to reduce the chance of confusion between tps_admin and the original mod (and also make it so people don't have to remember so many commands).
- Create a better sound effect for teleport and apply it to all teleport methods (not just /tpc)
- Creation of "evade" command /tpe which spawns the player in several random locations nearby before placing them at a final destination ~20 nodes away. For evading attack.
- Add a handful of coordinates which can be set in config and teleported to by anyone regardless of their protection status (eg., Spawn).
- Add a privilege which is required in order to use all commands. I haven't added such a thing since it hasn't been needed on our servers, but I imagine it would be useful on other servers who desire to grant these features only to specific players.
- Enhance privileges: Make /tpc require a separate privilege than the /tpr or /tphr commands.
- Create a new function for the actual setpos() to remove all the redundant code each time the player is moved and the sound played.
- Rewrite to place all chat commands into one single command much like how /teleport works.
- Add a [different] sound effect at the source coords when a TP takes place (so other players hear it when to teleport away).
- Make evade respect land: no teleporting inside land, but instead make sure player is standing on surface or in water.

View File

@ -5,7 +5,7 @@
local timeout_delay = 60
local version = "1.3"
local version = "1.5"
local tpr_list = {}
local tphr_list = {}
@ -64,8 +64,8 @@ local function tpr_send(sender, receiver)
return
end
--If paremeter is valid, Send teleport message and set the table.
if not minetest.get_player_by_name(receiver) then
minetest.chat_send_player(sender, "There is no player by that name. Keep in mind this is case sensitive, and the player must be online.")
return
end
@ -88,8 +88,8 @@ local function tphr_send(sender, receiver)
return
end
--If paremeter is valid, Send teleport message and set the table.
if not minetest.get_player_by_name(receiver) then
minetest.chat_send_player(sender, "There is no player by that name. Keep in mind this is case sensitive, and the player must be online.")
return
end
@ -212,6 +212,74 @@ local function tpr_accept(name, param)
parti2(target_coords)
end
-- Teleport Jump - Relative Position Teleportation by number of nodes
local function tpj(player,param)
local pname = minetest.get_player_by_name(player)
if param == "" then
minetest.chat_send_player(player, "Usage. <X|Y|Z> <Number>")
return false
end
local args = param:split(" ") -- look into this. Can it crash if the player does not have two parameters?
if #args < 2 then
minetest.chat_send_player(player, "Usage. <X|Y|Z> <Number>")
return false
end
if not tonumber(args[2]) then
return false, "Not a Number!"
end
-- Initially generate the target coords from the player's current position (since it's relative) and then perform the math.
local target_coords = minetest.get_player_by_name(player):getpos()
if args[1] == "x" then
target_coords["x"] = target_coords["x"] + tonumber(args[2])
pname:setpos(find_free_position_near(target_coords))
minetest.sound_play("whoosh", {pos = target_coords, gain = 0.5, max_hear_distance = 10})
parti2(target_coords)
elseif args[1] == "y" then
target_coords["y"] = target_coords["y"] + tonumber(args[2])
pname:setpos(find_free_position_near(target_coords))
minetest.sound_play("whoosh", {pos = target_coords, gain = 0.5, max_hear_distance = 10})
parti2(target_coords)
elseif args[1] == "z" then
target_coords["z"] = target_coords["z"] + tonumber(args[2])
pname:setpos(find_free_position_near(target_coords))
minetest.sound_play("whoosh", {pos = target_coords, gain = 0.5, max_hear_distance = 10})
parti2(target_coords)
else
minetest.chat_send_player(player,"Not a valid axis. Valid options are X, Y or Z.")
end
end
-- Evade
local function tpe(player)
minetest.chat_send_player(player, "EVADE!")
local mindistance = 15
local maxdistance = 50
local times = math.random(6,20) -- how many times to jump - minimum,maximum
local negatives = { '-','' } -- either it's this way or that way: the difference between -10 and 10
local options = { 'x', 'y', 'z' }
local isnegative = ''
local distance = 0
local axis = ''
local iteration = 0
for i = 1,times do
-- do this every 1 second
minetest.after(iteration,
function()
isnegative = negatives[math.random(2)] -- choose randomly whether this is this way or that
distance = isnegative .. math.random(mindistance,maxdistance) -- the distance to jump
axis = options[math.random(3)]
local command = axis .. " " .. distance
tpj(player,command)
end
)
iteration = iteration + 0.5
end
end
minetest.register_chatcommand("tpr", {
description = "Request teleport to another player",
params = "<playername> | leave playername empty to see help message",
@ -229,10 +297,23 @@ minetest.register_chatcommand("tphr", {
minetest.register_chatcommand("tpc", {
description = "Teleport to coordinates",
params = "<coordinates> | leave coordinates empty to see help message",
privs = {interact=true},
privs = {interact=true,tp_tpc=true},
func = tpc_send
})
minetest.register_chatcommand("tpj", {
description = "Teleport to relative position",
params = "<axis> <distance> | leave empty to see help message",
privs = {interact=true},
func = tpj
})
minetest.register_chatcommand("tpe", {
description = "Evade Enemy",
privs = {interact=true},
func = tpe
})
minetest.register_chatcommand("tpy", {
description = "Accept teleport requests from another player",
func = tpr_accept