Skip to content

Commit

Permalink
PB&J Pup.
Browse files Browse the repository at this point in the history
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 26, 2017
1 parent 91182d6 commit 9b45e7b
Show file tree
Hide file tree
Showing 19 changed files with 172 additions and 155 deletions.
16 changes: 0 additions & 16 deletions mods/nyancat/README.txt

This file was deleted.

89 changes: 0 additions & 89 deletions mods/nyancat/init.lua

This file was deleted.

50 changes: 0 additions & 50 deletions mods/nyancat/license.txt

This file was deleted.

Binary file removed mods/nyancat/textures/nyancat_back.png
Binary file not shown.
Binary file removed mods/nyancat/textures/nyancat_front.png
Binary file not shown.
Binary file removed mods/nyancat/textures/nyancat_rainbow.png
Binary file not shown.
Binary file removed mods/nyancat/textures/nyancat_side.png
Binary file not shown.
File renamed without changes.
136 changes: 136 additions & 0 deletions mods/pbj_pup/init.lua
@@ -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
@p5yk0g3n3s1s

p5yk0g3n3s1s 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 Contributor

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

This comment has been minimized.

Copy link
@paramat

paramat Mar 26, 2017

Contributor

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
26 changes: 26 additions & 0 deletions mods/pbj_pup/license.md
@@ -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 added mods/pbj_pup/sounds/pbj_pup_barks.ogg
Binary file not shown.
Binary file added mods/pbj_pup/sounds/pbj_pup_howl.ogg
Binary file not shown.
Binary file added mods/pbj_pup/textures/pbj_pup_back.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mods/pbj_pup/textures/pbj_pup_candies.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mods/pbj_pup/textures/pbj_pup_front.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mods/pbj_pup/textures/pbj_pup_jelly.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added mods/pbj_pup/textures/pbj_pup_sides.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions settingtypes.txt
Expand Up @@ -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.