Licencing information, downloads, improved image styles, note about WorldEdit.

master
Anthony Zhang 2013-03-17 17:58:32 -04:00
parent 5cefd00579
commit c6ac9d69ad
6 changed files with 923 additions and 11 deletions

View File

@ -40,7 +40,7 @@ h4 {
margin: 0;
}
img {
img.picture {
width: 30em;
display: block;
margin: 2em;
@ -54,7 +54,11 @@ img {
img.preview {
margin: 0;
width: 10em;
display: block;
float: right;
-webkit-box-shadow: 0 0 1em rgba(0, 0, 0, 1);
-moz-box-shadow: 0 0 1em rgba(0, 0, 0, 1);
box-shadow: 0 0 1em rgba(0, 0, 0, 1);
}
pre {
@ -90,11 +94,7 @@ a.post {
.difficulty img {
width: auto;
height: 1em;
display: inline;
margin: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.entry {

View File

@ -66,6 +66,8 @@
<img src="projects/DoublePiston/img/DoublePiston.gif" alt="Post preview" class="preview">
</td>
</tr></table>
<br><br><br><br>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.
</div>
</body>
</html>

View File

@ -0,0 +1,243 @@
return {
-- Table: {1}
{
{2},
{3},
{4},
{5},
{6},
{7},
{8},
{9},
{10},
},
-- Table: {2}
{
["y"]=0,
["x"]=0,
["name"]="default:sign_wall",
["z"]=1,
["meta"]={11},
["param2"]=1,
["param1"]=79,
},
-- Table: {3}
{
["y"]=0,
["x"]=1,
["name"]="mesecons_switch:mesecon_switch_off",
["z"]=1,
["meta"]={12},
["param2"]=1,
["param1"]=0,
},
-- Table: {4}
{
["y"]=0,
["x"]=2,
["name"]="mesecons_insulated:insulated_off",
["z"]=1,
["meta"]={13},
["param2"]=2,
["param1"]=47,
},
-- Table: {5}
{
["y"]=0,
["x"]=3,
["name"]="mesecons_extrawires:corner_off",
["z"]=0,
["meta"]={14},
["param2"]=2,
["param1"]=47,
},
-- Table: {6}
{
["y"]=0,
["x"]=3,
["name"]="mesecons_luacontroller:luacontroller0000",
["z"]=1,
["meta"]={15},
["param2"]=0,
["param1"]=31,
},
-- Table: {7}
{
["y"]=0,
["x"]=3,
["name"]="mesecons_extrawires:corner_off",
["z"]=2,
["meta"]={16},
["param2"]=3,
["param1"]=47,
},
-- Table: {8}
{
["y"]=0,
["x"]=4,
["name"]="default:cobble",
["z"]=0,
["meta"]={17},
["param2"]=0,
["param1"]=0,
},
-- Table: {9}
{
["y"]=0,
["x"]=4,
["name"]="mesecons_pistons:piston_sticky_off",
["z"]=1,
["meta"]={18},
["param2"]=0,
["param1"]=0,
},
-- Table: {10}
{
["y"]=0,
["x"]=4,
["name"]="mesecons_pistons:piston_sticky_off",
["z"]=2,
["meta"]={19},
["param2"]=0,
["param1"]=0,
},
-- Table: {11}
{
["inventory"]={20},
["fields"]={21},
},
-- Table: {12}
{
["inventory"]={22},
["fields"]={23},
},
-- Table: {13}
{
["inventory"]={24},
["fields"]={25},
},
-- Table: {14}
{
["inventory"]={26},
["fields"]={27},
},
-- Table: {15}
{
["inventory"]={28},
["fields"]={29},
},
-- Table: {16}
{
["inventory"]={30},
["fields"]={31},
},
-- Table: {17}
{
["inventory"]={32},
["fields"]={33},
},
-- Table: {18}
{
["inventory"]={34},
["fields"]={35},
},
-- Table: {19}
{
["inventory"]={36},
["fields"]={37},
},
-- Table: {20}
{
},
-- Table: {21}
{
["text"]="Double sticky piston driver",
["infotext"]="\"Double sticky piston driver\"",
["formspec"]="field[text;;${text}]",
},
-- Table: {22}
{
},
-- Table: {23}
{
},
-- Table: {24}
{
},
-- Table: {25}
{
},
-- Table: {26}
{
},
-- Table: {27}
{
},
-- Table: {28}
{
},
-- Table: {29}
{
["heat"]="-1",
["code"]="if event.iid == \"pull1\" then\
port.b = false\
interrupt(0.2, \"push2\")\
elseif event.iid == \"push2\" then\
port.c = true\
interrupt(0.2, \"pull2\")\
elseif event.iid == \"pull2\" then\
port.c = false\
else\
if pin.a then --extend\
port.b = true\
port.d = true\
else --retract\
port.d = false\
interrupt(0.2, \"pull1\")\
end\
end",
["lc_interrupts"]="return { \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\" }",
["formspec"]="size[10,8]background[-0.2,-0.25;10.4,8.75;jeija_luac_background.png]textarea[0.2,0.6;10.2,5;code;;if event.iid == \"pull1\" then\
port.b = false\
interrupt(0.2, \"push2\")\
elseif event.iid == \"push2\" then\
port.c = true\
interrupt(0.2, \"pull2\")\
elseif event.iid == \"pull2\" then\
port.c = false\
else\
if pin.a then --extend\
port.b = true\
port.d = true\
else --retract\
port.d = false\
interrupt(0.2, \"pull1\")\
end\
end]image_button[3.75,6;2.5,1;jeija_luac_runbutton.png;program;]image_button_exit[9.72,-0.25;0.425,0.4;jeija_close_window.png;exit;]label[0.1,5;]",
["lc_memory"]="return { }",
},
-- Table: {30}
{
},
-- Table: {31}
{
},
-- Table: {32}
{
},
-- Table: {33}
{
},
-- Table: {34}
{
},
-- Table: {35}
{
},
-- Table: {36}
{
},
-- Table: {37}
{
},
}

View File

@ -0,0 +1,658 @@
return {
-- Table: {1}
{
{2},
{3},
{4},
{5},
{6},
{7},
{8},
{9},
{10},
{11},
{12},
{13},
{14},
{15},
{16},
{17},
{18},
{19},
{20},
{21},
{22},
{23},
{24},
{25},
{26},
{27},
{28},
{29},
},
-- Table: {2}
{
["y"]=0,
["x"]=0,
["name"]="default:glass",
["z"]=0,
["meta"]={30},
["param2"]=0,
["param1"]=15,
},
-- Table: {3}
{
["y"]=0,
["x"]=0,
["name"]="default:glass",
["z"]=1,
["meta"]={31},
["param2"]=0,
["param1"]=15,
},
-- Table: {4}
{
["y"]=0,
["x"]=0,
["name"]="default:glass",
["z"]=2,
["meta"]={32},
["param2"]=0,
["param1"]=15,
},
-- Table: {5}
{
["y"]=0,
["x"]=0,
["name"]="mesecons_switch:mesecon_switch_off",
["z"]=3,
["meta"]={33},
["param2"]=1,
["param1"]=0,
},
-- Table: {6}
{
["y"]=0,
["x"]=0,
["name"]="default:glass",
["z"]=4,
["meta"]={34},
["param2"]=0,
["param1"]=47,
},
-- Table: {7}
{
["y"]=0,
["x"]=1,
["name"]="default:glass",
["z"]=0,
["meta"]={35},
["param2"]=0,
["param1"]=15,
},
-- Table: {8}
{
["y"]=0,
["x"]=1,
["name"]="default:glass",
["z"]=1,
["meta"]={36},
["param2"]=0,
["param1"]=15,
},
-- Table: {9}
{
["y"]=0,
["x"]=1,
["name"]="default:glass",
["z"]=2,
["meta"]={37},
["param2"]=0,
["param1"]=15,
},
-- Table: {10}
{
["y"]=0,
["x"]=1,
["name"]="mesecons_insulated:insulated_off",
["z"]=3,
["meta"]={38},
["param2"]=0,
["param1"]=15,
},
-- Table: {11}
{
["y"]=0,
["x"]=1,
["name"]="default:glass",
["z"]=4,
["meta"]={39},
["param2"]=0,
["param1"]=31,
},
-- Table: {12}
{
["y"]=0,
["x"]=2,
["name"]="default:glass",
["z"]=0,
["meta"]={40},
["param2"]=0,
["param1"]=15,
},
-- Table: {13}
{
["y"]=0,
["x"]=2,
["name"]="default:glass",
["z"]=1,
["meta"]={41},
["param2"]=0,
["param1"]=15,
},
-- Table: {14}
{
["y"]=0,
["x"]=2,
["name"]="mesecons:wire_01000000_off",
["z"]=2,
["meta"]={42},
["param2"]=0,
["param1"]=15,
},
-- Table: {15}
{
["y"]=0,
["x"]=2,
["name"]="mesecons_luacontroller:luacontroller0000",
["z"]=3,
["meta"]={43},
["param2"]=0,
["param1"]=15,
},
-- Table: {16}
{
["y"]=0,
["x"]=2,
["name"]="mesecons:wire_10011000_off",
["z"]=4,
["meta"]={44},
["param2"]=0,
["param1"]=15,
},
-- Table: {17}
{
["y"]=0,
["x"]=3,
["name"]="default:glass",
["z"]=0,
["meta"]={45},
["param2"]=0,
["param1"]=15,
},
-- Table: {18}
{
["y"]=0,
["x"]=3,
["name"]="default:glass",
["z"]=1,
["meta"]={46},
["param2"]=0,
["param1"]=15,
},
-- Table: {19}
{
["y"]=0,
["x"]=3,
["name"]="default:glass",
["z"]=2,
["meta"]={47},
["param2"]=0,
["param1"]=13,
},
-- Table: {20}
{
["y"]=0,
["x"]=3,
["name"]="mesecons_insulated:insulated_off",
["z"]=3,
["meta"]={48},
["param2"]=0,
["param1"]=13,
},
-- Table: {21}
{
["y"]=0,
["x"]=3,
["name"]="default:glass",
["z"]=4,
["meta"]={49},
["param2"]=0,
["param1"]=13,
},
-- Table: {22}
{
["y"]=1,
["x"]=3,
["name"]="default:cobble",
["z"]=2,
["meta"]={50},
["param2"]=0,
["param1"]=0,
},
-- Table: {23}
{
["y"]=1,
["x"]=3,
["name"]="mesecons_pistons:piston_sticky_off",
["z"]=3,
["meta"]={51},
["param2"]=0,
["param1"]=0,
},
-- Table: {24}
{
["y"]=1,
["x"]=3,
["name"]="mesecons_pistons:piston_sticky_off",
["z"]=4,
["meta"]={52},
["param2"]=0,
["param1"]=0,
},
-- Table: {25}
{
["y"]=0,
["x"]=4,
["name"]="default:glass",
["z"]=0,
["meta"]={53},
["param2"]=0,
["param1"]=15,
},
-- Table: {26}
{
["y"]=0,
["x"]=4,
["name"]="default:glass",
["z"]=1,
["meta"]={54},
["param2"]=0,
["param1"]=15,
},
-- Table: {27}
{
["y"]=0,
["x"]=4,
["name"]="default:glass",
["z"]=2,
["meta"]={55},
["param2"]=0,
["param1"]=15,
},
-- Table: {28}
{
["y"]=0,
["x"]=4,
["name"]="mesecons:wire_00100010_off",
["z"]=3,
["meta"]={56},
["param2"]=0,
["param1"]=15,
},
-- Table: {29}
{
["y"]=0,
["x"]=4,
["name"]="default:glass",
["z"]=4,
["meta"]={57},
["param2"]=0,
["param1"]=15,
},
-- Table: {30}
{
["inventory"]={58},
["fields"]={59},
},
-- Table: {31}
{
["inventory"]={60},
["fields"]={61},
},
-- Table: {32}
{
["inventory"]={62},
["fields"]={63},
},
-- Table: {33}
{
["inventory"]={64},
["fields"]={65},
},
-- Table: {34}
{
["inventory"]={66},
["fields"]={67},
},
-- Table: {35}
{
["inventory"]={68},
["fields"]={69},
},
-- Table: {36}
{
["inventory"]={70},
["fields"]={71},
},
-- Table: {37}
{
["inventory"]={72},
["fields"]={73},
},
-- Table: {38}
{
["inventory"]={74},
["fields"]={75},
},
-- Table: {39}
{
["inventory"]={76},
["fields"]={77},
},
-- Table: {40}
{
["inventory"]={78},
["fields"]={79},
},
-- Table: {41}
{
["inventory"]={80},
["fields"]={81},
},
-- Table: {42}
{
["inventory"]={82},
["fields"]={83},
},
-- Table: {43}
{
["inventory"]={84},
["fields"]={85},
},
-- Table: {44}
{
["inventory"]={86},
["fields"]={87},
},
-- Table: {45}
{
["inventory"]={88},
["fields"]={89},
},
-- Table: {46}
{
["inventory"]={90},
["fields"]={91},
},
-- Table: {47}
{
["inventory"]={92},
["fields"]={93},
},
-- Table: {48}
{
["inventory"]={94},
["fields"]={95},
},
-- Table: {49}
{
["inventory"]={96},
["fields"]={97},
},
-- Table: {50}
{
["inventory"]={98},
["fields"]={99},
},
-- Table: {51}
{
["inventory"]={100},
["fields"]={101},
},
-- Table: {52}
{
["inventory"]={102},
["fields"]={103},
},
-- Table: {53}
{
["inventory"]={104},
["fields"]={105},
},
-- Table: {54}
{
["inventory"]={106},
["fields"]={107},
},
-- Table: {55}
{
["inventory"]={108},
["fields"]={109},
},
-- Table: {56}
{
["inventory"]={110},
["fields"]={111},
},
-- Table: {57}
{
["inventory"]={112},
["fields"]={113},
},
-- Table: {58}
{
},
-- Table: {59}
{
},
-- Table: {60}
{
},
-- Table: {61}
{
},
-- Table: {62}
{
},
-- Table: {63}
{
},
-- Table: {64}
{
},
-- Table: {65}
{
},
-- Table: {66}
{
},
-- Table: {67}
{
},
-- Table: {68}
{
},
-- Table: {69}
{
},
-- Table: {70}
{
},
-- Table: {71}
{
},
-- Table: {72}
{
},
-- Table: {73}
{
},
-- Table: {74}
{
},
-- Table: {75}
{
},
-- Table: {76}
{
},
-- Table: {77}
{
},
-- Table: {78}
{
},
-- Table: {79}
{
},
-- Table: {80}
{
},
-- Table: {81}
{
},
-- Table: {82}
{
},
-- Table: {83}
{
},
-- Table: {84}
{
},
-- Table: {85}
{
["heat"]="-1",
["code"]="if event.iid == \"pull1\" then\
port.b = false\
interrupt(0.2, \"push2\")\
elseif event.iid == \"push2\" then\
port.c = true\
interrupt(0.2, \"pull2\")\
elseif event.iid == \"pull2\" then\
port.c = false\
else\
if pin.a then --extend\
port.b = true\
port.d = true\
else --retract\
port.d = false\
interrupt(0.2, \"pull1\")\
end\
end",
["lc_interrupts"]="return { \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\", \"pull1\", \"push2\", \"pull2\" }",
["formspec"]="size[10,8]background[-0.2,-0.25;10.4,8.75;jeija_luac_background.png]textarea[0.2,0.6;10.2,5;code;;if event.iid == \"pull1\" then\
port.b = false\
interrupt(0.2, \"push2\")\
elseif event.iid == \"push2\" then\
port.c = true\
interrupt(0.2, \"pull2\")\
elseif event.iid == \"pull2\" then\
port.c = false\
else\
if pin.a then --extend\
port.b = true\
port.d = true\
else --retract\
port.d = false\
interrupt(0.2, \"pull1\")\
end\
end]image_button[3.75,6;2.5,1;jeija_luac_runbutton.png;program;]image_button_exit[9.72,-0.25;0.425,0.4;jeija_close_window.png;exit;]label[0.1,5;]",
["lc_memory"]="return { }",
},
-- Table: {86}
{
},
-- Table: {87}
{
},
-- Table: {88}
{
},
-- Table: {89}
{
},
-- Table: {90}
{
},
-- Table: {91}
{
},
-- Table: {92}
{
},
-- Table: {93}
{
},
-- Table: {94}
{
},
-- Table: {95}
{
},
-- Table: {96}
{
},
-- Table: {97}
{
},
-- Table: {98}
{
},
-- Table: {99}
{
},
-- Table: {100}
{
},
-- Table: {101}
{
},
-- Table: {102}
{
},
-- Table: {103}
{
},
-- Table: {104}
{
},
-- Table: {105}
{
},
-- Table: {106}
{
},
-- Table: {107}
{
},
-- Table: {108}
{
},
-- Table: {109}
{
},
-- Table: {110}
{
},
-- Table: {111}
{
},
-- Table: {112}
{
},
-- Table: {113}
{
},
}

View File

@ -28,7 +28,7 @@
</p>
<p>The double sticky piston driver is an important component of many circuits that need to push nodes farther than just one block.</p>
<p>Here's a quick picture of what we'll be making:</p>
<img src="img/DoublePiston.gif" alt="Double sticky piston extend/retract animation">
<img src="img/DoublePiston.gif" alt="Double sticky piston extend/retract animation" class="picture">
<p>What we have is two pistons, one in front of the other. Let's call them the front and back pistons.</p>
<p>When powered, it pushes a node forward by two blocks. When unpowered, it pulls a node backward by two blocks.</p>
<p>This is a pretty simple circuit, but there are a lot nuances to be aware of with regards to timing and ordering. For example, an extended piston cannot be pushed or pulled correctly since the stopper is out, and a sticky piston pulls when it receives an off signal, but not when it is dug.</p>
@ -50,12 +50,12 @@
<h4>Step 2: Layout</h4>
<p>First, we need to set up the basic components. In other words, the pistons and the node we are pushing/pulling:</p>
<img src="img/DoublePiston1.png" alt="Two pistons and a node">
<img src="img/DoublePiston1.png" alt="Two pistons and a node" class="picture">
<p>On the left we have the rear piston, on the middle, the front piston. To the right we find the node itself. I used cobble as an example.</p>
<h4>Step 3: Control</h4>
<p>Now that the pistons are in place, there needs to be some way of converting the on/off signal into the sequences described in Step 1. There are a whole bunch of ways you can go about this, but I find that the easiest way is to simply use a Luacontroller and wire three of the four ports into their proper places:</p>
<img src="img/DoublePiston2.png" alt="Luacontroller wired to two pistons">
<img src="img/DoublePiston2.png" alt="Luacontroller wired to two pistons" class="picture">
<p>You'll notice that I connected the fourth, unused port to a switch. This will be our signal. When turned on, the circuit will perform the extension sequence. When turned off, the circuit will perform the retraction sequence.</p>
<p>At the moment the circuit can be made significantly smaller, but we will cover that later.</p>
@ -89,11 +89,18 @@ end</pre>
<h4>Step 5: Improvements</h4>
<p>We're not done yet though. The circuit can still be made better. For example, we can remove the row of wires leading up to the pistons:</p>
<img src="img/DoublePiston3.png" alt="Final design">
<img src="img/DoublePiston3.png" alt="Final design" class="picture">
<p>Or maybe a version embedded in the ground to gave a low footprint:</p>
<img src="img/DoublePiston4.png" alt="Low footprint design">
<img src="img/DoublePiston4.png" alt="Low footprint design" class="picture">
<p>Here I've replaced a bit of the ground with glass to better view the circuitry.</p>
<p>The possiblities are endless. Play around with the concepts and see what you can come up with!</p>
<h4>Downloads</h4>
<p>All files are available under the same license as this article. The WEM schematics can be loaded using the //metaload command in <a href="https://github.com/Uberi/MineTest-WorldEdit">WorldEdit</a>.</p>
<p><a href="DoublePiston.wem" class="post">Double sticky piston driver in WorldEdit-Meta format (WEM)</a></p>
<p><a href="DoublePiston.wem" class="post">Low profile double sticky piston driver in WorldEdit-Meta format (WEM)</a></p>
<br><br><br><br>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.
</div>
</body>
</html>

View File

@ -26,7 +26,7 @@
<img src="../../img/DifficultyEmpty.png">
(5/10)
</p>
<p>This article assumes you have the <a href="https://github.com/Jeija/minetest-mod-digilines/">Digilines mod</a>, which I generally consider a de facto part of Mesecons. It is still possible to complete it without this mod, but replacing its functionality with fancy wiring is an exercise left to the reader.</p>
<p>This article assumes you have the <a href="https://github.com/Jeija/minetest-mod-digilines/">Digilines mod</a>, which I generally consider a de facto part of Mesecons. It is still possible to complete it without this mod, but replacing its functionality with fancy wiring is an exercise left to the reader. Having <a href="https://github.com/Uberi/MineTest-WorldEdit">WorldEdit</a> is helpful as well.</p>
<p>Unless you've been living under a rock five hundred meters below the surface of Europa, you've probably heard of tic-tac-toe. Maybe. In any case, I won't be explaining how it's played; if you care to refresh your memory, here's a lovely <a href="http://en.wikipedia.org/wiki/Tic-tac-toe">Wikipedia article</a>. Better? Better.</p>
<img src="img/Machine.png" alt="Tic-tac-toe machine">
<h2>This article is a work-in-progress! Check out some of the other articles at the <a href="../../index.html" class="title">homepage</a>!</h2>
@ -89,6 +89,8 @@ elseif event.channel == "clear" then
port.a, port.b, port.d = false, false, false
end</pre>
<p>The only thing changed from the original cell is that "set11" has been replaced by "set32" in the Luacontrollers, representing column 3, row 2.</p>
<br><br><br><br>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.
</div>
</body>
</html>