Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
423ece1
move to proper package
ghzdude Jun 14, 2026
269cec3
must return new instances for or/and
ghzdude Jun 15, 2026
fdb416e
mark debug name as nullable
ghzdude Jun 15, 2026
66e1f9e
rename getDebugName() -> getTypeName()
ghzdude Jun 15, 2026
7aad4a3
use method
ghzdude Jun 15, 2026
aff7f2c
add toString to BlockInfo
ghzdude Jun 16, 2026
acbfa20
fix MultiPredicate list and sort
ghzdude Jun 16, 2026
828bd52
cleanup
ghzdude Jun 17, 2026
99a32a0
replace expand with visitor method
ghzdude Jun 18, 2026
725c0ca
wrap unmodifiable
ghzdude Jun 18, 2026
d59496a
fix air predicate
ghzdude Jun 18, 2026
2cee1bf
use string builder for type name and contents
ghzdude Jun 18, 2026
f8fb039
move methods
ghzdude Jun 18, 2026
c8266a1
small work
ghzdude Jun 18, 2026
54fc0ef
method rename
ghzdude Jun 18, 2026
41dc4fc
simplify or/and methods
ghzdude Jun 18, 2026
c8c46f0
make everything go through customPredicate
ghzdude Jun 19, 2026
7191423
add and use simple type name
ghzdude Jun 19, 2026
82759f7
use custom predicate for rotor holder
ghzdude Jun 23, 2026
0306828
delete unused tooltips
ghzdude Jun 26, 2026
69f08ab
move test layer/global methods out to MultiPredicate
ghzdude Jun 26, 2026
6fe2f93
refactor string and type name
ghzdude Jun 26, 2026
6fb876f
implement xor
ghzdude Jun 26, 2026
8d42abd
pull out is single check for is valid
ghzdude Jun 26, 2026
39a671b
fully implement xor
ghzdude Jun 26, 2026
55b44f7
move test global/slice max back into BasePredicate
ghzdude Jun 27, 2026
0246522
move global/layer min check to base predicate
ghzdude Jun 27, 2026
97d82b2
remove more stream suppliers
ghzdude Jun 27, 2026
be7ea83
list -> iterable
ghzdude Jun 27, 2026
938b931
clean up or/and/xor methods
ghzdude Jun 27, 2026
3f102dc
give PredicateContext list instead of consumer reference
ghzdude Jun 30, 2026
23582cf
unsure if this is cooking
ghzdude Jun 30, 2026
015a9b6
change basically everything
ghzdude Jul 3, 2026
dd2e2a3
woah that's a lot more changes
ghzdude Jul 4, 2026
e89dabb
use new error methods in PredicateContext
ghzdude Jul 4, 2026
211f63f
add check flip method in failure reason (unused)
ghzdude Jul 4, 2026
3c96108
fix more error usages
ghzdude Jul 4, 2026
6b25faf
commit and clear some errors
ghzdude Jul 4, 2026
06465ec
on error method
ghzdude Jul 4, 2026
f0c4f84
add stats to BasePredicate string
ghzdude Jul 4, 2026
93632a8
more notes
ghzdude Jul 5, 2026
523315e
dumb shit
ghzdude Jul 6, 2026
cb194a1
go back
ghzdude Jul 6, 2026
3299315
spotless
ghzdude Jul 9, 2026
26ee701
remove special error methods
ghzdude Jul 9, 2026
43a6824
errors are not null anymore
ghzdude Jul 10, 2026
3aa727d
PatternStringError helper methods
ghzdude Jul 10, 2026
39bc1cc
handle errors better
ghzdude Jul 10, 2026
04340a3
another attempt at logic handling
ghzdude Jul 10, 2026
a66a5d6
spotless
ghzdude Jul 10, 2026
bec5238
only test visited predicates for slice check
ghzdude Jul 12, 2026
b7d92a9
notes
ghzdude Jul 15, 2026
86e1628
move logic out into own classes
ghzdude Jul 15, 2026
976425b
fix rebase
ghzdude Jul 16, 2026
43bbc0b
add libs as flatdir
ghzdude Jul 16, 2026
d248a38
improve MultiPredicate constructors
ghzdude Jul 16, 2026
caf64a7
spotless
ghzdude Jul 16, 2026
5b63d73
almost working, but not quite
ghzdude Jul 16, 2026
79ddfdd
more work on logics
ghzdude Jul 17, 2026
b12c2ea
make predicate list immutable
ghzdude Jul 17, 2026
0321eca
actually fix errors
ghzdude Jul 17, 2026
9de1183
fix predicates
ghzdude Jul 17, 2026
6432a89
move CompactedPredicate out
ghzdude Jul 17, 2026
a285891
spotless
ghzdude Jul 17, 2026
c827ad2
improve xor errors
ghzdude Jul 17, 2026
ff6a669
simplify logic
ghzdude Jul 17, 2026
5f2279f
move MultiPredicate to proper package
ghzdude Jul 17, 2026
e849f45
use lombok lazy getter for candidates
ghzdude Jul 18, 2026
722ff7f
use first candidate optional
ghzdude Jul 18, 2026
0e08888
simplify block info stack form getter
ghzdude Jul 18, 2026
e305694
clean up a bit
ghzdude Jul 18, 2026
f01224a
address todo
ghzdude Jul 18, 2026
67eb54d
add new helper method to PatternStringError
ghzdude Jul 18, 2026
e58a6c6
spotless
ghzdude Jul 18, 2026
3d555a1
commit errors outside BlockPattern directly
ghzdude Jul 18, 2026
dda65d4
fix ExpandablePattern
ghzdude Jul 18, 2026
209d602
fix AndLogic
ghzdude Jul 19, 2026
a8e1140
split PatternState and PredicateContext
ghzdude Jul 19, 2026
9926af2
improve and fix the pattern helpers
ghzdude Jul 19, 2026
6104b83
split PatternState and PredicateContext apart
ghzdude Jul 28, 2026
31973e8
set parent for base predicates
ghzdude Jul 28, 2026
7f1bea5
select innermost BasePredicate for testing
ghzdude Jul 29, 2026
3c523fb
replace SinglePredicate.java with BasePredicate builder
ghzdude Jul 29, 2026
cf18205
move slice related fields around
ghzdude Jul 30, 2026
672f0c5
update multiblock saved data for valid pattern state
ghzdude Jul 30, 2026
b5ce820
simplify logic
ghzdude Jul 30, 2026
3d98910
remove redundant testing methods to reflect recent refactor
ghzdude Jul 30, 2026
20b5899
add missing append error calls
ghzdude Jul 30, 2026
9fd5370
add additional tooltips back
ghzdude Jul 30, 2026
e11081e
cleanup comments and rename local variables
ghzdude Jul 30, 2026
4cce554
more cleanup, move slice methods
ghzdude Jul 30, 2026
5363a1f
move MultiPredicate error call inside
ghzdude Jul 30, 2026
b5fac04
remove last few usages of the boolean error method
ghzdude Jul 30, 2026
4d6bf55
just move shit around tbh
ghzdude Jul 30, 2026
c8b6788
mmmm yes 15 changed files...
ghzdude Aug 3, 2026
df5d21a
move builder class out
ghzdude Aug 3, 2026
4b40ebc
move sort out of constructor
ghzdude Aug 4, 2026
1f40426
mark other predicate params nullable
ghzdude Aug 4, 2026
912dbfb
fix lang
ghzdude Aug 4, 2026
9591c8e
minor fixes and cleanup
ghzdude Aug 4, 2026
1b83610
spotless
ghzdude Aug 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions gradle/scripts/repositories.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ repositories {
url = "https://maven.firstdark.dev/snapshots"
}

flatDir dirs: 'libs'

exclusiveContent { // Create, Ponder, Flywheel
forRepository { maven { url = "https://maven.createmod.net" } }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.gregtechceu.gtceu.api.mui;

import com.gregtechceu.gtceu.api.machine.MultiblockMachineDefinition;
import com.gregtechceu.gtceu.api.multiblock.PatternPredicate;
import com.gregtechceu.gtceu.api.multiblock.MultiPredicate;
import com.gregtechceu.gtceu.api.multiblock.pattern.BlockPattern;
import com.gregtechceu.gtceu.api.multiblock.pattern.ExpandablePattern;
import com.gregtechceu.gtceu.api.multiblock.pattern.IBlockPattern;
Expand Down Expand Up @@ -120,7 +120,7 @@ public void clearUserPreferences() {
this.userDimensions.clear();
}

public void putPredicatePreference(PatternPredicate predicate, BasePredicate basePredicate, BlockInfo info) {
public void putPredicatePreference(MultiPredicate predicate, BasePredicate basePredicate, BlockInfo info) {
this.structureHelper.getBlockPreferences().put(predicate, basePredicate, info);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.gregtechceu.gtceu.api.multiblock;

import com.gregtechceu.gtceu.api.multiblock.predicates.BasePredicate;

import java.util.List;

public class AndPredicate extends MultiPredicate {

public AndPredicate(List<MultiPredicate> children, List<BasePredicate> predicates, boolean hasAir) {
super(Logic.AND, children, predicates, hasAir);
}

@Override
public boolean testGlobalMin(PredicateContext ctx) {
for (BasePredicate predicate : predicates()) {
if (!predicate.testGlobalMin(ctx)) {
return false;
}
}
for (MultiPredicate child : children()) {
if (!child.testGlobalMin(ctx)) {
return false;
}
}
return true;
}

@Override
public boolean testSliceMin(PredicateContext ctx) {
for (BasePredicate predicate : predicates()) {
if (!predicate.testSliceMin(ctx)) {
return false;
}
}
for (MultiPredicate child : children()) {
if (!child.testSliceMin(ctx)) {
return false;
}
}
return true;
}

@Override
public boolean testMaxCount(BasePredicate passedPredicate, PredicateContext context) {
for (BasePredicate predicate : predicates()) {
if (!predicate.testGlobalMax(context) || !predicate.testSliceMax(context)) {
return false;
}
}
return true;
}
}
Loading
Loading