Converted all remaining Zeus mods to venus except base.

master
Nicole Collings 2020-02-11 14:33:48 -08:00
parent a1b68b0501
commit 41719bc67d
30 changed files with 278 additions and 274 deletions

View File

@ -1,5 +1,3 @@
print("Hello from basictools")
zepha.register_item("@aurailus:basictools:flint_pickaxe", {
name = "Flint Pick",
textures = {

View File

@ -12,8 +12,8 @@ zepha.register_block("zeus:default:bush_stem", {
axe = 0.1
},
drop = "zeus:default:wood",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:bush_stem"].drop});
end
}
})

View File

@ -7,8 +7,8 @@ zepha.register_block("zeus:default:cobblestone", {
pick = 3
},
drop = "zeus:default:cobblestone",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:cobblestone"].drop});
end
}
})

View File

@ -8,8 +8,8 @@ zepha.register_block("zeus:default:dirt", {
pick = 2
},
drop = "zeus:materials:rock",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:dirt"].drop});
end
}
})

View File

@ -19,10 +19,10 @@ zepha.register_block("zeus:default:grass", {
pick = 2
},
drop = "zeus:default:dirt",
on_break = function(pos)
on_break = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:grass"].drop});
end
}
})
zepha.register_block("zeus:default:grass_slab", {
@ -38,11 +38,11 @@ zepha.register_block("zeus:default:grass_slab", {
"biometint(zeus:default:grass_floating)",
},
culls = false,
-- lowdef_textures = {
-- "zeus:default:grass_top",
-- "zeus:default:dirt",
-- "zeus:default:grass_side_ld"
-- },
## lowdef_textures = {
## "zeus:default:grass_top",
## "zeus:default:dirt",
## "zeus:default:grass_side_ld"
## },
toughness = {
hand = 3,
shovel = 1,
@ -55,8 +55,8 @@ zepha.register_block("zeus:default:grass_slab", {
{0, 0, 0, 1, 0.5, 1}
},
drop = "zeus:default:grass_slab",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:grass_slab"].drop});
end
}
})

View File

@ -15,8 +15,8 @@ zepha.register_block("zeus:default:leaves", {
axe = 0.2,
},
drop = "zeus:materials:stick",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:leaves"].drop});
end
}
})

View File

@ -8,8 +8,8 @@ zepha.register_block("zeus:default:sand", {
pick = 2
},
drop = "zeus:default:sand",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:sand"].drop});
end
}
})

View File

@ -1,3 +1,4 @@
zepha.register_block("zeus:default:sandstone", {
name = "Sandstone",
model = "base:block",
@ -7,8 +8,8 @@ zepha.register_block("zeus:default:sandstone", {
pick = 3
},
drop = "zeus:default:sand",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:sandstone"].drop});
end
}
})

View File

@ -7,8 +7,8 @@ zepha.register_block("zeus:default:stone", {
pick = 3
},
drop = "zeus:default:cobblestone",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:stone"].drop});
end
}
})

View File

@ -1,4 +1,4 @@
for i=1,5,1 do
for i = 1, 5, 1 {
zepha.register_block("zeus:default:tallgrass_" .. i, {
culls = false,
solid = false,
@ -14,11 +14,11 @@ for i=1,5,1 do
toughness = {
hand = 0
},
on_break_client = function(pos)
if math.random() > 0.8 then
on_break_client = fn(pos) {
if (math.random() > 0.8) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = "zeus:materials:plant_fibre"});
end
end
}
}
})
end
}

View File

@ -11,8 +11,8 @@ zepha.register_block("zeus:default:wood", {
axe = 3,
},
drop = "zeus:default:wood",
on_break_client = function(pos)
on_break_client = fn(pos) {
zepha.add_entity("zeus:default:dropped_item", vector.add(pos, v(0.5)),
{item = zepha.registered_blocks["zeus:default:wood"].drop});
end
}
})

View File

@ -1,30 +0,0 @@
local friendly = false
zepha.register_entity("zeus:default:bee", {
display = "model",
display_object = "zeus:default:bee",
display_texture = "zeus:default:bee",
on_create = function(self)
self.object:set_scale(1/12)
self.object.anims:define({
fly = {1, 45}
})
self.object.anims:set_anim("fly"):play()
end,
on_update = function(self, delta)
self.object:set_pos({
x = self.object.pos.x + 0.03 * math.sin(math.rad(self.object.yaw + 90)),
y = self.object.pos.y,
z = self.object.pos.z + 0.03 * math.cos(math.rad(self.object.yaw + 90))})
self.object.yaw = self.object.yaw + 2
end
})
zepha.register_keybind("zeus:default:spawn_bee", {
description = "Spawn Bee",
default = zepha.keys.b,
on_press = function() zepha.add_entity("zeus:default:bee", vector.add(zepha.player.pos, v{0, 1.7, 0})) end
})

View File

@ -0,0 +1,31 @@
local friendly = false
zepha.register_entity("zeus:default:bee", {
display = "model",
display_object = "zeus:default:bee",
display_texture = "zeus:default:bee",
on_create = fn(self) {
self.object.scale = 1/12
self.object.anims:define({
fly = {1, 45}
}):set_anim("fly"):play()
},
on_update = fn(self, delta) {
self.object.pos = v(
self.object.pos.x + 0.03 * math.sin(math.rad(self.object.yaw + 90)),
self.object.pos.y,
self.object.pos.z + 0.03 * math.cos(math.rad(self.object.yaw + 90))
)
self.object.yaw += 2
}
})
zepha.register_keybind("zeus:default:spawn_bee", {
description = "Spawn Bee",
default = zepha.keys.b,
on_press = fn() {
zepha.add_entity("zeus:default:bee", vector.add(zepha.player.pos, v(0, 1.7, 0)))
}
})

View File

@ -1,94 +0,0 @@
local function collides(entity)
return zepha.get_block({
x = math.floor(entity.pos.x),
y = math.floor(entity.pos.y - 0.5),
z = math.floor(entity.pos.z)}) ~= "air"
end
zepha.register_entity("zeus:default:dropped_item", {
display = "gameobject",
display_object = "zeus:default:stone",
on_create = function(self, static)
static = static or {}
self.item = static.item or self.display_object
self.object:set_display_type("gameobject", self.item)
self.tick = 0
self.time = static.time or 0
self.speed = static.speed or 15
self.delete = false
self.scooping = false
local angle = math.random() * (math.pi*2)
local amp = (math.random() + 0.5) * 5
local x = math.sin(angle) * amp
local z = math.cos(angle) * amp
self.vel = static.vel or v{x, -85, z}
if not zepha.registered_blocks[self.item] then self.object.scale = 1/2
else self.object.scale = 1/3 end
end,
on_update = function(self, delta)
self.object.yaw = self.object.yaw + self.speed
if self.speed > 1 then self.speed = self.speed * 0.92 end
self.tick = self.tick + delta
if self.time > 5 * 60 then
zepha.remove_entity(self)
return
end
if self.scooping then return end
if not collides(self.object) then
self.vel.y = math.min(self.vel.y + 300 * delta, 480)
end
local iter = 1
while not collides(self.object) and iter <= math.abs(self.vel.y * delta) do
local interval = 0
if self.vel.y < 0 then interval = 1/16 else interval = -1/16 end
self.object.pos = vector.add(self.object.pos, v{0, interval, 0})
iter = iter + 0.25
end
self.object.pos = vector.add(self.object.pos, vector.multiply(v{self.vel.x, 0, self.vel.z}, delta))
self.vel.x = self.vel.x * 0.6
self.vel.z = self.vel.z * 0.6
self.object.visual_offset = v{0, math.sin(self.time * 2) / 8, 0}
if collides(self.object) then
self.vel.y = 0
self.time = self.time + delta
end
if self.tick > 0.15 then
self.tick = 0
if zepha.client then self:check_collect() end
end
end,
check_collect = function(self)
if vector.distance(zepha.player.pos, self.object.pos) < 2 then
self.object.pos = vector.add(zepha.player.pos, v{0, 0.90, 0})
self.scooping = true
zepha.delay(function()
zepha.remove_entity(self)
zepha.player:get_inventory():get_list("main"):add_stack({self.item, 1})
end, 2/20)
end
end,
on_serialize = function(self)
return {
vel = self.vel,
time = self.time,
speed = self.speed
}
end
})

View File

@ -0,0 +1,103 @@
fn collides(entity) {
return zepha.get_block({
x = math.floor(entity.pos.x),
y = math.floor(entity.pos.y - 0.5),
z = math.floor(entity.pos.z)}) ~= "air"
}
zepha.register_entity("zeus:default:dropped_item", {
display = "gameobject",
display_object = "zeus:default:stone",
on_create = fn(self, static) {
static = static or {}
self.item = static.item or self.display_object
self.object:set_display_type("gameobject", self.item)
self.tick = 0
self.time = static.time or 0
self.speed = static.speed or 15
self.delete = false
self.scooping = false
local angle = math.random() * (math.pi*2)
local amp = (math.random() + 0.5) * 5
local x = math.sin(angle) * amp
local z = math.cos(angle) * amp
self.vel = static.vel or v(x, -85, z)
if (not zepha.registered_blocks[self.item]) {
self.object.scale = 1/2
}
else {
self.object.scale = 1/3
}
},
on_update = fn(self, delta) {
self.object.yaw += self.speed
if (self.speed > 1) {
self.speed *= 0.92
}
self.tick += delta
if (self.time > 5 * 60) {
zepha.remove_entity(self)
return
}
if (self.scooping) { return }
if (not collides(self.object)) {
self.vel.y = math.min(self.vel.y + 300 * delta, 480)
}
local iter = 1
while (not collides(self.object) and iter <= math.abs(self.vel.y * delta)) {
local interval = 1/16
if (self.vel.y > 0) {
interval = -1/16
}
self.object.pos = vector.add(self.object.pos, v(0, interval, 0))
iter += 0.25
}
self.object.pos = vector.add(self.object.pos, vector.multiply(v(self.vel.x, 0, self.vel.z), delta))
self.vel.x *= 0.6
self.vel.z *= 0.6
self.object.visual_offset = v(0, math.sin(self.time * 2) / 8, 0)
if (collides(self.object)) {
self.vel.y = 0
self.time += delta
}
if (self.tick > 0.15) {
self.tick = 0
if (zepha.client) { self:check_collect() }
}
},
check_collect = fn(self) {
if (vector.distance(zepha.player.pos, self.object.pos) < 2) {
self.object.pos = vector.add(zepha.player.pos, v(0, 0.90, 0))
self.scooping = true
zepha.delay(() => {
zepha.remove_entity(self)
zepha.player:get_inventory():get_list("main"):add_stack({self.item, 1})
}, 2/20)
}
},
on_serialize = fn(self) {
return {
vel = self.vel,
time = self.time,
speed = self.speed
}
}
})

View File

@ -5,7 +5,7 @@ zepha.register_entity("zeus:default:rabbit", {
display_object = "zeus:default:rabbit",
display_texture = "zeus:default:rabbit",
on_create = function(self)
on_create = fn(self) {
self.object:set_scale(1/16)
self.object.anims:define({
@ -16,60 +16,66 @@ zepha.register_entity("zeus:default:rabbit", {
})
self.object.anims:set_anim("run"):play()
end,
on_update = function(self, delta)
},
on_update = fn(self, delta) {
local dist = vector.distance(zepha.player.pos, self.object.pos)
if friendly then
if dist > 3 and dist < 7 and not self.targeting then
if (friendly) {
if (dist > 3 and dist < 7 and not self.targeting) {
self.targeting = true
self.object.anims:set_anim("run"):play()
elseif dist < 2 or dist > 7 and self.targeting then
elseif (dist < 2 or dist > 7 and self.targeting) {
self.targeting = false
self.object.anims:set_anim("idle"):play()
end
}
if self.targeting then
self.object.pos = v {
if (self.targeting) {
self.object.pos = v(
self.object.pos.x + 0.08 * math.sin(math.rad(self.object.yaw)),
self.object.pos.y,
self.object.pos.z + 0.08 * math.cos(math.rad(self.object.yaw))
}
)
self.object.yaw = math.deg(math.atan2(zepha.player.pos.x - self.object.pos.x, zepha.player.pos.z - self.object.pos.z))
end
else
if dist < 5 and not self.targeting then
}
}
else {
if (dist < 5 and not self.targeting) {
self.targeting = true
self.object.anims:set_anim("run"):play()
elseif dist > 6 and self.targeting then
elseif (dist > 6 and self.targeting) {
self.targeting = false
self.object.anims:set_anim("idle"):play()
end
}
if self.targeting then
self.object.pos = v {
if (self.targeting) {
self.object.pos = v(
self.object.pos.x + 0.08 * math.sin(math.rad(self.object.yaw)),
self.object.pos.y,
self.object.pos.z + 0.08 * math.cos(math.rad(self.object.yaw))
}
)
self.object.yaw = math.deg(math.atan2(zepha.player.pos.x - self.object.pos.x, zepha.player.pos.z - self.object.pos.z)) + 180
else
}
else {
self.object.yaw = math.deg(math.atan2(zepha.player.pos.x - self.object.pos.x, zepha.player.pos.z - self.object.pos.z))
end
end
end
}
}
}
})
zepha.register_keybind("zeus:default:spawn_rabbit", {
description = "Spawn Rabbit",
default = zepha.keys.y,
on_press = function() zepha.add_entity("zeus:default:rabbit", zepha.player.pos) end
on_press = fn() {
zepha.add_entity("zeus:default:rabbit", zepha.player.pos)
}
})
zepha.register_keybind("zeus:default:change_rabbit_behavior", {
description = "Change rabbit behavior",
default = zepha.keys.u,
on_press = function() friendly = not friendly end
on_press = fn() {
friendly = not friendly
}
})

View File

@ -5,7 +5,7 @@ zepha.register_entity("zeus:default:raven", {
display_object = "zeus:default:bird",
display_texture = "zeus:default:raven",
on_create = function(self)
on_create = fn(self) {
self.object:set_scale(1/16)
self.object.anims:define({
@ -15,34 +15,37 @@ zepha.register_entity("zeus:default:raven", {
})
self.object.anims:set_anim("hover"):play()
end,
on_update = function(self, delta)
},
on_update = fn(self, delta) {
local dist = vector.distance(zepha.player.pos, self.object.pos)
if dist < 5 and not self.targeting then
if (dist < 5 and not self.targeting) {
self.targeting = true
self.object.anims:set_anim("fly"):play()
elseif dist > 6 and self.targeting then
elseif (dist > 6 and self.targeting) {
self.targeting = false
self.object.anims:set_anim("hover"):play()
end
}
if self.targeting then
self.object.pos = v {
if (self.targeting) {
self.object.pos = v(
self.object.pos.x + 0.08 * math.sin(math.rad(self.object.yaw)),
self.object.pos.y,
self.object.pos.z + 0.08 * math.cos(math.rad(self.object.yaw))
}
)
self.object.yaw = math.deg(math.atan2(zepha.player.pos.x - self.object.pos.x, zepha.player.pos.z - self.object.pos.z)) + 180
else
}
else {
self.object.yaw = math.deg(math.atan2(zepha.player.pos.x - self.object.pos.x, zepha.player.pos.z - self.object.pos.z))
end
end
}
}
})
zepha.register_keybind("zeus:default:spawn_raven", {
description = "Spawn Raven",
default = zepha.keys.z,
on_press = function() zepha.add_entity("zeus:default:raven", vector.add(zepha.player.pos, v{0, 1.7, 0})) end
on_press = fn() {
zepha.add_entity("zeus:default:raven", vector.add(zepha.player.pos, v(0, 1.7, 0)))
}
})

View File

@ -1,27 +0,0 @@
zepha.register_entity("zeus:default:test", {
display = "model",
display_object = "zeus:default:player",
display_texture = "zeus:default:player",
on_create = function(self)
-- self.object.set_animations({
-- {"wal0, 100}
-- })
-- self.object:snap_scale(1/4)
end,
on_update = function(self, delta)
self.object:set_pos({
x = self.object.pos.x + 0.08 * math.sin(math.rad(self.object.yaw)),
y = self.object.pos.y,
z = self.object.pos.z + 0.08 * math.cos(math.rad(self.object.yaw))})
self.object:set_yaw(self.object.yaw + 2)
end
})
if zepha.server then
local entity = zepha.add_entity("zeus:default:test", {x = 10, y = 0, z = 0})
zepha.delay(function()
zepha.remove_entity(entity)
end, 10)
end

View File

@ -0,0 +1,25 @@
zepha.register_entity("zeus:default:test", {
display = "model",
display_object = "zeus:default:player",
display_texture = "zeus:default:player",
on_create = fn(self) {
## self.object.set_animations({
## {"wal0, 100}
## })
## self.object:snap_scale(1/4)
},
on_update = fn(self, delta) {
self.object:set_pos(v(
self.object.pos.x + 0.08 * math.sin(math.rad(self.object.yaw)),
self.object.pos.y,
self.object.pos.z + 0.08 * math.cos(math.rad(self.object.yaw)))
)
self.object.yaw += 2
}
})
if (zepha.server) {
local entity = zepha.add_entity("zeus:default:test", v(10, 0, 0))
##zepha.delay(() => { zepha.remove_entity(entity) }, 10)
}

View File

@ -1,5 +1,3 @@
print("Hello from default")
runfile(_PATH .. "blocks/_index")
runfile(_PATH .. "entity/_index")

View File

@ -1,3 +1 @@
print("Hello from flowers")
runfile("zeus:flowers/flowers")

View File

@ -1,5 +1,3 @@
print("Hello from inventory")
if (zepha.server) { return } ## Only run the following code on the client.
local inventory = zepha.player:get_inventory()

View File

@ -1,4 +1,2 @@
print("Hello from kinetic")
runfile("zeus:kinetic/models/axle")
runfile("zeus:kinetic/blocks/axle")

View File

@ -1,40 +1,40 @@
local noise = {
module = "add",
sources = {
{ ## Elevation
module = "scale_bias",
source = {
module = "perlin",
frequency = 0.02,
octaves = 8
},
scale = 250,
bias = 32
},
{ ## Features
module = "scale_bias",
source = {
module = "perlin",
frequency = 0.8,
octaves = 3,
},
scale = 30,
bias = 6
}
}
}
zepha.register_biome("zeus:mapgen:desert", {
environment = {
temperature = 40/100,
humidity = 20/100,
roughness = 10/100
},
blocks = {
top = "zeus:default:sand",
soil = "zeus:default:sand",
rock = "zeus:default:sandstone"
},
biome_tint = "#e6fa61",
noise = noise
})
##local noise = {
## module = "add",
## sources = {
## { ## Elevation
## module = "scale_bias",
## source = {
## module = "perlin",
## frequency = 0.02,
## octaves = 8
## },
## scale = 250,
## bias = 32
## },
## { ## Features
## module = "scale_bias",
## source = {
## module = "perlin",
## frequency = 0.8,
## octaves = 3,
## },
## scale = 30,
## bias = 6
## }
## }
##}
##
##zepha.register_biome("zeus:mapgen:desert", {
## environment = {
## temperature = 40/100,
## humidity = 20/100,
## roughness = 10/100
## },
## blocks = {
## top = "zeus:default:sand",
## soil = "zeus:default:sand",
## rock = "zeus:default:sandstone"
## },
## biome_tint = "#e6fa61",
## noise = noise
##})

View File

@ -1,3 +1 @@
print("Hello from mapgen")
runfile(_PATH .. "biomes/_index")

View File

@ -1,5 +1,3 @@
print("Hello from materials")
runfile("zeus:materials/items/stick")
runfile("zeus:materials/items/rock")
runfile("zeus:materials/items/flint")

@ -1 +1 @@
Subproject commit 33dab5bdad2f6b4daf74f9b0386c45c28386b5d8
Subproject commit ca7284334fd93fb9caf9f7777587313b27948bd1