After Width: | Height: | Size: 537 KiB |
|
@ -0,0 +1,233 @@
|
|||
|
||||
|
||||
Copyright (C) UjEdwin 2015
|
||||
|
||||
Mod by UjEdwin
|
||||
Version: 15
|
||||
|
||||
Rename this folder to diplazer
|
||||
|
||||
More info: https://forum.minetest.net/viewtopic.php?f=9&t=12395
|
||||
|
||||
Other info: type /dihelp in game
|
||||
|
||||
type /di_dropme to drop you self from mode7 and mode8 (or with diplazer_admin priv /di_dropall)
|
||||
|
||||
|
||||
Diplazer is a kind of lasergun / fast placing / diging tool, and it can even teleport, object teleporter and gravitygun, and more!!
|
||||
|
||||
To change modes: Use while sneaking / hold shift and left click
|
||||
To change modes backward: Use while sneaking and jump / hold shift+jump and left click
|
||||
Dipalzer works with pipeworks:nodebreaker
|
||||
|
||||
Diplazer works with pipeworks:nodebreaker (make smooth doors / traps and other)
|
||||
modes that are supported with nodebreakers
|
||||
:com & :gun womodes:1 2,4,5,12
|
||||
:admin & :adminno: 1 2 4 5 8 9 11 12
|
||||
place a block front of the breaker before it can use the tool
|
||||
|
||||
Change the amount in the init.lua file (diplazer_amount=15) admin have double
|
||||
|
||||
In place mode (1 & 3): In invetory: place stack with blocks / nodes to left side of the tool , the tool will use all of same type of nodes from the inventory, then the stack to left.
|
||||
In dig mode (2 & 4): In invetory: place stack-amout to dig.
|
||||
|
||||
The common version: diplazer:com (di_com)
|
||||
Toogleable
|
||||
Limeted (toogleable) [craft with meseblock to reload]
|
||||
can place / dig 7 blocks
|
||||
hit takes 10hp
|
||||
|
||||
The common version green: diplazer:comg (di_comg)
|
||||
Toogleable
|
||||
Limeted (toogleable) [craft with meseblock to reload]
|
||||
can place / dig 8 blocks
|
||||
have 2x uses
|
||||
hit takes 11hp
|
||||
|
||||
The common version cyan: diplazer:comg (di_comc)
|
||||
Toogleable
|
||||
Limeted (toogleable) [craft with meseblock to reload]
|
||||
can place / dig 10 blocks
|
||||
have 4x uses
|
||||
hit takes 12hp
|
||||
|
||||
The moderator version: diplazer:gun (di_gun)
|
||||
can place / dig 15 blocks
|
||||
can break unbreakable nodes
|
||||
teleport modes dont care about walls
|
||||
takes 10hp even if pvp is off
|
||||
require diplazer_gun priv to use
|
||||
|
||||
The admin version: diplazer:admin (di_ad)
|
||||
can place/dig 30 blocks
|
||||
can break unbreakable nodes
|
||||
teleport modes dont care about walls
|
||||
sets hp to 0 even if pvp is off
|
||||
dont empty your invetory
|
||||
require diplazer_admin priv to use
|
||||
|
||||
The admin version: diplazer:adminno (di_adno)
|
||||
same as diplazer:admin
|
||||
don't keep stuff on dig, can destroy locked stuff / special nodes
|
||||
require diplazer_admin priv to use
|
||||
|
||||
in mode: 1,3,11 you can use next mode if you hold right+left click instead of change
|
||||
|
||||
Mode1: Place front (can shoot lazer if no stack set)
|
||||
Mode2: Dig nodes front
|
||||
Mode3: Place up
|
||||
Mode4: Dig nodes down
|
||||
Mode5: Dig nodes 3x3
|
||||
Mode6: Teleport
|
||||
Mode7: Teleport Objects
|
||||
Mode8: Gravity gun (click to pickup, click it again to drop, click+right to throw it away [dont work on players])
|
||||
Mode9: Replace: stack to left replace with stack to right
|
||||
Mode10: AutoSwitch: using from all stacks in hotbar from left to right [place dipalzer to right for max use]
|
||||
Mode11: Place platform nXn
|
||||
Mode12: Dig platform nXn
|
||||
|
||||
Use mode8
|
||||
Use / left click - pick up something or a node
|
||||
Use / left click again - drop it (pick up somthing else make you automacly drop the corrent) (if you hold a 1 stack item it will be placed as node)
|
||||
Use & jump / left-click & jump if you hold a 1 stack item it will be droped, not placed)
|
||||
Place & use / hold right-click then right-left throw it faraway (can't throw away players)
|
||||
|
||||
Healing orbs:
|
||||
diplazer:orbc (di_orbc) slow / craftable
|
||||
diplazer:orbg (di_orbg) faster
|
||||
diplazer:orba (di_orba) sets full health
|
||||
|
||||
Switcherbox:
|
||||
diplazer:box (di_box)
|
||||
Change modes & reload using mese crystal / fragemnts
|
||||
|
||||
|
||||
Gravity manipuler:
|
||||
diplazer:grav (di_grav)
|
||||
change your gravity on use or restore (1 / 0.5 as default)
|
||||
|
||||
|
||||
Lazer blocks:
|
||||
decoration with light
|
||||
di_lcom
|
||||
di_lcomg
|
||||
di_lcomc
|
||||
di_lgun
|
||||
di_lad
|
||||
di_ladno
|
||||
|
||||
Vaccum block / anti teleportblock:
|
||||
diplazer:vaccum / di_vac
|
||||
Just vaccum, at same time it prevents players to teleport to inside.
|
||||
The blocks are invisible, and have to place somethine on it, or dig with any diplazer to remove.
|
||||
|
||||
You can easy toogle / functions in the init.lua
|
||||
|
||||
Changes log:
|
||||
V15
|
||||
Added: vaccumblock / anti teleportblock (diplazer:vaccum / di_vac)
|
||||
V14
|
||||
Added: /di_dropme
|
||||
Added: /di_dropall
|
||||
V13
|
||||
Added: diplazer:grav
|
||||
Added: dipalzer:comg
|
||||
Added: dipalzer:comc
|
||||
Fixed: more bugs
|
||||
V12.5
|
||||
Fixed: swiths modes in switcherbox
|
||||
V12.4
|
||||
Fixed: bug: switch to mode7
|
||||
V12.3
|
||||
Added: Help-Controls file
|
||||
Added: players with dipalzer:gun and have give: will not take stuff from inventory on use
|
||||
Fixed: lot of bugs
|
||||
Fixed: :com mode8 are disabled as default (glitch fix)
|
||||
V12.2
|
||||
Added: support for pipeworks:nodebreaker
|
||||
V12.1
|
||||
Fixed: crash when dig unknown blocks
|
||||
Fixed: :com cant place in water
|
||||
V12
|
||||
Added: lazerblocks
|
||||
Added: Limeted mode8 (:com)
|
||||
Added: change mode messages
|
||||
Added: /dihelp
|
||||
Added: left right+left to use next mode
|
||||
Fixed: error: mode9 repalce with empty
|
||||
Fixed: full inventory cant dig wirh no free slot
|
||||
Fixed: mode8: crash when pick up stuff
|
||||
Fixed: mode8: performance bug, shift mode while hold something
|
||||
V11.4
|
||||
Fixed: :com placing over unbreakabel blocks without colision
|
||||
V11.3
|
||||
Fixed: warning for :com
|
||||
Fixed: com: craft recipe for mode 11 & 12
|
||||
Added: better support in dig modes
|
||||
Added: setting: diplazer_Enable_gun_limitation
|
||||
V11.2
|
||||
Fixed: nil crasch
|
||||
Fixed: low but powerfull sound (mode12)
|
||||
V11.1:
|
||||
Added: security for mode 11 & 12
|
||||
Added: sounds for mode 11 & 12
|
||||
V11:
|
||||
Added: alias di_ad di_adno ... try /giveme di_box
|
||||
Added: placing modes can place in none-walkable blocks / water
|
||||
Added: mode11 & mode12: place & dig platform
|
||||
Fixed: inactived :gun instand of :com (diplazer_Enable_com=false)
|
||||
V10:
|
||||
Added: mode8: players can now throw stuff / mobs / items inside none-walkable blocks / water
|
||||
Added: mode8: water and lava will slowdown velocity of throwed stuff / mobs players
|
||||
Added: players using com:mode6 / 7 can now teleport into unwalkable blocks (like water)
|
||||
Added: players using com:mode7 cant cheat teleport stuff / players over other floors (bigger then 3x2) (like the problem with mode6)
|
||||
Added: diplazer:box can now reload using mese fragents (giving 10%)
|
||||
Fixed: performance (exit after use)
|
||||
Fixed: bug wont show amount of stack on chnage modes by hand
|
||||
V9:
|
||||
Added: admin/gun autorepair on use
|
||||
Added: diplazer:box (repair / set modes tool)
|
||||
Changed: craft with meecrystal to load instand of meseblock
|
||||
Changed: craft tool recipe will be front of the other
|
||||
Fixed: missing craft recipe for diplazer:com10
|
||||
Fixed: global teleport sound
|
||||
Fixed: limeted bug
|
||||
V8:
|
||||
Added: limted use for diplazer:com (toggleable), craft with meseblock for full use
|
||||
Added: mode10: autoswitch
|
||||
Fixed: teleport sound
|
||||
V7:
|
||||
Fixed: global variable errors
|
||||
Fixed: crash when throw someting & leave game
|
||||
Added: in mode 6 for diplazer:com - cant teleport through 3x3 floor.
|
||||
Added: diplazer_admin and diplazer_gun priv
|
||||
Added: configation toogle mode8, com, orbs
|
||||
V6:
|
||||
Added: mode 1 placing backward, if a node over the pointed
|
||||
Fixed: leaving player with 0 gravity when point a node
|
||||
Fixed: crash when pick up some objects
|
||||
V5:
|
||||
Added: mode 8 throwed and hitted object will be hurted (20hp) or throwed object hurts on hit a node (20hp)
|
||||
Fixed: error when trying to place none-node-stacks
|
||||
V4:
|
||||
Added: healing orbs
|
||||
Added: mode 8 can drop grabed nodes (hold jump & use)
|
||||
Added: mode 8 can place graped node / item stuck (if its 1 item in the stack)
|
||||
Added: mode 8 can grap nodes
|
||||
Added: mode 8 move selected object from nodes or to your backside
|
||||
Added: mode 8 sound effects
|
||||
Fixed: long distance sounds
|
||||
Fixed: directions for mode 8
|
||||
Fixed: error message when using mode 7
|
||||
Fixed: mode 7 positions
|
||||
Fixed: mode 8 inactive by power-saving-gate
|
||||
V3:
|
||||
Added: diplazer:com
|
||||
Added: Mode9 / replace
|
||||
Fixed: get error text when try to place none-nodes.
|
||||
V2:
|
||||
Added: support for protect areas
|
||||
Added: diplazer:adminno (don't giving drops on dig and able to delete locked stuff)
|
||||
Added: sets full health on use.
|
||||
V1:
|
||||
Mod is created
|
|
@ -0,0 +1,135 @@
|
|||
[][][][][][][][] = Inventory (example)
|
||||
B = some kind of block / node
|
||||
I = some kind of item (not a block)
|
||||
? = does not mather what is front of the tool
|
||||
D = Diplazer
|
||||
Dc = Diplazer:com / di_com (yelow)
|
||||
Dg = Diplazer:gun / di_gun (red)
|
||||
Da = Diplazer:admin / di_ad (purple)
|
||||
Dan = Diplazer:adminno / di_adno (orange)
|
||||
|
||||
It does not mather where you have dipalzer in the inventory, as long you have a block/item left of it
|
||||
The amount of the item/stack sets how many to place / dig in next to all modes
|
||||
When placing , it will automacly stop when hit a node with colision / walkable, or it will be replaced (like grass air water lava...) but not maptools nodes if using Dc
|
||||
You can hold rightclick+leftclick to use next mode instand of change modes in 1,3,11
|
||||
|
||||
point a player / mob
|
||||
Dc: hurts 10hp if pvp is off
|
||||
Dg: always hurts 10hp
|
||||
Da: always kills
|
||||
Dan: always kills
|
||||
|
||||
Dc: lost power on use
|
||||
Dg: autorepair on use
|
||||
Da: sets full health on use / autorepair on use
|
||||
Dan: sets full health on use / autorepair on use
|
||||
|
||||
Hold shift+leftclick to change modes
|
||||
Hold shift+jump+leftclick to change modes backwards
|
||||
|
||||
or / if you not have a keyboard, use switcher: dipalzer:box / di_box
|
||||
|
||||
================Mode1================
|
||||
|
||||
Place:
|
||||
Place nodes front of you
|
||||
if there is atleast 1 block over the pointed, it will place backwards
|
||||
Dc: taking from inventory
|
||||
Dg: taking from inventory if not have give
|
||||
Da:
|
||||
Dan:
|
||||
[][B][D][][][][][]
|
||||
|
||||
Shoot lazer:
|
||||
Dc: hurts 10hp if pvp is off / can pick up droped stuff / taking from inventory
|
||||
Dg: always hurts 10hp / can pick up droped stuff / taking from inventory if not have give
|
||||
Da: always kills / can pick up droped stuff
|
||||
Dan: always kills / destroy droped stuff
|
||||
[][?][D][][][][][]
|
||||
|
||||
|
||||
================Mode2================
|
||||
|
||||
Dig nodes front
|
||||
|
||||
Dc: keep stuff on dig, cant break unbreakable blocks
|
||||
Dg: keep stuff on dig
|
||||
Da: keep stuff on dig
|
||||
Dan: destroying any kind of node
|
||||
[][I][D][][][][][] or [][B][D][][][][][]
|
||||
|
||||
================Mode3================
|
||||
Place nodes up
|
||||
[][B][D][][][][][]
|
||||
|
||||
================Mode4================
|
||||
Dig nodes down
|
||||
[][B][D][][][][][] or [][I][D][][][][][]
|
||||
|
||||
================Mode5================
|
||||
Dig nodes 3x3 (up & down)
|
||||
it does not mather wht you have front of the
|
||||
[][?][D][][][][][]
|
||||
|
||||
================Mode6================
|
||||
Teleport you to a pinted block point a player / mob / droped ting hurts
|
||||
[][?][D][][][][][]
|
||||
|
||||
================Mode7================
|
||||
select a player / mobs / droped ting, then point a node to teleport it
|
||||
[][?][D][][][][][]
|
||||
|
||||
================Mode8================
|
||||
Dc is disable as default in this, or it can only hold a thing in 10s
|
||||
point something to pick it up
|
||||
point again to drop (single block will be placed a node, [do jump+point] to drop it)
|
||||
rightclick+leftclick to throw away
|
||||
if that you throwed hit someting it will be hurted 20hp (kills a player) even the hited object will be hurted
|
||||
[][?][D][][][][][]
|
||||
|
||||
================Mode9================
|
||||
Replacing block to left with block to right
|
||||
[][B][D][B][][][][]
|
||||
|
||||
================Mode10================
|
||||
Autoswitsh: will use from all slots in hotbar, until it hit a tool or emty slot from left to right
|
||||
[B][B][B][B][D][][][]
|
||||
|
||||
================Mode11================
|
||||
Place platform:
|
||||
this will always palce stack x stack (like 2=4, 5=25, 10=100 ...)
|
||||
to use more then 10 do /di_1112 to get access until next time you change mods or if someone leaves the game
|
||||
It will always place front then the other to left, this mking it automacly fill able space.
|
||||
[][B][D][][][][][]
|
||||
|
||||
================Mode12================
|
||||
Place platform:
|
||||
this will always palce stack x stack (like 2=4, 5=25, 10=100 ...)
|
||||
to use more then 10 do /di_1112 to get access until next time you change mods or if someone leaves the game
|
||||
[][B][D][][][][][]
|
||||
|
||||
|
||||
==================================================
|
||||
================Using pipeworks:nodebreaker================
|
||||
==================================================
|
||||
|
||||
|
||||
Nodebreakers will use the tool like player, but becaouse it not have space to add blocks, its limeted.
|
||||
Point somewhere in air to save info inside the tool, that can be used with a breaker.
|
||||
[][I/B][D][I/B][][][][]
|
||||
|
||||
The tool wont work in a breaker if there is no block fronf of it [Point]
|
||||
To make the breakers as usefull as possable, it will (place/dig 2 blocks front, and 1 block up) [Start] from the breaker like this
|
||||
|
||||
[Start][Node][Node]
|
||||
[Node][Point][nBrek]
|
||||
|
||||
Possable modes to use:
|
||||
|
||||
(1l = laer)
|
||||
|
||||
Dc: 1l,2,4,5,12
|
||||
Dg: 1l,2,4,5,12
|
||||
Dg: 1/1l,2,3,4,5,9,11,12 (with give)
|
||||
Da: 1/1l,2,3,4,5,9,11,12
|
||||
Dan: 1/1l,2,3,4,5,9,11,12
|
After Width: | Height: | Size: 104 KiB |
|
@ -0,0 +1 @@
|
|||
default
|
|
@ -0,0 +1,32 @@
|
|||
local function diplazer_ongravuse(itemstack, user, pointed_thing)
|
||||
local grav=user:get_physics_override().gravity
|
||||
|
||||
if grav==diplazer_restore_gravity_to then
|
||||
user:set_physics_override({gravity=diplazer_gravity_to_use,})
|
||||
minetest.sound_play("diplazer_gravon" , {pos = user:getpos(), gain = 2.0, max_hear_distance = 5,})
|
||||
else
|
||||
user:set_physics_override({gravity=diplazer_restore_gravity_to,})
|
||||
minetest.sound_play("diplazer_gravoff" , {pos = user:getpos(), gain = 2.0, max_hear_distance = 5,})
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.register_tool("diplazer:grav", {
|
||||
description = "Gravity manipuler",
|
||||
range = 0,
|
||||
inventory_image = "diplazer_grav.png",
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
diplazer_ongravuse(itemstack,user,pointed_thing)
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "diplazer:grav",
|
||||
recipe = {
|
||||
{"default:sand", "default:sand", "default:sand"},
|
||||
{"default:mese_crystal", "default:mese", "default:mese_crystal"},
|
||||
{"default:sand", "default:sand", "default:sand"},
|
||||
},
|
||||
})
|
|
@ -0,0 +1,286 @@
|
|||
local diaplzer_loadbox=0
|
||||
|
||||
local function diplazer_box(user,item,name,mode,pos)
|
||||
|
||||
local drops=1
|
||||
local admin=-1
|
||||
local meta={}
|
||||
local com
|
||||
mode=tonumber(mode)
|
||||
item=item:to_table()
|
||||
local tellmode=mode
|
||||
|
||||
if name:find(":comc",1)~=nil then
|
||||
drops=1
|
||||
admin=-1
|
||||
com=3
|
||||
elseif name:find(":comg",1)~=nil then
|
||||
drops=1
|
||||
admin=-1
|
||||
com=2
|
||||
elseif name:find(":com",1)~=nil then
|
||||
drops=1
|
||||
admin=-1
|
||||
com=1
|
||||
elseif name:find(":gun",1)~=nil then
|
||||
drops=1
|
||||
admin=0
|
||||
elseif name:find(":adminno",1)~=nil then
|
||||
drops=0
|
||||
admin=1
|
||||
elseif name:find(":admin",1)~=nil then
|
||||
drops=1
|
||||
admin=1
|
||||
end
|
||||
|
||||
|
||||
if minetest.check_player_privs(user, {diplazer_gun=true})==false and admin==0 then
|
||||
minetest.chat_send_player(user, "You need diplazer_gun priv to use this tool")
|
||||
print(user .. " tried to use diplazer:gun - missing priv: diplazer_gun")
|
||||
return {access=false}
|
||||
end
|
||||
|
||||
if minetest.check_player_privs(user, {diplazer_admin=true})==false and admin==1 then
|
||||
minetest.chat_send_player(user, "You need diplazer_admin priv to use this tool")
|
||||
print(user .. " tried to use diplazer:admin - missing priv: diplazer_admin")
|
||||
return {access=false}
|
||||
end
|
||||
|
||||
|
||||
if diplazer_Enable_com_mode8==false and admin==-1 then
|
||||
if mode==8 and admin==-1 then mode=9 end
|
||||
end
|
||||
|
||||
|
||||
have_1112access(user,1)
|
||||
|
||||
if mode>=13 and admin==-1 then mode=12 end
|
||||
if mode<=0 and admin==-1 then mode=1 end
|
||||
if mode==8 and admin==-1 and diplazer_Enable_mode8==false then mode=9 end
|
||||
if mode>=13 then mode=12 end
|
||||
if mode<=0 then mode=1 end
|
||||
|
||||
|
||||
if mode==11 and admin==-1 and diplazer_Enable_com_mode11==false then mode=1 minetest.chat_send_player(user,"Mode 11 is inactived for this tool") end
|
||||
if mode==12 and admin==-1 and diplazer_Enable_com_mode12==false then mode=2 minetest.chat_send_player(user,"Mode 12 is inactived for this tool") end
|
||||
if mode==11 and admin>=0 and diplazer_Enable_mode11==false then mode=1 minetest.chat_send_player(user,"Mode 11 is inactived for this tool") end
|
||||
if mode==12 and admin>=0 and diplazer_Enable_mode12==false then mode=2 minetest.chat_send_player(user,"Mode 12 is inactived for this tool") end
|
||||
|
||||
|
||||
meta["mode"]=mode
|
||||
mode=(meta["mode"])
|
||||
|
||||
if admin>-1 then
|
||||
|
||||
if admin==0 then
|
||||
item["name"]="diplazer:gun"..mode
|
||||
elseif drops==1 then
|
||||
item["name"]="diplazer:admin"..mode
|
||||
elseif drops==0 then
|
||||
item["name"]="diplazer:adminno"..mode
|
||||
end
|
||||
else
|
||||
if com==1 then item["name"]="diplazer:com"..mode end
|
||||
if com==2 then item["name"]="diplazer:comg"..mode end
|
||||
if com==3 then item["name"]="diplazer:comc"..mode end
|
||||
end
|
||||
|
||||
meta["mode"]=mode
|
||||
item["metadata"]=minetest.serialize(meta)
|
||||
|
||||
diplazer_T(user,tellmode,user,admin)
|
||||
minetest.sound_play("diplazer_mode" , {pos = pos, gain = 2.0, max_hear_distance = 5,})
|
||||
|
||||
return {access=true,item=item}
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"diplazer:box"},
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
|
||||
if diaplzer_loadbox==0 then return 0 end
|
||||
diaplzer_loadbox=0
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
|
||||
local item=inv:get_stack("dipinv", 1)
|
||||
local name=item:get_name()
|
||||
local mode=meta:get_string("setmode")
|
||||
local repair=meta:get_string("rep")
|
||||
|
||||
if repair=="1" and inv:get_stack("diprep", 1):is_empty()==false and inv:get_stack("dipinv", 1):is_empty()==false then
|
||||
if item:get_wear()>0 then
|
||||
|
||||
|
||||
if inv:get_stack("diprep", 1):get_name()=="default:mese_crystal" then
|
||||
item:set_wear(0)
|
||||
inv:remove_item("diprep","default:mese_crystal 1")
|
||||
end
|
||||
if inv:get_stack("diprep", 1):get_name()=="default:mese_crystal_fragment" then
|
||||
local wer=item:get_wear()-(65535/9)
|
||||
if wer<0 then wer=0 end
|
||||
item:set_wear(wer)
|
||||
inv:remove_item("diprep","default:mese_crystal_fragment 1")
|
||||
end
|
||||
|
||||
inv:remove_item("diprep","default:mese_crystal 1")
|
||||
inv:set_stack("dipinv", 1,item)
|
||||
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
if repair=="1" then
|
||||
meta:set_string("rep","0")
|
||||
return 0
|
||||
end
|
||||
|
||||
|
||||
|
||||
if (item:is_empty()) or mode==0 then return false end
|
||||
|
||||
local user=meta:get_string("owner")
|
||||
local tool=diplazer_box(user,item,name,mode,pos)
|
||||
if tool.access==true then
|
||||
inv:set_stack("dipinv", 1,tool.item)
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
local function diplazer_inv(meta,placer,pos,tt)
|
||||
local fmeta = minetest.get_meta(pos)
|
||||
fmeta:set_string("formspec",
|
||||
"size[8,9]" ..
|
||||
"list[context;dipinv;2,1;1,1;]" ..
|
||||
"list[context;diprep;2,2.5;1,1;]" ..
|
||||
"button[1.8,3.5; 1.5,1;dip_rep;Load]" ..
|
||||
"button[0,0; 1.5,1;dip_hlp;Help]" ..
|
||||
"list[context;main;0,0;8,4;]" ..
|
||||
"list[current_player;main;0,5;8,4;]" ..
|
||||
"button[5,0; 1.5,1;dip_cm1;Mode 1]" ..
|
||||
"button[6.5,0; 1.5,1;dip_cm2;Mode 2]" ..
|
||||
"button[5,1; 1.5,1;dip_cm3;Mode 3]" ..
|
||||
"button[6.5,1; 1.5,1;dip_cm4;Mode 4]" ..
|
||||
"button[5,2; 1.5,1;dip_cm5;Mode 5]" ..
|
||||
"button[6.5,2; 1.5,1;dip_cm6;Mode 6]" ..
|
||||
"button[5,3; 1.5,1;dip_cm7;Mode 7]" ..
|
||||
"button[6.5,3; 1.5,1;dip_cm8;Mode 8]" ..
|
||||
"button[5,4; 1.5,1;dip_cm9;Mode 9]" ..
|
||||
"button[6.5,4; 1.5,1;dip_cm10;Mode 10]" ..
|
||||
"button[3.5,0; 1.5,1;dip_cm11;Mode 11]" ..
|
||||
"button[3.5,1; 1.5,1;dip_cm12;Mode 12]")
|
||||
fmeta:set_string("infotext", "Diplazer switcher (owned by: " .. placer:get_player_name() .. ")")
|
||||
if tt==1 then
|
||||
fmeta:set_string("infotext", "Diplazer switcher")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
minetest.register_node("diplazer:box", {
|
||||
description = "Diplazer box",
|
||||
tiles = {
|
||||
"default_steel_block.png^diplazer_boxtop.png",
|
||||
"default_steel_block.png",
|
||||
"default_steel_block.png^diplazer_boxside.png",
|
||||
"default_steel_block.png^diplazer_boxside.png",
|
||||
"default_steel_block.png^diplazer_boxside.png",
|
||||
"default_steel_block.png^diplazer_boxpanel.png",},
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds=default.node_sound_stone_defaults(),
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("owner", placer:get_player_name())
|
||||
meta:set_string("rep", "0")
|
||||
meta:set_int("state", 0)
|
||||
diplazer_inv(meta,placer,pos,0)
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("dipinv", 1)
|
||||
inv:set_size("diprep", 1)
|
||||
meta:set_string("setmode", "0")
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local meta=minetest.get_meta(pos)
|
||||
local name=stack:get_name()
|
||||
if player:get_player_name()~=meta:get_string("owner") then
|
||||
return 0
|
||||
end
|
||||
if listname=="dipinv" and name:find("diplazer:orb")==nil and name:find("diplazer:box")==nil and name:find("diplazer:")~=nil then
|
||||
return 1
|
||||
end
|
||||
if listname=="diprep" and (name=="default:mese_crystal" or name=="default:mese_crystal_fragment") then
|
||||
return stack:get_count()
|
||||
end
|
||||
return 0
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if player:get_player_name() ~= meta:get_string("owner") then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end,
|
||||
can_dig = function(pos, player)
|
||||
local meta=minetest.get_meta(pos)
|
||||
local inv=meta:get_inventory()
|
||||
if player:get_player_name() ~= meta:get_string("owner") then
|
||||
return false
|
||||
end
|
||||
return inv:get_stack("dipinv", 1):is_empty() and inv:get_stack("diprep", 1):is_empty()
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
return 0
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if sender:get_player_name() ~= meta:get_string("owner") then
|
||||
return false
|
||||
end
|
||||
if fields.dip_rep then meta:set_string("rep", "1") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm1 then meta:set_string("setmode", "1") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm2 then meta:set_string("setmode", "2") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm3 then meta:set_string("setmode", "3") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm4 then meta:set_string("setmode", "4") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm5 then meta:set_string("setmode", "5") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm6 then meta:set_string("setmode", "6") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm7 then meta:set_string("setmode", "7") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm8 then meta:set_string("setmode", "8") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm9 then meta:set_string("setmode", "9") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm10 then meta:set_string("setmode", "10") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm11 then meta:set_string("setmode", "11") diaplzer_loadbox=1 end
|
||||
if fields.dip_cm12 then meta:set_string("setmode", "12") diaplzer_loadbox=1 end
|
||||
|
||||
|
||||
if fields.dip_hlp then
|
||||
minetest.chat_send_player(sender:get_player_name(), "Place a blockstack left of the tool to place or dig with . (The amount of stack sets how many to place / dig [itmes works too if you will dig]) (insert mese crystal or framgents to load the tool)")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "diplazer:box",
|
||||
recipe = {
|
||||
{"default:mese_crystal", "default:cobble", "default:steel_ingot"},
|
||||
}
|
||||
})
|
|
@ -0,0 +1,55 @@
|
|||
diplazer_Tele={}
|
||||
diplazer_UserTele={}
|
||||
diplazer_1112access={}
|
||||
diplazer_com_mode8_users={}
|
||||
diplazer_pipeworks=0
|
||||
|
||||
diplazer_USEGgunIfObHit_obj={}
|
||||
diplazer_USEGgunIfObHit_obj.count=0
|
||||
diplazer_USEGgunIfObHit_obj.limedto=25
|
||||
diplazer_USEGgunIfObHit_obj.on=0
|
||||
diplazer_USEGgunIfObHit_obj.object=0
|
||||
diplazer_USEGgunIfObHit_obj.userdir=0
|
||||
diplazer_USEGgunIfObHit_obj.user=0
|
||||
diplazer_USEGgunIfObHit_obj.objectposs=0
|
||||
diplazer_USEGgunIfObHit_obj.admin=-1
|
||||
|
||||
GGunTime=0
|
||||
GGunInUse=0
|
||||
|
||||
if minetest.get_modpath("pipeworks") then diplazer_pipeworks=1 end
|
||||
|
||||
|
||||
|
||||
|
||||
dofile(minetest.get_modpath("diplazer") .. "/settings.lua")
|
||||
dofile(minetest.get_modpath("diplazer") .. "/base.lua")
|
||||
dofile(minetest.get_modpath("diplazer") .. "/dipbox.lua")
|
||||
|
||||
if diplazer_Enable_gravity==true then
|
||||
dofile(minetest.get_modpath("diplazer") .. "/digrav.lua")
|
||||
end
|
||||
|
||||
|
||||
minetest.register_alias("di_vac", "diplazer:vacuum")
|
||||
minetest.register_alias("di_grav", "diplazer:grav")
|
||||
minetest.register_alias("di_com", "diplazer:com")
|
||||
minetest.register_alias("di_comg", "diplazer:comg")
|
||||
minetest.register_alias("di_comc", "diplazer:comc")
|
||||
minetest.register_alias("di_gun", "diplazer:gun")
|
||||
minetest.register_alias("di_ad", "diplazer:admin")
|
||||
minetest.register_alias("di_adno", "diplazer:adminno")
|
||||
minetest.register_alias("di_box", "diplazer:box")
|
||||
minetest.register_alias("di_orba", "diplazer:orba")
|
||||
minetest.register_alias("di_orbg", "diplazer:orbg")
|
||||
minetest.register_alias("di_orbc", "diplazer:orbc")
|
||||
minetest.register_alias("di_lcom", "diplazer:lazerblock_com")
|
||||
minetest.register_alias("di_lcomg", "diplazer:lazerblock_com")
|
||||
minetest.register_alias("di_lcomc", "diplazer:lazerblock_com")
|
||||
minetest.register_alias("di_lgun", "diplazer:lazerblock_gun")
|
||||
minetest.register_alias("di_lad", "diplazer:lazerblock_admin")
|
||||
minetest.register_alias("di_ladno", "diplazer:lazerblock_adminno")
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
--priv for moderator: diplazer_gun
|
||||
--priv for admin: diplazer_admin
|
||||
|
||||
diplazer_Enable_mode8=true --gravitygun takes little more when used, then its off again
|
||||
diplazer_Enable_mode11=true -- place platfom, can make massive effects at 1 use
|
||||
diplazer_Enable_mode12=true -- dig platfom, can make massive effects at 1 use
|
||||
diplazer_mode11_max=30 --limetation for mode12 30x30 as default
|
||||
diplazer_mode12_max=30
|
||||
diplazer_Enable_warning_mode11_12=true
|
||||
diplazer_warning_mode11_12=11
|
||||
|
||||
diplazer_Enable_com_mode8=false
|
||||
diplazer_Enable_com_mode11=true
|
||||
diplazer_Enable_com_mode12=true --common players can dig up to 7x7 nodes at same time
|
||||
|
||||
diplazer_Enable_gravity=true
|
||||
diplazer_gravity_to_use=0.5
|
||||
diplazer_Enable_orbs=true
|
||||
diplazer_Enable_com=true
|
||||
diplazer_Enable_com_limeted=true
|
||||
diplazer_Enable_com_limeted_uses=150
|
||||
diplazer_com_mode8_time=10
|
||||
|
||||
|
||||
|
||||
|
||||
diplazer_Enable_gun_limitation=true -- removes stuff from inventory from :gun users
|
||||
|
||||
diplazer_orb={admin=150, gun=250,com=500, atime=0, gtime=0, ctime=0}
|
||||
diplazer_restore_gravity_to=1
|
||||
diplazer_UpdateGGun=3 -- (from 1 to 10 [interval])
|
||||
diplazer_amount=15
|
||||
diplazer_com_amount=7
|
After Width: | Height: | Size: 886 B |
After Width: | Height: | Size: 190 B |
After Width: | Height: | Size: 199 B |
After Width: | Height: | Size: 196 B |
After Width: | Height: | Size: 194 B |
After Width: | Height: | Size: 190 B |
After Width: | Height: | Size: 192 B |
After Width: | Height: | Size: 193 B |
After Width: | Height: | Size: 195 B |
After Width: | Height: | Size: 197 B |
After Width: | Height: | Size: 196 B |
After Width: | Height: | Size: 195 B |
After Width: | Height: | Size: 199 B |
After Width: | Height: | Size: 272 B |
After Width: | Height: | Size: 247 B |
After Width: | Height: | Size: 219 B |
After Width: | Height: | Size: 937 B |
After Width: | Height: | Size: 930 B |
After Width: | Height: | Size: 891 B |
After Width: | Height: | Size: 317 B |
After Width: | Height: | Size: 144 B |
After Width: | Height: | Size: 144 B |
After Width: | Height: | Size: 144 B |
After Width: | Height: | Size: 144 B |
After Width: | Height: | Size: 144 B |
After Width: | Height: | Size: 144 B |
After Width: | Height: | Size: 292 B |
After Width: | Height: | Size: 207 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 316 B |
After Width: | Height: | Size: 231 B |
After Width: | Height: | Size: 257 B |
After Width: | Height: | Size: 236 B |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 250 B |
After Width: | Height: | Size: 245 B |
After Width: | Height: | Size: 218 B |
After Width: | Height: | Size: 332 B |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 256 B |
After Width: | Height: | Size: 913 B |
After Width: | Height: | Size: 910 B |
|
@ -8,3 +8,4 @@ Tip: You can use worms, but also fish as bait, with them you will have more chan
|
|||
Tip: The u_skins mod allow you to change the appearance of your avatar through the icon at the bottom right of your inventory.
|
||||
Tip: The inbox mod allow you to transmit messages to offline players, use the command "/mail <name> <msg>".
|
||||
Don't hesitate to send us an issue from our Github if you want us to resolve a problem you found!
|
||||
Tip: Use the diplazer tools to build more easily!
|
||||
|
|
|
@ -27,6 +27,7 @@ load_mod_colouredstonebricks = true
|
|||
load_mod_columnia = true
|
||||
load_mod_connected_chests = true
|
||||
load_mod_darkage = true
|
||||
load_mod_diplazer = true
|
||||
load_mod_dryplants = true
|
||||
load_mod_fail = true
|
||||
load_mod_fences = true
|
||||
|
|