Compare commits
10 Commits
archaeolog
...
master
Author | SHA1 | Date |
---|---|---|
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 | d3fb221641 | |
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 | 6756358307 | |
ancientmarinerdev | 6cdd679baf | |
Sebastian Riedel | d7ea628270 | |
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 | e3bdedb4d5 | |
Mikita Wiśniewski | f884de5f87 | |
Mikita Wiśniewski | a609639585 | |
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 | aa3b3421d5 | |
codiac | 4f2cb955b8 | |
codiac | a3bbb3694c |
|
@ -5,7 +5,4 @@
|
|||
*.blend3
|
||||
/.idea/
|
||||
*.xcf
|
||||
.Rproj.user
|
||||
|
||||
# Windows Thumbnail Cache
|
||||
Thumbs.db
|
||||
.Rproj.user
|
4
LEGAL.md
|
@ -38,11 +38,11 @@ No non-free licenses are used anywhere.
|
|||
The textures, unless otherwise noted, are based on the Pixel Perfection resource pack for Minecraft 1.11,
|
||||
authored by XSSheep. Most textures are verbatim copies, while some textures have been changed or redone
|
||||
from scratch.
|
||||
The glazed terracotta textures have been created by (MysticTempest)[https://github.com/MysticTempest].
|
||||
The glazed terracotta textures have been created by [MysticTempest](https://github.com/MysticTempest).
|
||||
Source: <https://www.planetminecraft.com/texture_pack/131pixel-perfection/>
|
||||
License: [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
The main menu images are release under: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||
The main menu images are released under: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||
|
||||
All other files, unless mentioned otherwise, fall under:
|
||||
Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
|
|
23
MODELS.md
|
@ -1,13 +1,14 @@
|
|||
#Models in Minetest/Mineclone2
|
||||
# Models in Minetest/Mineclone2
|
||||
|
||||
Models are an important part of all entities & unique nodes in Mineclone2. They provide a 3 dimensional map of an object for which textures are then applied to. This document is for modders, it quickly highlights some important information for the software needed to open models in Mineclone2.
|
||||
|
||||
## Minetest Wiki
|
||||
|
||||
For more detailed information on actually using blender to create and modify models for Minetest/Mineclone2, please visit the Minetest wiki's page on using Blender [Here](https://wiki.minetest.net/Using_Blender)
|
||||
|
||||
##Recommended software
|
||||
## Recommended software
|
||||
|
||||
###Blender
|
||||
### Blender
|
||||
|
||||
Blender is a very popular and free modeling software supported on Windows, MacOS, and most Linux distributions. It is recommended to use Blender to create and modify 3D models within the minetest engine.
|
||||
|
||||
|
@ -19,14 +20,16 @@ Blitz 3D (.b3d) Is one of the main animated model formats used for entities in t
|
|||
|
||||
The most up to date version of this Blender plugin can be downloaded [Here](https://github.com/GreenXenith/io_scene_b3d/releases/tag/f189786)
|
||||
|
||||
##Types of model formats
|
||||
## Types of model formats
|
||||
|
||||
### Animated, skinned models
|
||||
|
||||
###Animated, skinned models
|
||||
* Blitz 3D files (.b3d)
|
||||
|
||||
* Microsoft DirectX (.x) (binary & text, compression is not supported)
|
||||
|
||||
###Static meshes
|
||||
### Static meshes
|
||||
|
||||
* Wavefront OBJ (.obj)
|
||||
|
||||
Note: The sometimes accompanying .mtl files are not supported and can safely be deleted.
|
||||
|
@ -45,16 +48,18 @@ Note: Do not use .b3d and .x files for static meshes at the moment, Minetest cur
|
|||
|
||||
Note: Any formats not mentioned above but known to work in the past were removed in 5.5.0 and aren't supported anymore.
|
||||
|
||||
##Pros & Cons of .b3d vs .x
|
||||
## Pros & Cons of .b3d vs .x
|
||||
|
||||
### B3D
|
||||
|
||||
###B3D
|
||||
* [+] Binary format means a small size
|
||||
|
||||
* [-] Difficult to postprocess after exporting
|
||||
|
||||
* [-] Difficult to debug problems
|
||||
|
||||
###X (text version)
|
||||
### X (text version)
|
||||
|
||||
* [+] Can be parsed easily with lua scripts
|
||||
|
||||
* [+] Can be easily generated by scripts
|
||||
|
|
18
RELEASE.md
|
@ -1,10 +1,11 @@
|
|||
### Standard Release
|
||||
|
||||
#File to document release steps with a view to evolving into a script
|
||||
# File to document release steps with a view to evolving into a script
|
||||
|
||||
#Update CREDITS.md
|
||||
#Update version in game.conf
|
||||
# Update CREDITS.md
|
||||
# Update version in game.conf
|
||||
|
||||
```
|
||||
lua tools/generate_ingame_credits.lua
|
||||
|
||||
git add CREDITS.md
|
||||
|
@ -18,10 +19,11 @@ git commit -m "Pre-release update credits and set version 0.83.0"
|
|||
git tag 0.83.0
|
||||
|
||||
git push origin 0.83.0
|
||||
```
|
||||
|
||||
#Update version in game.conf to the next version with -SNAPSHOT suffix
|
||||
# Update version in game.conf to the next version with -SNAPSHOT suffix
|
||||
|
||||
git commit -m "Post-release set version 0.84.0-SNAPSHOT"
|
||||
`git commit -m "Post-release set version 0.84.0-SNAPSHOT"`
|
||||
|
||||
### Hotfix Release
|
||||
|
||||
|
@ -32,15 +34,17 @@ To mitigate this, you just release the last release, and the relevant bug fix. F
|
|||
|
||||
* Create release branch from the last release tag, push it:
|
||||
|
||||
```
|
||||
git checkout -b release/0.82.1 0.82.0
|
||||
|
||||
git push origin release/0.82.1
|
||||
```
|
||||
|
||||
##### Prepare feature branch and fix
|
||||
|
||||
* Create feature branch from that release branch (can review it to check only fix is there, nothing else, and use to also merge into master separately)
|
||||
|
||||
git checkout -b hotfix_bug_1_branch
|
||||
`git checkout -b hotfix_bug_1_branch`
|
||||
|
||||
* Fix crash/serious bug and commit
|
||||
* Push branch and create pr to the release and also the master branch (Do not rebase, to reduce merge conflict risk. Do not delete after first merge or it needs to be repushed)
|
||||
|
@ -53,11 +57,13 @@ git checkout -b hotfix_bug_1_branch
|
|||
|
||||
* Tag it, push tag and branch:
|
||||
|
||||
```
|
||||
git tag 0.82.1
|
||||
|
||||
git push origin 0.82.1
|
||||
|
||||
git push origin release/0.82.1
|
||||
```
|
||||
|
||||
Note: If you have to do more than 1 hotfix release, can do it on the same release branch.
|
||||
|
||||
|
|
|
@ -187,15 +187,6 @@ function mcl_sounds.node_sound_lava_defaults(table)
|
|||
return table
|
||||
end
|
||||
|
||||
function mcl_sounds.node_sound_decorated_pot_defaults(table)
|
||||
table = table or {}
|
||||
-- TODO: Footstep and dug sounds
|
||||
table.place = table.place or
|
||||
{name = "archaeology_decorated_pot_place", gain = 1.0}
|
||||
mcl_sounds.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
-- Player death sound
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
-- TODO: Add separate death sound
|
||||
|
|
|
@ -191,9 +191,10 @@ Origin of those models:
|
|||
* [Spennnyyy](https://freesound.org/people/Spennnyyy/) (CC0)
|
||||
* `mcl_totems_totem.ogg`
|
||||
* Source: <https://freesound.org/people/Spennnyyy/sounds/323502/>
|
||||
* [Baŝto](https://opengameart.org/users/ba%C5%9Dto)
|
||||
* [Baŝto](https://opengameart.org/users/ba%C5%9Dto) (remixer) and [kantouth](https://freesound.org/people/kantouth/) (original author)
|
||||
* `mobs_mc_skeleton_random.*.ogg` (CC BY 3.0)
|
||||
* Source: <https://opengameart.org/content/walking-skeleton>
|
||||
* Based on: <https://freesound.org/people/kantouth/sounds/115113/>
|
||||
* [spookymodem](https://freesound.org/people/spookymodem/)
|
||||
* `mobs_mc_skeleton_death.ogg` (CC0)
|
||||
* <https://freesound.org/people/spookymodem/sounds/202091/>
|
||||
|
@ -307,4 +308,4 @@ Origin of those models:
|
|||
|
||||
Note: Many of these sounds have been more or less modified to fit the game.
|
||||
|
||||
Sounds not mentioned hre are licensed under CC0.
|
||||
Sounds not mentioned here are licensed under CC0.
|
||||
|
|
|
@ -351,7 +351,7 @@ local professions = {
|
|||
leatherworker = {
|
||||
name = N("Leatherworker"),
|
||||
texture = "mobs_mc_villager_leatherworker.png",
|
||||
jobsite = "mcl_cauldrons:cauldron",
|
||||
jobsite = "group:cauldron",
|
||||
trades = {
|
||||
{
|
||||
{ { "mcl_mobitems:leather", 9, 12 }, E1 },
|
||||
|
@ -1008,7 +1008,15 @@ end
|
|||
----- JOBSITE LOGIC
|
||||
local function get_profession_by_jobsite(js)
|
||||
for k,v in pairs(professions) do
|
||||
if v.jobsite == js then return k end
|
||||
if v.jobsite == js then
|
||||
return k
|
||||
-- Catch Nitwit doesn't have a jobsite
|
||||
elseif v.jobsite and v.jobsite:find("^group:") then
|
||||
local group = v.jobsite:gsub("^group:", "")
|
||||
if minetest.get_item_group(js, group) > 0 then
|
||||
return k
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
# MineClone2 Archaeology [mcl_archaeology]
|
||||
|
||||
Adds 1.20 archaeology mechanic(s) (brush, suspicious blocks, pottery sherds, decorated pots, trail ruins)
|
||||
|
||||
## Credits
|
||||
|
||||
* rudzik8 (all code and textures except for what is mentioned below)
|
||||
* XSSheep (for the textures I've used as a base for my own ones)
|
||||
* Ex (advice, also `mcl_archaeology_decorated_pot_base.png`, `mcl_archaeology_decorated_pot_side.png` and derevatives)
|
||||
* chmodsayshello (advice, consultation and some MC showcase)
|
||||
* Nicu (advice)
|
|
@ -1,31 +0,0 @@
|
|||
local mp = minetest.get_modpath(minetest.get_current_modname())
|
||||
|
||||
local S = minetest.get_translator(mp)
|
||||
|
||||
mcl_archaeology = {}
|
||||
mcl_archaeology.pottery_sherds = {
|
||||
-- name, description
|
||||
{"angler", S("Angler Pottery Sherd")},
|
||||
{"archer", S("Archer Pottery Sherd")},
|
||||
{"arms_up", S("Arms Up Pottery Sherd")},
|
||||
{"blade", S("Blade Pottery Sherd")},
|
||||
{"brewer", S("Brewer Pottery Sherd")},
|
||||
{"burn", S("Burn Pottery Sherd")},
|
||||
{"danger", S("Danger Pottery Sherd")},
|
||||
{"explorer", S("Explorer Pottery Sherd")},
|
||||
{"friend", S("Friend Pottery Sherd")},
|
||||
{"heart", S("Heart Pottery Sherd")},
|
||||
{"heartbreak", S("Heartbreak Pottery Sherd")},
|
||||
{"howl", S("Howl Pottery Sherd")},
|
||||
{"miner", S("Miner Pottery Sherd")},
|
||||
{"mourner", S("Mourner Pottery Sherd")},
|
||||
{"plenty", S("Plenty Pottery Sherd")},
|
||||
{"prize", S("Prize Pottery Sherd")},
|
||||
{"sheaf", S("Sheaf Pottery Sherd")},
|
||||
{"shelter", S("Shelter Pottery Sherd")},
|
||||
{"skull", S("Skull Pottery Sherd")},
|
||||
{"snort", S("Snort Pottery Sherd")}
|
||||
}
|
||||
|
||||
dofile(mp.."/items.lua")
|
||||
dofile(mp.."/nodes.lua")
|
|
@ -1,33 +0,0 @@
|
|||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
for _, row in ipairs(mcl_archaeology.pottery_sherds) do
|
||||
-- assign variable = row[x]
|
||||
local name = row[1]
|
||||
local desc = row[2] -- short for "description"
|
||||
|
||||
-- register
|
||||
minetest.register_craftitem("mcl_archaeology:"..name.."_pottery_sherd", {
|
||||
description = desc,
|
||||
_doc_items_longdesc = S("A pottery sherd is used to craft Decorated Pots."),
|
||||
inventory_image = "mcl_archaeology_pottery_sherd_"..name..".png",
|
||||
groups = { craftitem = 1, pottery_sherd = 1, pottery = 1 }
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craftitem("mcl_archaeology:brush", {
|
||||
description = S("Brush"),
|
||||
_doc_items_longdesc = S("A brush can be used to excavate suspicious blocks."),
|
||||
_tt_help = S("Excavates suspicious blocks"),
|
||||
inventory_image = "mcl_archaeology_brush.png",
|
||||
stack_max = 1,
|
||||
groups = {tool=1},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_archaeology:brush",
|
||||
recipe = {
|
||||
{"mcl_mobitems:feather"},
|
||||
{"mcl_copper:copper_ingot"},
|
||||
{"mcl_core:stick"}
|
||||
}
|
||||
})
|
|
@ -1,4 +0,0 @@
|
|||
name = mcl_archaeology
|
||||
title = MineClone2 Archaeology
|
||||
description = Adds 1.20 archaeology mechanic(s) (brush, suspicious blocks, pottery sherds, decorated pots, trail ruins) into the MineClone 2 game
|
||||
depends = mcl_core
|
|
@ -1,56 +0,0 @@
|
|||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("mcl_archaeology:suspicious_sand", {
|
||||
description = S("Suspicious Sand"),
|
||||
tiles = {"mcl_archaeology_suspicious_sand.png"},
|
||||
groups = { handy = 1, shovely = 1, falling_node = 1,
|
||||
dig_by_piston = 1, dig_immediate_piston = 1 },
|
||||
sounds = mcl_sounds.node_sound_sand_defaults(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_archaeology:suspicious_gravel", {
|
||||
description = S("Suspicious Gravel"),
|
||||
tiles = {"mcl_archaeology_suspicious_gravel.png"},
|
||||
groups = { handy = 1, shovely = 1, falling_node = 1,
|
||||
dig_by_piston = 1, dig_immediate_piston = 1 },
|
||||
sounds = mcl_sounds.node_sound_gravel_defaults(),
|
||||
_mcl_blast_resistance = 0.6,
|
||||
_mcl_hardness = 0.6,
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_archaeology:decorated_pot", {
|
||||
description = S("Decorated Pot"),
|
||||
tiles = {
|
||||
"mcl_archaeology_decorated_pot_top.png",
|
||||
"mcl_archaeology_decorated_pot_bottom.png",
|
||||
"mcl_archaeology_decorated_pot_side.png",
|
||||
"mcl_archaeology_decorated_pot_side.png",
|
||||
"mcl_archaeology_decorated_pot_side.png",
|
||||
"mcl_archaeology_decorated_pot_side.png"
|
||||
},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.5, -0.4375, 0.4375, 0.5, 0.4375}, -- base
|
||||
{-0.1875, 0.5, -0.1875, 0.1875, 0.5625, 0.1875}, -- neck (bottom part)
|
||||
{-0.25, 0.5625, -0.25, 0.25, 0.6875, 0.25}, -- neck (top part)
|
||||
}
|
||||
},
|
||||
--drops = {},
|
||||
groups = { handy = 1 },
|
||||
_mcl_silk_touch_drop = true -- TODO: different sound when breaking with silk touch
|
||||
})
|
||||
|
||||
-- normal, non-pattern recipe
|
||||
minetest.register_craft({
|
||||
output = "mcl_archaeology:decorated_pot",
|
||||
recipe = {
|
||||
{"", "group:pottery", ""},
|
||||
{"group:pottery", "", "group:pottery"},
|
||||
{"", "group:pottery", ""},
|
||||
}
|
||||
})
|
|
@ -114,7 +114,7 @@ minetest.register_craftitem("mcl_core:brick", {
|
|||
_doc_items_longdesc = S("Bricks are used to craft brick blocks."),
|
||||
inventory_image = "default_clay_brick.png",
|
||||
stack_max = 64,
|
||||
groups = { craftitem=1, pottery=1 },
|
||||
groups = { craftitem=1 },
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_core:flint", {
|
||||
|
|
|
@ -85,16 +85,16 @@ function mcl_meshhand.update_player(player)
|
|||
end
|
||||
end
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
player:get_inventory():set_size("hand", 1)
|
||||
end)
|
||||
|
||||
if mcl_skins_enabled then
|
||||
mcl_player.register_on_visual_change(mcl_meshhand.update_player)
|
||||
else
|
||||
minetest.register_on_joinplayer(mcl_meshhand.update_player)
|
||||
end
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
player:get_inventory():set_size("hand", 1)
|
||||
end)
|
||||
|
||||
-- This is needed to deal damage when punching mobs
|
||||
-- with random items in hand in survival mode
|
||||
minetest.override_item("", {
|
||||
|
|
Before Width: | Height: | Size: 227 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 114 B |
Before Width: | Height: | Size: 437 B |
Before Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 200 B |
Before Width: | Height: | Size: 201 B |
Before Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 194 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 198 B |
Before Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 197 B |
Before Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 197 B |
Before Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 198 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 246 B |
Before Width: | Height: | Size: 184 B |