2 # Copyright (C) 2018 rubenwardy
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
18 import os, sys, datetime
20 if not "FLASK_CONFIG" in os.environ:
21 os.environ["FLASK_CONFIG"] = "../config.cfg"
23 test_data = len(sys.argv) >= 2 and sys.argv[1].strip() == "-t"
25 from app.models import *
26 from app.utils import make_flask_user_password
28 def defineDummyData(licenses, tags, ruben):
30 ez.github_username = "Ezhh"
31 ez.forums_username = "Shara"
32 ez.rank = UserRank.EDITOR
35 not1 = Notification(ruben, ez, "Awards approved", "/packages/rubenwardy/awards/")
39 jeija.github_username = "Jeija"
40 jeija.forums_username = "Jeija"
47 mod.title = "Alpha Test"
48 mod.license = licenses["MIT"]
49 mod.type = PackageType.MOD
51 mod.tags.append(tags["mapgen"])
52 mod.tags.append(tags["environment"])
53 mod.repo = "https://github.com/ezhh/other_worlds"
54 mod.issueTracker = "https://github.com/ezhh/other_worlds/issues"
56 mod.shortDesc = "The content library should not be used yet as it is still in alpha"
57 mod.desc = "This is the long desc"
60 rel = PackageRelease()
63 rel.url = "https://github.com/ezhh/handholds/archive/master.zip"
71 mod1.license = licenses["LGPLv2.1"]
72 mod1.type = PackageType.MOD
74 mod1.tags.append(tags["player_effects"])
75 mod1.repo = "https://github.com/rubenwardy/awards"
76 mod1.issueTracker = "https://github.com/rubenwardy/awards/issues"
78 mod1.shortDesc = "Adds achievements and an API to register new ones."
80 Majority of awards are back ported from Calinou's old fork in Carbone, under same license.
83 awards.register_achievement("award_mesefind",{
84 title = "First Mese Find",
85 description = "Found some Mese!",
87 type = "dig", -- award is given when
88 node = "default:mese", -- this type of node has been dug
89 target = 1, -- this number of times
95 rel = PackageRelease()
98 rel.url = "https://github.com/rubenwardy/awards/archive/master.zip"
104 mod2.name = "mesecons"
105 mod2.title = "Mesecons"
106 mod2.tags.append(tags["tools"])
107 mod2.type = PackageType.MOD
108 mod2.license = licenses["LGPLv3"]
110 mod2.repo = "https://github.com/minetest-mods/mesecons/"
111 mod2.issueTracker = "https://github.com/minetest-mods/mesecons/issues"
113 mod2.shortDesc = "Mesecons adds everything digital, from all kinds of sensors, switches, solar panels, detectors, pistons, lamps, sound blocks to advanced digital circuitry like logic gates and programmable blocks."
115 ########################################################################
116 ## __ __ _____ _____ _____ _____ _____ _ _ _____ ##
117 ## | \ / | | ___| | ___| | ___| | ___| | _ | | \ | | | ___| ##
118 ## | \/ | | |___ | |___ | |___ | | | | | | | \| | | |___ ##
119 ## | |\__/| | | ___| |___ | | ___| | | | | | | | | |___ | ##
120 ## | | | | | |___ ___| | | |___ | |___ | |_| | | |\ | ___| | ##
121 ## |_| |_| |_____| |_____| |_____| |_____| |_____| |_| \_| |_____| ##
123 ########################################################################
125 MESECONS by Jeija and contributors
129 [Mesecons](http://mesecons.net/)! They're yellow, they're conductive, and they'll add a whole new dimension to Minetest's gameplay.
131 Mesecons is a mod for [Minetest](http://minetest.net/) that implements a ton of items related to digital circuitry, such as wires, buttons, lights, and even programmable controllers. Among other things, there are also pistons, solar panels, pressure plates, and note blocks.
133 Mesecons has a similar goal to Redstone in Minecraft, but works in its own way, with different rules and mechanics.
139 [DOWNLOAD IT NOW](https://github.com/minetest-mods/mesecons/archive/master.zip)
141 Now go ahead and install it like any other Minetest mod. Don't know how? Check out [the wonderful page about it](http://wiki.minetest.com/wiki/Mods) over at the Minetest Wiki. For your convenience, here's a quick summary:
143 1. If Mesecons is still in a ZIP file, extract the folder inside to somewhere on the computer.
144 2. Make sure that when you open the folder, you can directly find `README.md` in the listing. If you just see another folder, move that folder up one level and delete the old one.
145 3. Open up the Minetest mods folder - usually `/mods/`. If you see the `minetest` or folder inside of that, that is your mod folder instead.
146 4. Copy the Mesecons folder into the mods folder.
148 Don't like some parts of Mesecons? Open up the Mesecons folder and delete the subfolder containing the mod you don't want. If you didn't want movestones, for example, all you have to do is delete the `mesecons_movestones` folder and they will no longer be available.
150 There are no dependencies - it will work right after installing!
152 How do I use this thing?
153 ------------------------
154 How about a [quick overview video](https://www.youtube.com/watch?v=6kmeQj6iW5k)?
156 Or maybe a [comprehensive reference](http://mesecons.net/items.html) is your style?
158 An overview for the very newest of new beginners? How does [this one](http://uberi.mesecons.net/projects/MeseconsBasics/index.html) look?
160 Want to get more into building? Why not check out the [Mesecons Laboratory](http://uberi.mesecons.net/), a website dedicated to advanced Mesecons builders?
162 Want to contribute to Mesecons itself? Check out the [source code](https://github.com/minetest-mods/mesecons)!
164 Who wrote it anyways?
165 ---------------------
166 These awesome people made Mesecons possible!
168 | Contributor | Contribution |
169 | --------------- | -------------------------------- |
170 | Hawk777 | Code for VoxelManip caching |
171 | Jat15 | Various tweaks. |
172 | Jeija | **Main developer! Everything.** |
173 | Jordach | Noteblock sounds. |
174 | khonkhortistan | Code, recipes, textures. |
175 | Kotolegokot | Nodeboxes for items. |
176 | minerd247 | Textures. |
177 | Nore/Novatux | Code. |
178 | RealBadAngel | Fixes, improvements. |
179 | sfan5 | Code, recipes, textures. |
180 | suzenako | Piston sounds. |
181 | Uberi/Temperest | Code, textures, documentation. |
182 | VanessaE | Code, recipes, textures, design. |
183 | Whiskers75 | Logic gates implementation. |
185 There are also a whole bunch of other people helping with everything from code to testing and feedback. Mesecons would also not be possible without their help!
187 Alright, how can I use it?
188 --------------------------
189 All textures in this project are licensed under the CC-BY-SA 3.0 (Creative Commons Attribution-ShareAlike 3.0 Generic). That means you can distribute and remix them as much as you want to, under the condition that you give credit to the authors and the project, and that if you remix and release them, they must be under the same or similar license to this one.
191 All code in this project is licensed under the LGPL version 3 or later. That means you have unlimited freedom to distribute and modify the work however you see fit, provided that if you decide to distribute it or any modified versions of it, you must also use the same license. The LGPL also grants the additional freedom to write extensions for the software and distribute them without the extensions being subject to the terms of the LGPL, although the software itself retains its license.
193 No warranty is provided, express or implied, for any part of the project.
202 mod.name = "handholds"
203 mod.title = "Handholds"
204 mod.license = licenses["MIT"]
205 mod.type = PackageType.MOD
207 mod.tags.append(tags["player_effects"])
208 mod.repo = "https://github.com/ezhh/handholds"
209 mod.issueTracker = "https://github.com/ezhh/handholds/issues"
211 mod.shortDesc = "Adds hand holds and climbing thingies"
212 mod.desc = "This is the long desc"
215 rel = PackageRelease()
218 rel.url = "https://github.com/ezhh/handholds/archive/master.zip"
224 mod.name = "other_worlds"
225 mod.title = "Other Worlds"
226 mod.license = licenses["MIT"]
227 mod.type = PackageType.MOD
229 mod.tags.append(tags["mapgen"])
230 mod.tags.append(tags["environment"])
231 mod.repo = "https://github.com/ezhh/other_worlds"
232 mod.issueTracker = "https://github.com/ezhh/other_worlds/issues"
234 mod.shortDesc = "Adds space with asteroids and comets"
235 mod.desc = "This is the long desc"
242 mod.license = licenses["LGPLv2.1"]
243 mod.type = PackageType.MOD
245 mod.tags.append(tags["player_effects"])
246 mod.repo = "https://github.com/rubenwardy/food/"
247 mod.issueTracker = "https://github.com/rubenwardy/food/issues/"
249 mod.shortDesc = "Adds lots of food and an API to manage ingredients"
250 mod.desc = "This is the long desc"
256 mod.name = "food_sweet"
257 mod.title = "Sweet Foods"
258 mod.license = licenses["CC0"]
259 mod.type = PackageType.MOD
261 mod.tags.append(tags["player_effects"])
262 mod.repo = "https://github.com/rubenwardy/food_sweet/"
263 mod.issueTracker = "https://github.com/rubenwardy/food_sweet/issues/"
265 mod.shortDesc = "Adds sweet food"
266 mod.desc = "This is the long desc"
271 game1.approved = True
272 game1.name = "capturetheflag"
273 game1.title = "Capture The Flag"
274 game1.type = PackageType.GAME
275 game1.license = licenses["LGPLv2.1"]
277 game1.tags.append(tags["pvp"])
278 game1.tags.append(tags["survival"])
279 game1.tags.append(tags["multiplayer"])
280 game1.repo = "https://github.com/rubenwardy/capturetheflag"
281 game1.issueTracker = "https://github.com/rubenwardy/capturetheflag/issues"
283 game1.shortDesc = "Two teams battle to snatch and return the enemy's flag, before the enemy takes their own!"
285 As seen on the Capture the Flag server (minetest.rubenwardy.com:30000)
287 Uses the CTF PvP Engine.
290 db.session.add(game1)
292 rel = PackageRelease()
295 rel.url = "https://github.com/rubenwardy/capturetheflag/archive/master.zip"
302 mod.name = "pixelbox"
303 mod.title = "PixelBOX Reloaded"
304 mod.license = licenses["CC0"]
305 mod.type = PackageType.TXP
308 mod.shortDesc = "This is an update of the original PixelBOX texture pack by the brillant artist Gambit"
309 mod.desc = "This is the long desc"
312 rel = PackageRelease()
315 rel.url = "http://mamadou3.free.fr/Minetest/PixelBOX.zip"
322 for package in Package.query.filter_by(type=PackageType.MOD).all():
325 meta = metas[package.name]
327 meta = MetaPackage(package.name)
329 metas[package.name] = meta
330 package.provides.append(meta)
332 dep = Dependency(food_sweet, meta=metas["food"])
337 delete_db = len(sys.argv) >= 2 and sys.argv[1].strip() == "-d"
338 if delete_db and os.path.isfile("db.sqlite"):
339 os.remove("db.sqlite")
341 print("Creating database tables...")
343 print("Filling database...")
345 ruben = User("rubenwardy")
347 ruben.password = make_flask_user_password("tuckfrump")
348 ruben.github_username = "rubenwardy"
349 ruben.forums_username = "rubenwardy"
350 ruben.rank = UserRank.ADMIN
351 db.session.add(ruben)
354 for tag in ["Inventory", "Mapgen", "Building", \
355 "Mobs and NPCs", "Tools", "Player effects", \
356 "Environment", "Transport", "Maintenance", "Plants and farming", \
357 "PvP", "PvE", "Survival", "Creative", "Puzzle", "Multiplayer", "Singleplayer"]:
363 for license in ["GPLv2.1", "GPLv3", "LGPLv2.1", "LGPLv3", "AGPLv2.1", "AGPLv3",
364 "Apache", "BSD 3-Clause", "BSD 2-Clause", "CC0", "CC-BY-SA",
365 "CC-BY", "MIT", "ZLib", "Other (Free)"]:
366 row = License(license)
367 licenses[row.name] = row
370 for license in ["CC-BY-NC-SA", "Other (Non-free)"]:
371 row = License(license, False)
372 licenses[row.name] = row
376 defineDummyData(licenses, tags, ruben)