Skip to content
Permalink
Browse files

PB&J Pup.

Replace possibly trademarked artwork with royalty free and
OK for commercial use artwork.

The Pup appears by default but does not alias the Nyan Cat nodes
away. For that you will have to enable the setting. A settingtypes.txt
is provided to make that really easy. This allows people to get
an out-of-tree mod and not have their Nyan nodes disappear.

The mod can also be disabled entirely this way for those who don't
want it.

There's some eatser eggs in here as well. Instead of making the
nodes burnable, they are edible, and make you bark and howl. And
perhaps something else too.
  • Loading branch information...
sofar authored and paramat committed Mar 22, 2017
1 parent 91182d6 commit 9b45e7b3e92b12791c6d6bc88c28d42fc9bd0858

This file was deleted.

This file was deleted.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File renamed without changes.
@@ -0,0 +1,136 @@

--[[
Minetest's official Peanut Butter & Jelly Pup mod
]]--

local enable = minetest.setting_getbool("pbj_pup_enable")
if enable == false then
return
end

local function howl(ttl, player)
if not player then
return
end
ttl = ttl - 15
if ttl < 0 then
return
end

minetest.sound_play("pbj_pup_howl", {object = player, loop = false})
minetest.do_item_eat(5, nil, ItemStack("pbj_pup:pbj_pup"), player, nil)

minetest.after(15, howl, ttl, player)
end

--
-- nodes
--
minetest.register_node("pbj_pup:pbj_pup", {
description = "PB&J Pup",
tiles = {
"pbj_pup_sides.png",
"pbj_pup_jelly.png",
"pbj_pup_sides.png",
"pbj_pup_sides.png",
"pbj_pup_back.png",
"pbj_pup_front.png"
},
paramtype = "light",
light_source = default.LIGHT_MAX,
paramtype2 = "facedir",
groups = {cracky = 2},
is_ground_content = false,
legacy_facedir_simple = true,
sounds = default.node_sound_defaults(),
stack_max = 1,

This comment has been minimized.

Copy link
@cheapie

cheapie Mar 26, 2017

Why are these so low?

This comment has been minimized.

Copy link
@theunifiedmind7

theunifiedmind7 Mar 26, 2017

Contributor

Probably to avoid building with them.
See: #1647 (comment)

This comment has been minimized.

Copy link
@sofar

sofar Mar 26, 2017

Author Member

Super rare block, stacking them would encourage abuse and hoarding.

This comment has been minimized.

Copy link
@paramat

paramat Mar 26, 2017

Member

Seems a good idea limited to 1.

on_use = function(itemstack, user, pointed_thing)
howl(300, user)
itemstack:take_item()
return itemstack
end,
})

minetest.register_node("pbj_pup:pbj_pup_candies", {
description = "PB&J Pup Candies",
tiles = {{
name = "pbj_pup_candies_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 1.6
}
}},
paramtype = "light",
light_source = default.LIGHT_MAX,
paramtype2 = "facedir",
groups = {cracky = 2},
is_ground_content = false,
stack_max = 5,
sounds = default.node_sound_defaults(),
on_use = function(itemstack, user, pointed_thing)
minetest.do_item_eat(5, nil, itemstack, user, pointed_thing)
minetest.sound_play("pbj_pup_barks", {object = user, loop = false})
itemstack:take_item()
return itemstack
end,
})

--
-- mapgen
--
local gen = minetest.setting_getbool("pbj_pup_generate")
if gen == nil or gen then
local function place(pos, facedir, length)
if facedir > 3 then
facedir = 0
end
local tailvec = minetest.facedir_to_dir(facedir)
local p = {x = pos.x, y = pos.y, z = pos.z}
minetest.set_node(p, {name = "pbj_pup:pbj_pup", param2 = facedir})
for i = 1, length do
p.x = p.x + tailvec.x
p.z = p.z + tailvec.z
minetest.set_node(p, {name = "pbj_pup:pbj_pup_candies", param2 = facedir})
end
end

local function generate(minp, maxp, seed)
local height_min = -31000
local height_max = -32
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_max)
local volume = (maxp.x - minp.x + 1) * (y_max - y_min + 1) * (maxp.z - minp.z + 1)
local pr = PseudoRandom(seed + 9324342)
local max_num = math.floor(volume / (16 * 16 * 16))
for i = 1, max_num do
if pr:next(0, 1000) == 0 then
local x0 = pr:next(minp.x, maxp.x)
local y0 = pr:next(minp.y, maxp.y)
local z0 = pr:next(minp.z, maxp.z)
local p0 = {x = x0, y = y0, z = z0}
place(p0, pr:next(0, 3), pr:next(3, 15))
end
end
end

minetest.register_on_generated(generate)
end
--
-- compat
--

if minetest.setting_getbool("pbj_pup_alias_nyancat") then
minetest.register_alias("default:nyancat", "pbj_pup:pbj_pup")
minetest.register_alias("default:nyancat_rainbow","pbj_pup:pbj_pup_candies")
minetest.register_alias("nyancat", "pbj_pup:pbj_pup")
minetest.register_alias("nyancat_rainbow", "pbj_pup:pbj_pup_candies")
minetest.register_alias("nyancat:nyancat", "pbj_pup:pbj_pup")
minetest.register_alias("nyancat:nyancat_rainbow", "pbj_pup:pbj_pup_candies")
end
@@ -0,0 +1,26 @@

## PB&J Pup

PB&J Pup is a parody on the "Nyan Cat" TM toasted poptart meme.


## License and Copyright

(C) 2017 Vanessa Ezekowitz, Auke Kok, celeron55

* All Code: LGPL-2.1+
* All Images: CC-BY-4.0


## Sounds

* `pbj_pup_barks.ogg`:
Artist: Tomlija <tshesound@gmail.com>
License: CC-BY-3.0
Url: http://freesound.org/people/Tomlija/sounds/97392/

* `pbj_pup_howl.ogg`:
Copyright 2013 Iwan Gabovitch (qubodup)
License: CC-BY-3.0
Url: http://freesound.org/people/qubodup/sounds/193394/

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -43,3 +43,13 @@ share_bones_time (Bone share time) int 1200 0

# Replaces old stairs with new ones. Only required for older worlds.
enable_stairs_replace_abm (Replace old stairs) bool false

# Enable the PB&J Pup mod entirely
pbj_pup_enable (Enable PB&J pup mod) bool true

# Generate PB&J Pup blocks in the world
pbj_pup_generate (Generate PBJ Pup blocks in world) bool true

# Let the PB&J Pup mod replace Nyan Cat nodes
pbj_pup_alias_nyancat (Replace Nyan Cat blocks) bool false

0 comments on commit 9b45e7b

Please sign in to comment.
You can’t perform that action at this time.