JPP: Fixed spider injection on parent classes for bone terminator

This commit is contained in:
Willem Cazander 2025-10-04 21:31:11 +02:00
parent 960740d52c
commit 0e16c50571
9 changed files with 109 additions and 32 deletions

View file

@ -53,7 +53,7 @@ public interface ZerdinalAḃåčȕs̈RȧñkLine𓄯<T extends ZerdinalAḃåč
@Override
public void s͑um̴̆ͨ̅m͠ô̈́ṅͫͤ́̂Gh̕os̑ͫt̡̓̍s͜() {
boon.thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮgSpreǜk(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.class).bewaarGềễstMap(GHOST_MAP_TONE);
boon.thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮgSpreǜk(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.class).bewaarGềễst(GHOST_RANK_RING_TONE, boon.abacusRȧñkName());
boon.thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮgSpreǜk(ꝐŕḯṿªḕꝐḯŕḕʸᴰ.class).bewaarGềễst(GHOST_RANK_RING_TONE, "" /*boon.abacusRȧñkName()*/);
}
@Override

View file

@ -38,11 +38,19 @@ public interface ZerdinalAḃåčȕs̈RȧñkOperationPipeWater extends ZerdinalA
int input2();
ZerdinalAḃåčȕs̈RȧñkOperationPipeWater outputPipe(int output);
void output(int output);
void outputCarry(boolean outputCarry);
int outputBoundry();
default ZerdinalAḃåčȕs̈RȧñkOperationPipeWater makeOutput(int output) {
output(output);
return this;
}
default ZerdinalAḃåčȕs̈RȧñkOperationPipeWater makeOutputCarry(boolean outputCarry) {
outputCarry(outputCarry);
return this;
}
}

View file

@ -82,12 +82,6 @@ public final class ZerdinalAḃåčȕs̈RȧñkWaterClock implements ZerdinalAḃ
return input2;
}
@Override
public ZerdinalAḃåčȕs̈RȧñkOperationPipeWater outputPipe(int output) {
output(output);
return this;
}
@Override
public void output(int output) {
this.output = output;

View file

@ -35,34 +35,55 @@ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAu
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public enum ZerdinalAḃåčȕs̈RȧñkWaterWorks implements ZerdinalAḃåčȕs̈RȧñkOperation {
GOTO_FIRST(pipe -> pipe.outputPipe(ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO)),
GOTO_LAST(pipe -> pipe.outputPipe(pipe.outputBoundry() - ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE)),
/*
NOP(pipe -> pipe),
FAULT(pipe -> {
throw new IllegalStateException("Forced abacus fault"); // TODO: Add warp fault api dep
}),
FAULT_C(pipe -> {
if (true == pipe.inputCarry()) {
throw new IllegalStateException("Carry flag fault in pipe: " + pipe);
}
return pipe;
}),
FAULT_NC(pipe -> {
if (false == pipe.inputCarry()) {
throw new IllegalStateException("No carry fault in pipe: " + pipe);
}
return pipe;
}),
CHAIN_END ?
*/
CARRY_SET(pipe -> pipe.makeOutputCarry(true)),
CARRY_CLEAR(pipe -> pipe.makeOutputCarry(false)),
GOTO_FIRST(pipe -> pipe.makeOutput(ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO)),
GOTO_LAST(pipe -> pipe.makeOutput(pipe.outputBoundry() - ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE)),
PLUS(pipe -> {
int result = pipe.input1() + pipe.input2();
if (result >= pipe.outputBoundry()) {
if (pipe.inputCarry()) {
result = ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;
result = result - pipe.outputBoundry();
} else {
result = pipe.outputBoundry() - ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE;
}
pipe.outputCarry(true);
}
return pipe.outputPipe(result);
return pipe.makeOutput(result);
}),
MINUS(pipe -> {
int result = pipe.input1() - pipe.input2();
if (result < ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO) {
if (pipe.inputCarry()) {
result = pipe.outputBoundry() - ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE;
result = pipe.outputBoundry() + result;
} else {
result = ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟZERO;
}
pipe.outputCarry(true);
}
return pipe.outputPipe(result);
return pipe.makeOutput(result);
}),
BIT_AND(pipe -> pipe.outputPipe(pipe.input1() & pipe.input2())),
BIT_OR(pipe -> pipe.outputPipe(pipe.input1() | pipe.input2())),
BIT_AND(pipe -> pipe.makeOutput(pipe.input1() & pipe.input2())),
BIT_OR(pipe -> pipe.makeOutput(pipe.input1() | pipe.input2())),
SHIFT_LEFT(pipe -> {
//TODO: add carry input and output
pipe.output(pipe.input1() << pipe.input2());