summaryrefslogtreecommitdiff
path: root/prefab/other.lua
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2016-06-07 07:50:23 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2016-06-07 07:50:39 -0400
commit1f48a4087c6844f5d113343e97a87c183bbdc369 (patch)
treee8a37189655c84cbec1db9ae3257560dc706dc51 /prefab/other.lua
parent842a6d94916296912aba934b2b23d59244ea463b (diff)
downloaddreambuilder_modpack-1f48a4087c6844f5d113343e97a87c183bbdc369.tar
dreambuilder_modpack-1f48a4087c6844f5d113343e97a87c183bbdc369.tar.gz
dreambuilder_modpack-1f48a4087c6844f5d113343e97a87c183bbdc369.tar.bz2
dreambuilder_modpack-1f48a4087c6844f5d113343e97a87c183bbdc369.tar.xz
dreambuilder_modpack-1f48a4087c6844f5d113343e97a87c183bbdc369.zip
replace prefab mod with cheapie's prefab_redo version
Diffstat (limited to 'prefab/other.lua')
-rw-r--r--prefab/other.lua169
1 files changed, 0 insertions, 169 deletions
diff --git a/prefab/other.lua b/prefab/other.lua
deleted file mode 100644
index 4bb4b3e..0000000
--- a/prefab/other.lua
+++ /dev/null
@@ -1,169 +0,0 @@
-
---
--- Helper functions
---
-
-local function is_water(pos)
- local nn = minetest.get_node(pos).name
- return minetest.get_item_group(nn, "water") ~= 0
-end
-
-local function get_sign(i)
- if i == 0 then
- return 0
- else
- return i/math.abs(i)
- end
-end
-
-local function get_velocity(v, yaw, y)
- local x = math.cos(yaw)*v
- local z = math.sin(yaw)*v
- return {x=x, y=y, z=z}
-end
-
-local function get_v(v)
- return math.sqrt(v.x^2+v.z^2)
-end
-
---
--- Cart entity
---
-
-local boat = {
- physical = true,
- collisionbox = {-2.4,-1,-2.4, 2.4,2.0,2.4},
- visual = "mesh",
- visual_size = {x=2.0,y=2.0},
- mesh = "barge.obj",
- textures = {"prefab_concrete_boat.png"},
-
- driver = nil,
- v = 0,
-}
-
-function boat:on_rightclick(clicker)
- if not clicker or not clicker:is_player() then
- return
- end
- if self.driver and clicker == self.driver then
- self.driver = nil
- clicker:set_detach()
- elseif not self.driver then
- self.driver = clicker
- clicker:set_attach(self.object, "", {x=0,y=5,z=0}, {x=0,y=0,z=0})
- self.object:setyaw(clicker:get_look_yaw())
- end
-end
-
-function boat:on_activate(staticdata, dtime_s)
- self.object:set_armor_groups({immortal=1})
- if staticdata then
- self.v = tonumber(staticdata)
- end
-end
-
-function boat:get_staticdata()
- return tostring(v)
-end
-
-function boat:on_punch(puncher, time_from_last_punch, tool_capabilities, direction)
- self.object:remove()
- if puncher and puncher:is_player() then
- puncher:get_inventory():add_item("main", "prefab:boat")
- end
-end
-
-function boat:on_step(dtime)
- self.v = get_v(self.object:getvelocity())*get_sign(self.v)
- if self.driver then
- local ctrl = self.driver:get_player_control()
- if ctrl.up then
- self.v = self.v+0.03
- end
- if ctrl.down then
- self.v = self.v-0.03
- end
- if ctrl.left then
- self.object:setyaw(self.object:getyaw()+math.pi/120+dtime*math.pi/120)
- end
- if ctrl.right then
- self.object:setyaw(self.object:getyaw()-math.pi/120-dtime*math.pi/120)
- end
- end
- local s = get_sign(self.v)
- self.v = self.v - 0.02*s
- if s ~= get_sign(self.v) then
- self.object:setvelocity({x=0, y=0, z=0})
- self.v = 0
- return
- end
- if math.abs(self.v) > 4.5 then
- self.v = 4.5*get_sign(self.v)
- end
-
- local p = self.object:getpos()
- p.y = p.y-0.5
- if not is_water(p) then
- if minetest.registered_nodes[minetest.get_node(p).name].walkable then
- self.v = 0
- end
- self.object:setacceleration({x=0, y=-10, z=0})
- self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y))
- else
- p.y = p.y+1
- if is_water(p) then
- self.object:setacceleration({x=0, y=3, z=0})
- local y = self.object:getvelocity().y
- if y > 2 then
- y = 2
- end
- if y < 0 then
- self.object:setacceleration({x=0, y=10, z=0})
- end
- self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), y))
- else
- self.object:setacceleration({x=0, y=0, z=0})
- if math.abs(self.object:getvelocity().y) < 1 then
- local pos = self.object:getpos()
- pos.y = math.floor(pos.y)+0.5
- self.object:setpos(pos)
- self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), 0))
- else
- self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.object:getvelocity().y))
- end
- end
- end
-end
-
-minetest.register_entity("prefab:boat", boat)
-
-
-minetest.register_craftitem("prefab:boat", {
- description = "Prefab Concrete Barge",
- inventory_image = "prefab_boat_inventory.png",
- wield_scale = {x=2, y=2, z=1},
- liquids_pointable = true,
-
- on_place = function(itemstack, placer, pointed_thing)
- if pointed_thing.type ~= "node" then
- return
- end
- if not is_water(pointed_thing.under) then
- return
- end
- pointed_thing.under.y = pointed_thing.under.y-0.5
- minetest.add_entity(pointed_thing.under, "prefab:boat")
- itemstack:take_item()
- return itemstack
- end,
-})
-
-minetest.register_craft({
- output = "prefab:boat",
- recipe = {
- {"", "", ""},
- {"prefab:concrete_slab", "", "prefab:concrete_slab"},
- {"prefab:concrete_slab", "prefab:concrete_slab", "prefab:concrete_slab"},
- },
-})