Goldabbau in Papua-Neuguinea (MineHandy): 22.6., 16:00

Yanam Tamu aus Papua-Neuguinea kämpft als junger Mensch aktiv gegen die geplante Wafi-Golpu-Goldmine in der Nähe zum wunderschönen Markham-Tal rund um den gleichnamigen Fluss. Konkret geht es darum, dass er nicht möchte, dass Abfälle und giftige Auswaschungen in Flüsse oder ins Meer geleitet werden. Das nämlich hatten die beiden australischen Bergbau-Konzerne, die die Mine betreiben wollen, für sich ausgehandelt.

Bei den Inhalten seines Widerspruchs greift der aktuelle Südfreiwillige an der Ev. Akademie Sachsen-Anhalt auf Erfahrungen aus anderen Goldminen in seinem Heimatland zurück. In der Porgera-Goldmine wurden und werden Rechte der indigenen Bevölkerung verletzt. Ein Depot für die giftigen Auswaschungen nicht mehr verwertbaren Gesteins befindet sich direkt in einem Fluss, was in anderen Ländern verboten wäre. Auch werden giftige Gase und Stäube in nahegelegene Dörfer geweht. (Quelle: https://de.wikipedia.org/wiki/Porgera-Goldmine)

Im Live Event am 22.6., 16 bis ca. 18 Uhr, auf dem Minetestbildungsserver und in Discord informiert er in einem kurzen Input über dieses sein Engagement und die Hintergründe und steht anschließend für Fragen zur Verfügung. Gamer:innen sind eingeladen, parallel die Erfahrungen in einer Station für die virtuelle Weltreise “MineHandy” zu Orten der Handyproduktion umzusetzen. Die Diskussion erfolgt in Englisch und wird live übersetzt.

Für die Teilnahme an der Veranstaltung ist keine Anmeldung nötig. Allerdings wird ein Discord-Zugang benötigt. Das Event findet dann im Kanal des Minetestbildungsnetzwerkes statt: https://discord.gg/JjuuagKdvy.

Das Mitspielen in Minetest ist nicht unbedingt nötig. Wer das Spiel “MineHandy” kennenlernen oder mitbauen will, sollte allerdings Minetest vorher downloaden und starten: https://minetest.net | Weitere Erläuterungen: https://blogs.rpi-virtuell.de/minetest/anleitungen/erste-schritte/

Fragen beantwortet Tobias Thiel gern!

Sind Sie Lehrerin oder Pädagoge?

Dann unterstützt das Team Sie gerne dabei, mit Ihrer Klasse oder Jugendgruppe MineHandy zu spielen oder auf dem Server etwas zu bauen. Sprechen Sie dazu im Spiel die farblich gekennzeichneten Spieler:innen an oder fragen Sie bei Tobias Thiel nach.

Social Media

Unseren Aktivitäten kann man auch über unsere Social Media Accounts folgen:

Mit Minetest den Retroklassiker Snake programmieren

Was mit Minetest alles machbar ist, beweist schön das von SGVsbG8K programmierte Snake-Spiel, bei dem es darum geht, eine Schlange den nächsten Stein fressen zu lassen, wodurch sie immer länger wird. Mit seiner Genehmigung dokumentieren wir hier den Code und ermutigen zum Nachmachen .

Man erreicht es über den POI “Snakespiel” im Inventar (P anklicken).

Programmierung

Code für die Leuchtsteine auf der Anzeigetafel, unterster Controller:

if event.type=="program" then
mem.pos={0,7}
end
local function is_this(pos)
return (pos[1]==mem.pos[1] and pos[2]==mem.pos[2]) or pos=="all"
end

if event.type=="digiline" and event.channel=="screen" and is_this(event.msg[1]) then
port.c=event.msg[2]
end

Code des Spiels:

local function reset()
mem.cursor={0,0}
digiline_send("screen", {"all",false})
digiline_send("screen", {mem.cursor,true})
mem.length=0
mem.tail={{0,0}}
mem.dir={1,0}
mem.dirname="left"
mem.food={math.random(0,mem.w-1), math.random(0,mem.h-1)}
digiline_send("screen", {mem.food,true})
if not mem.running then interrupt(1);mem.running=true end


end
if event.type=="program" then
mem.name="anonym"
mem.w=8
mem.h=8
mem.dirs={["up"]={0,1},
["down"]={0,-1},
["left"]={1,0},
["right"]={-1,0},}
reset()
end
local function random_pos()
return {math.random(0,mem.w-1), math.random(0,mem.h-1)}

end
local function touching_tail(pos)
for i,j in ipairs(mem.tail) do
if j[1]..","..j[2] ==pos[1]..","..pos[2] then return true end
end
return false
end
local function get_vh(dir)
test={["right"]="h",
["left"]="h",
["up"]="v",
["down"]="v"}
return test[dir]
end
local function is_valid(dir)
return not (get_vh(dir) == get_vh(mem.dirname))
end
if event.type=="digiline" and event.channel=="name" then
name=event.msg
mem.name=name
end

if event.type=="digiline" and event.channel=="buttons" then
dir=mem.dirs[event.msg]
if not dir then
if event.msg=="middle" then
--[[mem.cursor={0,0}
digiline_send("screen", {"all",false})
digiline_send("screen", {mem.cursor,true})
mem.length=0
mem.dir={1,0}
mem.tail={{0,0}}
mem.dirname="left"
mem.food={math.random(0,mem.w-1), math.random(0,mem.h-1)}
digiline_send("screen", {mem.food,true})]]
reset()
end
return
end
if is_valid(event.msg) then
mem.dir=dir
mem.dirname=event.msg

end
end
local function equal_pos(p1,p2)
return (p1[1]..","..p1[2] == p2[1]..","..p2[2])
end
local function select_new_food_pos()
pos=random_pos()
if touching_tail(pos) then
while touching_tail(pos) do
pos=random_pos()
end
end
mem.food=pos
digiline_send("screen", {mem.food,true})

end
local function die()
mem.running=false
digiline_send("image_manager", "dead")--die
digiline_send("highscore", {mem.name,mem.length})
end
--main loop
if event.type=="interrupt" then
if (mem.cursor[1]+mem.dir[1]<0 or mem.cursor[1]+mem.dir[1]>mem.w-1) or (mem.cursor[2]+mem.dir[2]<0 or mem.cursor[2]+mem.dir[2]>mem.h-1) then
die()

return
end

--digiline_send("screen", {mem.cursor,false})
if #mem.tail-1>mem.length then
digiline_send("screen", {mem.tail[1],false})
table.remove(mem.tail,1)
end
mem.cursor={mem.cursor[1]+mem.dir[1],mem.cursor[2]+mem.dir[2]}
if touching_tail(mem.cursor) then
mem.running=false
die()
return
end
if equal_pos(mem.cursor, mem.food) then
mem.length=mem.length+1
select_new_food_pos()
end
digiline_send("screen", {mem.cursor,true})
--[[for i,j in ipairs(mem.tail) do
digiline_send("screen", {j,true})
end]]
digiline_send("screen", {mem.food,true})
table.insert(mem.tail, mem.cursor)
interrupt(1)
end





--[[test-program
if event.type=="program" then
mem.w=6
mem.h=6
mem.cursor={0,0}
digiline_send("screen", {"all",false})
digiline_send("screen", {mem.cursor,true})
mem.dirs={["up"]={0,1},
["down"]={0,-1},
["left"]={1,0},
["right"]={-1,0},}
end
if event.type=="digiline" and event.channel=="buttons" then
dir=mem.dirs[event.msg]
if not dir then
if event.msg=="middle" then
digiline_send("screen", {mem.cursor,false})
mem.cursor={0,0}
digiline_send("screen", {mem.cursor,true})
end
return
end
if (mem.cursor[1]+dir[1]<0 or mem.cursor[1]+dir[1]>mem.w-1) or (mem.cursor[2]+dir[2]<0 or mem.cursor[2]+dir[2]>mem.h-1) then return end
digiline_send("screen", {mem.cursor,false})
mem.cursor={mem.cursor[1]+dir[1],mem.cursor[2]+dir[2]}
digiline_send("screen", {mem.cursor,true})
end--]]

Mittlerer Controller:

if event.type=="program" then
mem.images={["404"]={},
["dead"]={{2,2}, {5,2}, {3,3}, {4,3}, {2,5}, {5,5}}, 
["clear"]={}}

end

if event.type == "digiline" and event.channel=="image_manager" then
digiline_send("screen", {"all",false})
image=mem.images[event.msg] or mem.images["404"]
for i,j in ipairs(image) do
digiline_send("screen",{j,true})
end
end

Oberer Controller:

if event.type=="program" then
mem.list={}
end
local function update()
digiline_send("display", "nnnnnn")
for i,j in pairs(mem.list) do
digiline_send("display", j[1]..": "..j[2])
end

end

if event.type=="digiline" and event.channel=="highscore" then
name=event.msg[1]
points=event.msg[2]
if #mem.list==0 then
table.insert(mem.list,{name,points})
elseif mem.list[#mem.list][2]<=points then
for i,j in ipairs(mem.list) do
if j[2]<=points then
table.insert(mem.list,i,{name,points})
break
end
end
if #mem.list > 6 then 
table.remove(mem.list,#mem.list)
end
elseif #mem.list<7 then
table.insert(mem.list,{name,points})
end
update()
end

Schalter für neues Spiel:

if event.type=="program" then
mem.list={}
end
local function update()
digiline_send("display", "nnnnnn")
for i,j in pairs(mem.list) do
digiline_send("display", j[1]..": "..j[2])
end

end

if event.type=="digiline" and event.channel=="highscore" then
name=event.msg[1]
points=event.msg[2]
if #mem.list==0 then
table.insert(mem.list,{name,points})
elseif mem.list[#mem.list][2]<=points then
for i,j in ipairs(mem.list) do
if j[2]<=points then
table.insert(mem.list,i,{name,points})
break
end
end
if #mem.list > 6 then 
table.remove(mem.list,#mem.list)
end
elseif #mem.list<7 then
table.insert(mem.list,{name,points})
end
update()
end

Schalter “nach links”:

if event.type=="on" and pin.c then
digiline_send("buttons", "left")
end

Online-Minetest-Akademie: Live Events und Veranstaltungen: 25.3., 14:00

Die Von Cansteinsche Bibelanstalt Berlin führte schon vor der Corona-Pandemie Online-Gottesdienste, Wettbewerbe und Workshops mit Minecraft durch. In den letzten zwei Jahren haben sie zu wichtigen christlichen Feiertagen junge Menschen eingeladen, sich in einer solchen virtuellen Welt zu treffen und dort gemeinsam zu feiern. Mareike Witt berichtet davon, wie das geht, was man beachten muss und welche Erfahrungen sie gemacht hat. Im Anschluss lädt die Minetestbildungs-Community dazu ein, in einem Überraschungs-Event selber auszuprobieren, welche Interaktionsmöglichkeiten es online gibt. Zum Abschluss gibt es die Gelegenheit, über eigene Projekte oder Ideen zu sprechen und sich auszutauschen.

Bereits ab 13.00 Uhr besteht die Möglichkeit, mit Andrea Janssen und Tobias Thiel an einer Einführung und einem Rundgang über den Bildungsserver mit mehr als 100 pädagogischen Projekten teilzunehmen.  Hierzu wird um eine separate Voranmeldung an: thiel@ev-akademie-wittenberg.de gebeten.

Die Teilnahme ist kostenlos.  Die Veranstaltung findet in der Videokonferenzsoftware Zoom und in Minetest statt. Hinweise, wie sie Minetest installieren, finden Sie unter www.mintestbildung.de -> Anleitungen -> Erste Schritte. Direkt vor der Veranstaltung erhalten Sie bei Bedarf ab 13:00 dabei auch gern Unterstützung. Alle, die Minetest nicht installieren, können den Inhalten über den geteilten Bildschirm folgen, verpassen aber das Gefühl live in der virtuellen Welt dabei gewesen zu sein. Die Zugangsdaten für Zoom erhalten Sie am Vormittag des Veranstaltungstages per Mail, wenn Sie sich bis 24.3. hier anmelden!

Online-Minetest-Akademie: Spielend Politik lernen, Gesellschaft verstehen, Diskurse initiieren und die Zukunft gestalten – mit dem Open-Source-Game Minetest (alternativ zu Minecraft).

Die Veranstaltung findet im Rahmen des Minetestbildungsnetzwerkes und der Ev. Trägegruppe für gesellschaftspolitische Jugendbildung statt und wird aus Mitteln des BMFSFJ gefördert.