forked from VoxeLibre/VoxeLibre
Replace multiple add_basic_rule() calls with per-item-proxy-class add_*_rules().
This commit is contained in:
parent
7ac3ffd0fe
commit
874d5986f6
|
@ -67,10 +67,6 @@ function BucketProxy.make_lava(old_itemstack, cauldron_node)
|
|||
return ItemStack("mcl_buckets:bucket_lava")
|
||||
end
|
||||
|
||||
-- full lava cauldron + empty bucket = empty cauldron, lava bucket
|
||||
BucketProxy:add_basic_rule("lava", true, BucketProxy.is_empty, nil, 0, BucketProxy.make_lava, BucketProxy.sound_lava)
|
||||
-- any lava cauldron + lava bucket = full lava cauldron, empty bucket (may waste bucket)
|
||||
BucketProxy:add_basic_rule("lava", nil, BucketProxy.is_lava, "lava", true, "mcl_buckets:bucket_empty", BucketProxy.sound_lava)
|
||||
-- empty cauldron + lava bucket = full lava cauldron, empty bucket
|
||||
BucketProxy:add_basic_rule(nil, 0, BucketProxy.is_lava, "lava", true, "mcl_buckets:bucket_empty", BucketProxy.sound_lava)
|
||||
|
||||
BucketProxy:add_bucket_rules("lava", BucketProxy.is_lava, BucketProxy.make_lava, BucketProxy.sound_lava)
|
||||
|
||||
|
|
|
@ -52,12 +52,8 @@ function BucketProxy.make_river_water(itemstack, cauldron_node)
|
|||
end
|
||||
end
|
||||
|
||||
-- full river water cauldron + empty bucket -> empty cauldron, river water bucket
|
||||
BucketProxy:add_basic_rule("river_water", 3, BucketProxy.is_empty, nil, 0, "mcl_buckets:bucket_river_water", BucketProxy.sound_water)
|
||||
-- any river water cauldron + river water bucket -> full river water cauldron, empty bucket (may waste bucket)
|
||||
BucketProxy:add_basic_rule("river_water", nil, BucketProxy.is_river_water, "river_water", true, "mcl_buckets:bucket_empty", BucketProxy.sound_water)
|
||||
-- empty cauldron + river water bucket -> full river water cauldron, empty bucket
|
||||
BucketProxy:add_basic_rule(nil, 0, BucketProxy.is_river_water, "river_water", true, "mcl_buckets:bucket_empty", BucketProxy.sound_water)
|
||||
|
||||
BucketProxy:add_bucket_rules("river_water", BucketProxy.is_river_water, "mcl_buckets:bucket_river_water", BucketProxy.sound_water)
|
||||
|
||||
|
||||
|
||||
|
@ -74,13 +70,6 @@ function BottleProxy.make_river_water(old_itemstack, cauldron_node)
|
|||
return ItemStack("mcl_potions:river_water")
|
||||
end
|
||||
|
||||
-- river water cauldron + empty bottle -> river water cauldron less 1, river water bottle
|
||||
BottleProxy:add_basic_rule("river_water", 3, BottleProxy.is_empty, "river_water", 2, BottleProxy.make_river_water, BottleProxy.sound_water)
|
||||
BottleProxy:add_basic_rule("river_water", 2, BottleProxy.is_empty, "river_water", 1, BottleProxy.make_river_water, BottleProxy.sound_water)
|
||||
BottleProxy:add_basic_rule("river_water", 1, BottleProxy.is_empty, nil, 0, BottleProxy.make_river_water, BottleProxy.sound_water)
|
||||
-- empty cauldron + water bottle -> river water cauldron 1, empty bottle
|
||||
BottleProxy:add_basic_rule(nil, 0, BottleProxy.is_river_water, "river_water", 1, BottleProxy.make_empty, BottleProxy.sound_water)
|
||||
-- river water cauldron + river water bottle -> river water cauldron plus 1, empty bottle
|
||||
BottleProxy:add_basic_rule("river_water", 1, BottleProxy.is_river_water, "river_water", 2, BottleProxy.make_empty, BottleProxy.sound_water)
|
||||
BottleProxy:add_basic_rule("river_water", 2, BottleProxy.is_river_water, "river_water", 3, BottleProxy.make_empty, BottleProxy.sound_water)
|
||||
|
||||
BottleProxy:add_bottle_rules("river_water", BottleProxy.is_river_water, "mcl_potions:bottle_river_water", BottleProxy.sound_water)
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated 2021-11-10 21:14:01 </i>
|
||||
<i style="float:right;">Last updated 2021-11-12 11:20:21 </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
|
|
|
@ -898,7 +898,7 @@
|
|||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated 2021-11-10 21:14:01 </i>
|
||||
<i style="float:right;">Last updated 2021-11-12 11:20:21 </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
|
|
|
@ -281,7 +281,7 @@
|
|||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated 2021-11-10 21:14:01 </i>
|
||||
<i style="float:right;">Last updated 2021-11-12 11:20:21 </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
|
|
|
@ -100,6 +100,10 @@
|
|||
<td class="summary">Rule's <code>output_specifier</code> callback for obtaining a water bucket.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#BucketProxy:add_bucket_rules">BucketProxy:add_bucket_rules (substance, filled_input, filled_output, sound_specifier)</a></td>
|
||||
<td class="summary">Patterned bucket rules.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#BottleProxy.is_empty">BottleProxy.is_empty (itemstack)</a></td>
|
||||
<td class="summary">Rule's <code>input_constraint</code> callback for empty bottle.</td>
|
||||
</tr>
|
||||
|
@ -120,6 +124,10 @@
|
|||
<td class="summary">Rule's <code>output_specifier</code> function for obtaining water bottle.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#BottleProxy:add_bottle_rules">BottleProxy:add_bottle_rules (substance, filled_input, filled_output, sound_specifier)</a></td>
|
||||
<td class="summary">Patterned bottle rules.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#BannerProxy.is_banner">BannerProxy.is_banner (itemstack)</a></td>
|
||||
<td class="summary">Rule's <code>input_constraint</code> function for banner.</td>
|
||||
</tr>
|
||||
|
@ -127,6 +135,10 @@
|
|||
<td class="name" nowrap><a href="#BannerProxy.wash_banner">BannerProxy.wash_banner (old_itemstack, cauldron_node)</a></td>
|
||||
<td class="summary">Rule's <code>output_specifier</code> function for obtaining washed banner.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" nowrap><a href="#BannerProxy:add_banner_rules">BannerProxy:add_banner_rules (substance, sound_specifier)</a></td>
|
||||
<td class="summary">Patterned banner rules.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2><a href="#Tables">Tables</a></h2>
|
||||
<table class="function_list">
|
||||
|
@ -524,6 +536,37 @@
|
|||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "BucketProxy:add_bucket_rules"></a>
|
||||
<strong>BucketProxy:add_bucket_rules (substance, filled_input, filled_output, sound_specifier)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Patterned bucket rules. </p>
|
||||
|
||||
<p> Buckets fill to full, empty from full.
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">substance</span>
|
||||
string : substance shared between bucket and cauldron
|
||||
</li>
|
||||
<li><span class="parameter">filled_input</span>
|
||||
string/function : filled bucket given to cauldron
|
||||
</li>
|
||||
<li><span class="parameter">filled_output</span>
|
||||
string/function : filled bucket taken from cauldron
|
||||
</li>
|
||||
<li><span class="parameter">sound_specifier</span>
|
||||
string/function : rule's sound specifier
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "BottleProxy.is_empty"></a>
|
||||
|
@ -658,6 +701,37 @@
|
|||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "BottleProxy:add_bottle_rules"></a>
|
||||
<strong>BottleProxy:add_bottle_rules (substance, filled_input, filled_output, sound_specifier)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Patterned bottle rules. </p>
|
||||
|
||||
<p> Bottles fill by 1 level, drain by 1 level, not wasted on full cauldron.
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">substance</span>
|
||||
string : substance shared between bottle and cauldron.
|
||||
</li>
|
||||
<li><span class="parameter">filled_input</span>
|
||||
string/function : filled bottle given to cauldron
|
||||
</li>
|
||||
<li><span class="parameter">filled_output</span>
|
||||
string/function : filled bottle taken from cauldron
|
||||
</li>
|
||||
<li><span class="parameter">sound_specifier</span>
|
||||
string/function : rule's sound specifier
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "BannerProxy.is_banner"></a>
|
||||
|
@ -713,6 +787,31 @@
|
|||
|
||||
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "BannerProxy:add_banner_rules"></a>
|
||||
<strong>BannerProxy:add_banner_rules (substance, sound_specifier)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Patterned banner rules. </p>
|
||||
|
||||
<p> Banner washed in cauldron, reduces by 1 level, may waste washing (blank banner washable)
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">substance</span>
|
||||
string : substance consumed from cauldron
|
||||
</li>
|
||||
<li><span class="parameter">sound_specifier</span>
|
||||
string/function : rule's sound specifier
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<h2 class="section-header "><a name="Tables"></a>Tables</h2>
|
||||
|
@ -942,7 +1041,7 @@
|
|||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
|
||||
<i style="float:right;">Last updated 2021-11-10 21:14:01 </i>
|
||||
<i style="float:right;">Last updated 2021-11-12 11:20:21 </i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
|
|
|
@ -365,12 +365,28 @@ function BucketProxy.make_water(old_itemstack, cauldron_node)
|
|||
end
|
||||
end
|
||||
|
||||
-- full water cauldron + empty bucket -> empty cauldron, water bucket
|
||||
BucketProxy:add_basic_rule("water", 3, BucketProxy.is_empty, nil, 0, "mcl_buckets:bucket_water", BucketProxy.sound_water)
|
||||
-- any water cauldron + water bucket -> full water cauldron, empty bucket (may waste bucket)
|
||||
BucketProxy:add_basic_rule("water", nil, BucketProxy.is_water, "water", true, "mcl_buckets:bucket_empty", BucketProxy.sound_water)
|
||||
-- empty cauldron + water bucket -> full water cauldron, empty bucket
|
||||
BucketProxy:add_basic_rule(nil, 0, BucketProxy.is_water, "water", true, "mcl_buckets:bucket_empty", BucketProxy.sound_water)
|
||||
|
||||
--- Patterned bucket rules.
|
||||
--
|
||||
-- Buckets fill to full, empty from full.
|
||||
-- @param substance string : substance shared between bucket and cauldron
|
||||
-- @param filled_input string/function : filled bucket given to cauldron
|
||||
-- @param filled_output string/function : filled bucket taken from cauldron
|
||||
-- @param sound_specifier string/function : rule's sound specifier
|
||||
function BucketProxy:add_bucket_rules(substance, filled_input, filled_output, sound_specifier)
|
||||
local empty = "mcl_buckets:bucket_empty"
|
||||
local empty_output = "mcl_buckets:bucket_empty"
|
||||
-- full stuff cauldron + empty bucket -> empty cauldron, full bucket
|
||||
self:add_basic_rule(substance, true, empty, nil, 0, filled_output, sound_specifier)
|
||||
-- any level stuff cauldron + stuff bucket -> full stuff cauldron, empty bucket (may waste bucket)
|
||||
self:add_basic_rule(substance, nil, filled_input, substance, true, empty_output, sound_specifier)
|
||||
-- empty cauldron + stuff bucket -> full stuff cauldron, empty bucket
|
||||
self:add_basic_rule(nil, 0, filled_input, substance, true, empty_output, sound_specifier)
|
||||
-- other combinations -> do nothing (no interaction)
|
||||
end
|
||||
|
||||
|
||||
BucketProxy:add_bucket_rules("water", BucketProxy.is_water, "mcl_buckets:bucket_water", BucketProxy.sound_water)
|
||||
|
||||
|
||||
-------
|
||||
|
@ -432,15 +448,30 @@ function BottleProxy.make_water(old_itemstack, cauldron_node)
|
|||
return ItemStack("mcl_potions:water")
|
||||
end
|
||||
|
||||
-- water cauldron + empty bottle -> water cauldron less 1, water bottle
|
||||
BottleProxy:add_basic_rule("water", 3, BottleProxy.is_empty, "water", 2, BottleProxy.make_water, BottleProxy.sound_water)
|
||||
BottleProxy:add_basic_rule("water", 2, BottleProxy.is_empty, "water", 1, BottleProxy.make_water, BottleProxy.sound_water)
|
||||
BottleProxy:add_basic_rule("water", 1, BottleProxy.is_empty, nil, 0, BottleProxy.make_water, BottleProxy.sound_water)
|
||||
-- empty cauldron + water bottle -> water cauldron 1, empty bottle
|
||||
BottleProxy:add_basic_rule(nil, 0, BottleProxy.is_water, "water", 1, BottleProxy.make_empty, BottleProxy.sound_water)
|
||||
-- water cauldron + water bottle -> water cauldron plus 1, empty bottle
|
||||
BottleProxy:add_basic_rule("water", 1, BottleProxy.is_water, "water", 2, BottleProxy.make_empty, BottleProxy.sound_water)
|
||||
BottleProxy:add_basic_rule("water", 2, BottleProxy.is_water, "water", 3, BottleProxy.make_empty, BottleProxy.sound_water)
|
||||
--- Patterned bottle rules.
|
||||
--
|
||||
-- Bottles fill by 1 level, drain by 1 level, not wasted on full cauldron.
|
||||
-- @param substance string : substance shared between bottle and cauldron.
|
||||
-- @param filled_input string/function : filled bottle given to cauldron
|
||||
-- @param filled_output string/function : filled bottle taken from cauldron
|
||||
-- @param sound_specifier string/function : rule's sound specifier
|
||||
function BottleProxy:add_bottle_rules(substance, filled_input, filled_output, sound_specifier)
|
||||
local empty_input = self.is_empty
|
||||
local empty_output = self.make_empty
|
||||
-- stuff cauldron + empty bottle -> stuff cauldron less 1, water bottle
|
||||
self:add_basic_rule(substance, 3, empty_input, substance, 2, filled_output, sound_specifier)
|
||||
self:add_basic_rule(substance, 2, empty_input, substance, 1, filled_output, sound_specifier)
|
||||
self:add_basic_rule(substance, 1, empty_input, nil, 0, filled_output, sound_specifier)
|
||||
-- empty cauldron + stuff bottle -> stuff cauldron 1, empty bottle
|
||||
self:add_basic_rule(nil, 0, filled_input, substance, 1, empty_output, sound_specifier)
|
||||
-- stuff cauldron + stuff bottle -> stuff cauldron plus 1, empty bottle
|
||||
self:add_basic_rule(substance, 1, filled_input, substance, 2, empty_output, sound_specifier)
|
||||
self:add_basic_rule(substance, 2, filled_input, substance, 3, empty_output, sound_specifier)
|
||||
-- full cauldron + stuff bottle -> do nothing (do not waste bottle)
|
||||
end
|
||||
|
||||
|
||||
BottleProxy:add_bottle_rules("water", BottleProxy.is_water, BottleProxy.make_water, BottleProxy.sound_water)
|
||||
|
||||
|
||||
-------
|
||||
|
@ -485,11 +516,20 @@ function BannerProxy.wash_banner(old_itemstack, cauldron_node)
|
|||
return washed_itemstack
|
||||
end
|
||||
|
||||
-- water cauldron any + banner -> water cauldron less 1, washed banner
|
||||
BannerProxy:add_basic_rule("water", 3, BannerProxy.is_banner, "water", 2, BannerProxy.wash_banner, "mcl_potions_bottle_pour")
|
||||
BannerProxy:add_basic_rule("water", 2, BannerProxy.is_banner, "water", 1, BannerProxy.wash_banner, "mcl_potions_bottle_pour")
|
||||
BannerProxy:add_basic_rule("water", 1, BannerProxy.is_banner, nil, 0, BannerProxy.wash_banner, "mcl_potions_bottle_pour")
|
||||
|
||||
--- Patterned banner rules.
|
||||
--
|
||||
-- Banner washed in cauldron, reduces by 1 level, may waste washing (blank banner washable)
|
||||
-- @param substance string : substance consumed from cauldron
|
||||
-- @param sound_specifier string/function : rule's sound specifier
|
||||
function BannerProxy:add_banner_rules(substance, sound_specifier)
|
||||
self:add_basic_rule(substance, 3, self.is_banner, substance, 2, self.wash_banner, sound_specifier)
|
||||
self:add_basic_rule(substance, 2, self.is_banner, substance, 1, self.wash_banner, sound_specifier)
|
||||
self:add_basic_rule(substance, 1, self.is_banner, nil, 0, self.wash_banner, sound_specifier)
|
||||
end
|
||||
|
||||
|
||||
BannerProxy:add_banner_rules("water", "mcl_potions_bottle_pour")
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue