commit bc2b7902ed5f2a192303277f242b3cca065b0623 Author: Rubenwardy Date: Fri Feb 22 17:53:42 2013 +0000 Initial Commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9d6bd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..f88c74b --- /dev/null +++ b/init.lua @@ -0,0 +1,44 @@ +-- AWARDS +-- by Rubenwardy, CC-BY-SA +------------------------------------------------------- +-- this is the api definition file for the awards mod +------------------------------------------------------- + +-- The global award namespace +awards={} +player_data={} + +-- A table of award definitions +awards.def={} + +-- Load files +dofile(minetest.get_modpath("awards").."/triggers.lua") + + +-- API Functions +function awards.register_achievement(name,data_table) + data_table["name"] = name + table.insert(awards.def,data_table); +end + +function awards.register_onDig(data) + table.insert(awards.onDig,data); +end + +function awards:getNodeCount(nodeName) + return self.count[nodeName] +end + + +-- Example Achievements +awards.register_achievement("award_mesefind",{ + title = "First Mese Find", + description = "Found some Mese!", +}) + +awards.register_onDig({ + award="", + func=function(player) + + end +}) \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..965281f --- /dev/null +++ b/readme.md @@ -0,0 +1,35 @@ +Awards +------ + +by Andrew "Rubenwardy" Ward, CC-BY-SA. + +This mod adds achievements to Minetest. + + +Code Reference +-------------- + +The API +======= +* awards.register_achievement(name,data_table) + * name + * desciption + * sound [optional] + * image [optional] + * func [optional] - see below +* awards.register_onDig(data_table) + * award + * func + * return true if the medal should be rewarded + + +Player Data +=========== + +A list of data referenced/hashed by the player's name. + +* name [string] +* getNodeCount('node_name') [function] +* count [table] + * modname [table] + *itemname [int] \ No newline at end of file diff --git a/triggers.lua b/triggers.lua new file mode 100644 index 0000000..2c9492a --- /dev/null +++ b/triggers.lua @@ -0,0 +1,53 @@ +-- AWARDS +-- by Rubenwardy, CC-BY-SA +------------------------------------------------------- +-- this is the trigger handler file for the awards mod +------------------------------------------------------- + +-- Function for Triggers +awards.onDig={} +awards.onTick={} + +-- Player functions + +-- Trigger Handles +minetest.register_on_dignode(function(pos, oldnode, digger) + local nodedug = string.split(oldnode.name, ":") + + local mod=nodedug[0] + local item=nodedug[1] + + local player = digger:get_player_name() + + print("Awards [Event] - "..player.." has dug a node") + + if (player~=nil and nodedug~=nil and mod~=nil and item~=nil) then + if not player_data[player] then + player_data[player]={} + player_data[player]['count']={} + player_data[player]['count']['default']={} + player_data[player]['count']['default']['dirt']=0 + player_data[player]['name']=player + end + + if not player_data[player]['count'][mod] then + player_data[player]['count'][mod]={} + end + + if not player_data[player]['count'][mod][item] then + player_data[player]['count'][mod][item]=0 + end + + player_data[player]['count'][mod][item]=player_data[player]['count'][mod][item]+1 + else + print(player.."'s dig event has been skipped") + end +end) + +minetest.register_on_newplayer(function(player) + player_data[player:get_player_name()]={} + player_data[player:get_player_name()]['count']={} + player_data[player:get_player_name()]['count']['default']={} + player_data[player:get_player_name()]['count']['default']['dirt']=0 + player_data[player:get_player_name()]['name']=player:get_player_name() +end) \ No newline at end of file