Negative_Entropy — Today at 3:19 PM
i met with zippie lamp nordic hanscor gunther hellman villi
imamotherfuckingstarboy
link in the book discord if you have it https://discord.com/channels/451674618667728897/658859330837151784/1130862469695410317 (edited)The value of 2b2t IS the map.
15% of drowned in Bedrock Edition (6.25% in Java Edition) spawn with a trident of random durability as their natural weapon, and only the drowned with a trident have a 8.5% chance of dropping the trident
Joey_Coconut joined 2b2t on June 12, 2015, after he was introduced to the server by ARENAWARLORD. Joey_Coconut played as a lurker with common periods of inactivity, traveling to the Noob Ranch and Melon Road and later building several small bases in spawn. In late 2016, Joey_Coconut was drawn back into 2b2t
Most active prejune player (edited) double squareTipsX = 313.5; // ranges from 313.498 to 313.499
double squareTipY = 610; // exact
double wingtipX = 0; // its the leftmost part of the logo
double wingtipY = squareTipY - squareTipsX; // old: 293.795, new: 296.5
double firstLineDx = 18.6685; // left: 18.668, right: 18.669
double firstLineDy = -5.7845; // left: -5.784, right: -5.785
double topFirstCurveDx = 62.591;
double topFirstCurveDy = 0.548;
double topFirstCurveRelStartAnchorX = 19.233; // left: 19.234, right: 19.232
double topFirstCurveRelStartAnchorY = 8.636;
double topFirstCurveRelEndAnchorX = 43.9475; // left: 43.948, right: 43.947
double topFirstCurveRelEndAnchorY = 11.368;
double topSecondCurveDx = 45.856; // left: 45.858, right: 45.854
double topSecondCurveDy = -topFirstCurveDy;
double topSecondCurveRelStartAnchorX = 14.4025; // left: 14.403, right: 14.402
double topSecondCurveRelStartAnchorY = 8.4305; // left: 8.431, right: 8.43
double topSecondCurveRelEndAnchorX = 33.496; // left: 33.497, right: 33.495
double topSecondCurveRelEndAnchorY = 8.088;
double bottomFirstCurveDx = 31.3005; // left: 31.3, right: 31.301
double bottomFirstCurveDy = -5.245;
double bottomFirstCurveRelStartAnchorX = 9.242;
double bottomFirstCurveRelStartAnchorY = 2.616;
double bottomFirstCurveRelEndAnchorX = 22.9765; // left: 22.976, right: 22.977
double bottomFirstCurveRelEndAnchorY = 0.31;
double bottomSecondCurveDx = 32.519; // left: 32.52, right: 32.518
double bottomSecondCurveDy = -bottomFirstCurveDy;
double bottomSecondCurveRelStartAnchorX = 7.6835; // left: 7.684, right: 7.683
double bottomSecondCurveRelStartAnchorY = 6.442;
double bottomSecondCurveRelEndAnchorX = 20.4335; // left: 20.434, right: 20.433
double bottomSecondCurveRelEndAnchorY = 8.689;
double topCurveRelativeIntercept = (firstLineDy + topFirstCurveDy + topSecondCurveDy) - (firstLineDx + topFirstCurveDx + topSecondCurveDx);
double bottomCurveRelativeIntercept = (bottomFirstCurveDy + bottomSecondCurveDy) - (bottomFirstCurveDx + bottomSecondCurveDx);
double squareXInnerWidth = (bottomCurveRelativeIntercept - topCurveRelativeIntercept) / 2;
System.out.println(squareXInnerWidth);
double bottomWingtipX = wingtipX + firstLineDx + topFirstCurveDx - bottomFirstCurveDx;
double bottomWingtipY = wingtipY + bottomWingtipX - squareXInnerWidth;
System.out.println(bottomWingtipX + " BWIT " + bottomWingtipY);
double bottomCurveLeftAbsoluteIntercept = bottomWingtipY - bottomWingtipX;
double topCurveLeftAbsoluteIntercept = wingtipY - wingtipX;
double bottomCurveRightAbsoluteIntercept = bottomCurveRelativeIntercept + bottomCurveLeftAbsoluteIntercept;
double topCurveRightAbsoluteIntercept = topCurveRelativeIntercept + topCurveLeftAbsoluteIntercept;
double squareBottomNookY = bottomCurveLeftAbsoluteIntercept + squareTipsX;
double squareTopTipY = bottomCurveRightAbsoluteIntercept + squareTipsX;
double squareTopNookY = topCurveRightAbsoluteIntercept + squareTipsX;
System.out.println(squareBottomNookY + " " + squareTopTipY + " " + squareTopNookY);
System.out.println(squareTipY - squareBottomNookY);
System.out.println(squareTopTipY - squareTopNookY);
double compassTipX = 31.35;
double compassLegLeftX = 35.4755; // left: 35.476, right: 35.475
double compassLegLeftY = 582.830; // left: 582.814, right: 582.846
double compassLegRightX = (53.793 + 53.787) / 2;
double compassLegRightY = (584.539 + 584.570) / 2;
//double compassAngle = 65.8; // measurements: left wing lower: 65.8755, left wing upper: 65.8755, left compass outer lower: 65.7412, left compass outer upper: 65.7414, left compass inner: 65.7171, right wing lower: 65.8746, right wing upper: 65.8746, right compass outer lower: 65.7219, right compass outer upper: 65.7221, right compass inner: 65.6980
//double compassRiseOverRun = Math.tan(compassAngle * Math.PI / 180);
// ^ this is 2.225100911320806
// which is really close to 2.225
double compassRiseOverRun = 2.225;
double compassLegLeftIntercept = compassLegLeftY + compassLegLeftX * compassRiseOverRun;
double[][] originalWingSamplePoints = new double[][]{{100.945, 396.289}, {111.796, 372.059}, {131.830, 327.325}, {142.500, 303.497}, {100.944, 396.289}, {111.795, 372.060}, {131.829, 327.323}, {142.500, 303.496}};
List<Double> compassWingInterceptSamples = Arrays.stream(originalWingSamplePoints).map(d -> d[1] + d[0] * compassRiseOverRun).collect(Collectors.toList());
System.out.println(compassWingInterceptSamples);
double compassWingIntercept = compassWingInterceptSamples.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
System.out.println(compassWingIntercept);
double wingx1 = interceptX(-compassRiseOverRun, compassWingIntercept, 1, topCurveLeftAbsoluteIntercept);
double wingx2 = interceptX(-compassRiseOverRun, compassWingIntercept, 1, bottomCurveLeftAbsoluteIntercept);
double wingx3 = interceptX(-compassRiseOverRun, compassWingIntercept, 1, bottomCurveRightAbsoluteIntercept);
double wingx4 = interceptX(-compassRiseOverRun, compassWingIntercept, 1, topCurveRightAbsoluteIntercept);
double wingy1 = compassWingIntercept - wingx1 * compassRiseOverRun;
double wingy2 = compassWingIntercept - wingx2 * compassRiseOverRun;
double wingy3 = compassWingIntercept - wingx3 * compassRiseOverRun;
double wingy4 = compassWingIntercept - wingx4 * compassRiseOverRun;
System.out.println(wingx1 + " " + wingx2 + " " + wingx3 + " " + wingx4);
double circleOuterDiameter = 2147d / 19; // 2147 wide original logo, 19x scaled up, so 113 pixel radius
double circleOuterRadius = circleOuterDiameter / 2;
double circleThickness = 25.235;
double circleInnerRadius = circleOuterRadius - circleThickness;
double circleCenterX = squareTipsX;
double circleCenterY = circleOuterRadius;
System.out.println("Inner: " + (circleCenterX - circleInnerRadius) + " to " + (circleCenterX + circleInnerRadius) + " and " + (circleCenterY - circleInnerRadius) + " to " + (circleCenterY + circleInnerRadius));
System.out.println("Outer: " + (circleCenterX - circleOuterRadius) + " to " + (circleCenterX + circleOuterRadius) + " and " + (circleCenterY - circleOuterRadius) + " to " + (circleCenterY + circleOuterRadius));
List<Element> leftLegFinal = new ArrayList<>();
leftLegFinal.add(new Line(compassTipX, squareTipY, compassLegLeftX, compassLegLeftY));
double compassCircleInterceptX = 265;
double compassCircleInterceptY = compassLegLeftY - (compassCircleInterceptX - compassLegLeftX) * compassRiseOverRun;
leftLegFinal.add(new Line(compassLegLeftX, compassLegLeftY, compassCircleInterceptX, compassCircleInterceptY));
double perpendicularCompassLegSpanDirection = Math.atan2(compassCircleInterceptY - compassLegLeftY, compassCircleInterceptX - compassLegLeftX) + Math.PI / 2;
double legThickness = circleThickness;
double compassLegLeftToRightOffsetY = legThickness * Math.sin(perpendicularCompassLegSpanDirection);
double compassLegLeftToRightOffsetX = legThickness * Math.cos(perpendicularCompassLegSpanDirection);
double origNookX = (170.181 + 170.147) / 2;
double origNookY = (344.687 + 344.993) / 2;
double compassLegRightIntercept = compassLegLeftIntercept + compassLegLeftToRightOffsetY + compassLegLeftToRightOffsetX * compassRiseOverRun;
double origNookPerpendicularIntercept = origNookY - origNookX / compassRiseOverRun;
double closestNookX = interceptX(-compassRiseOverRun, compassLegRightIntercept, 1 / compassRiseOverRun, origNookPerpendicularIntercept);
// ^ solves for closest possible position to original nookX,nookY that's on the corrected compass right leg line
double closestNookY = compassLegRightIntercept - closestNookX * compassRiseOverRun;
leftLegFinal.add(new Line(compassCircleInterceptX, compassCircleInterceptY, compassCircleInterceptX + compassLegLeftToRightOffsetX, compassCircleInterceptY + compassLegLeftToRightOffsetY));
leftLegFinal.add(new Line(compassCircleInterceptX + compassLegLeftToRightOffsetX, compassCircleInterceptY + compassLegLeftToRightOffsetY, closestNookX, closestNookY));
double compassUpperFirstCurveDx = (57.828 + 57.844) / 2;
double compassUpperFirstCurveDy = (-45.345 - 45.4) / 2;
double compassUpperFirstCurveRelStartAnchorX = (14.888 + 14.892) / 2;
double compassUpperFirstCurveRelStartAnchorY = (-24.36 - 24.388) / 2;
double compassUpperFirstCurveRelEndAnchorX = (32.985 + 32.995) / 2;
double compassUpperFirstCurveRelEndAnchorY = (-42.1 - 42.148) / 2;
// only able to take the right side, as the left ends early!
double compassUpperSecondCurveDx = 81.326;
double compassUpperSecondCurveDy = -172.686;
double compassUpperSecondCurveRelStartAnchorX = 1.967;
double compassUpperSecondCurveRelStartAnchorY = -58.546;
double compassUpperSecondCurveRelEndAnchorX = 33.825;
double compassUpperSecondCurveRelEndAnchorY = -126.914;
double x = closestNookX;
double y = closestNookY;
Bezier upperFirst = new Bezier(x, y, x + compassUpperFirstCurveRelStartAnchorX, y + compassUpperFirstCurveRelStartAnchorY, x + compassUpperFirstCurveRelEndAnchorX, y + compassUpperFirstCurveRelEndAnchorY, x + compassUpperFirstCurveDx, y + compassUpperFirstCurveDy);
x = upperFirst.endX;
y = upperFirst.endY;
Bezier upperSecond = new Bezier(x, y, x + compassUpperSecondCurveRelStartAnchorX, y + compassUpperSecondCurveRelStartAnchorY, x + compassUpperSecondCurveRelEndAnchorX, y + compassUpperSecondCurveRelEndAnchorY, x + compassUpperSecondCurveDx, y + compassUpperSecondCurveDy);
double circleMaskInterceptX = upperSecond.endX;
double circleMaskInterceptY = upperSecond.endY;
double circleMaskRadius = Math.sqrt((circleMaskInterceptX - circleCenterX) * (circleMaskInterceptX - circleCenterX) + (circleMaskInterceptY - circleCenterY) * (circleMaskInterceptY - circleCenterY));
leftLegFinal.add(upperFirst);
leftLegFinal.add(upperSecond);
double compassLowerCurveDx = (182.650 + 182.698) / 2;
double compassLowerCurveDy = (-270.468 - 270.778) / 2;
double compassLowerCurveRelStartAnchorX = (42.413 + 42.423) / 2;
double compassLowerCurveRelStartAnchorY = (-88.072 - 88.174) / 2;
double compassLowerCurveRelEndAnchorX = (121.717 + 121.749) / 2;
double compassLowerCurveRelEndAnchorY = (-270.341 - 270.65) / 2;
double compassInteriorBendX = compassLegRightX + compassLowerCurveDx;
double compassInteriorBendY = compassLegRightY + compassLowerCurveDy;
System.out.println(compassInteriorBendX + " " + compassInteriorBendY);
double originalRightInteriorRiseOverRun = (121.555 - 314.102) / (287.778 - 390.563);
double originalRightInteriorIntercept = 121.555 - 287.778 * originalRightInteriorRiseOverRun;
System.out.println(originalRightInteriorIntercept + " aaa " + (314.102 - 390.563 * originalRightInteriorRiseOverRun) + " " + originalRightInteriorRiseOverRun);
double[][] rightInteriorSamples = new double[][]{{287.313, 156.880}, {303.876, 187.935}};
List<Double> rightInteriorSampleDistances = Arrays.stream(rightInteriorSamples).map(samplePoint -> {
double samplePerpendicularIntercept = samplePoint[1] + samplePoint[0] / originalRightInteriorRiseOverRun;
//System.out.println(samplePoint[1] + " " + (samplePoint[0] * -1 / originalRightInteriorRiseOverRun + samplePerpendicularIntercept));
double closestX = interceptX(originalRightInteriorRiseOverRun, originalRightInteriorIntercept, -1 / originalRightInteriorRiseOverRun, samplePerpendicularIntercept);
//System.out.println((originalRightInteriorIntercept+originalRightInteriorRiseOverRun*closestX)+" "+
double closestY = originalRightInteriorIntercept + closestX * originalRightInteriorRiseOverRun;
//leftLegFinal.add(new Line(samplePoint[0], samplePoint[1], closestX, closestY));
return Math.sqrt((closestX - samplePoint[0]) * (closestX - samplePoint[0]) + (closestY - samplePoint[1]) * (closestY - samplePoint[1]));
}).collect(Collectors.toList());
System.out.println(rightInteriorSampleDistances);
double rightInteriorDistance = rightInteriorSampleDistances.stream().mapToDouble(Double::doubleValue).average().getAsDouble();
System.out.println(rightInteriorDistance);
double adjustedRightInteriorRiseOverRun = -1.87; // 1.867 to 1.873
double adjustedRightInteriorIntercept = compassInteriorBendY - compassInteriorBendX * adjustedRightInteriorRiseOverRun;
double sweepInterceptX = 345;
double sweepInterceptY = adjustedRightInteriorIntercept + sweepInterceptX * adjustedRightInteriorRiseOverRun;
leftLegFinal.add(new Line(circleMaskInterceptX, circleMaskInterceptY, sweepInterceptX, sweepInterceptY));
leftLegFinal.add(new Line(sweepInterceptX, sweepInterceptY, compassInteriorBendX, compassInteriorBendY));
x = compassLegRightX;
y = compassLegRightY;
leftLegFinal.add(new Bezier(x, y, x + compassLowerCurveRelStartAnchorX, y + compassLowerCurveRelStartAnchorY, x + compassLowerCurveRelEndAnchorX, y + compassLowerCurveRelEndAnchorY, x + compassLowerCurveDx, y + compassLowerCurveDy).reverse());
leftLegFinal.add(new Line(compassLegRightX, compassLegRightY, compassTipX, squareTipY));
List<Element> rightLegFinal = leftLegFinal.stream().map(Element::flip).collect(Collectors.toList());
double perpendicularMaskSpanDirection = Math.atan2(-(sweepInterceptY - compassInteriorBendY), sweepInterceptX - compassInteriorBendX) + Math.PI / 2;
double maskBeginY = sweepInterceptY + rightInteriorDistance * Math.sin(perpendicularMaskSpanDirection);
double maskBeginX = FLIP_ABOUT - sweepInterceptX + rightInteriorDistance * Math.cos(perpendicularMaskSpanDirection);
//leftLegFinal.add(new Line(FLIP_ABOUT - sweepInterceptX, sweepInterceptY, maskBeginX, maskBeginY));
double complementInteriorRiseOverRun = -adjustedRightInteriorRiseOverRun;
double maskBeginIntercept = maskBeginY - maskBeginX * complementInteriorRiseOverRun;
double triMaskLeftX = 275;
double triMaskRightX = 320;
double triMaskLeftY = maskBeginIntercept + triMaskLeftX * complementInteriorRiseOverRun;
double triMaskRightY = maskBeginIntercept + triMaskRightX * complementInteriorRiseOverRun;
List<Element> triMask = new ArrayList<>();
triMask.add(new Line(triMaskLeftX, triMaskLeftY, triMaskRightX, triMaskRightY));
double triMaskTopX = 400;
double triMaskTopY = 85;
triMask.add(new Line(triMaskRightX, triMaskRightY, triMaskTopX, triMaskTopY));
triMask.add(new Line(triMaskTopX, triMaskTopY, triMaskLeftX, triMaskLeftY));
/*double perpendicularCompassLegSpanDirection = Math.atan2(compassCircleInterceptY - compassLegLeftY, compassCircleInterceptX - compassLegLeftX) + Math.PI / 2;
double legThickness = circleThickness;
double compassLegLeftToRightOffsetY = legThickness * Math.sin(perpendicularCompassLegSpanDirection);
double compassLegLeftToRightOffsetX = legThickness * Math.cos(perpendicularCompassLegSpanDirection);*/
List<Element> leftWingFinal = new ArrayList<>();
x = wingtipX;
y = wingtipY;
Line first = new Line(x, y, x + firstLineDx, y + firstLineDy);
x = first.endX;
y = first.endY;
Bezier topFirst = new Bezier(x, y, x + topFirstCurveRelStartAnchorX, y + topFirstCurveRelStartAnchorY, x + topFirstCurveRelEndAnchorX, y + topFirstCurveRelEndAnchorY, x + topFirstCurveDx, y + topFirstCurveDy);
x = topFirst.endX;
y = topFirst.endY;
Bezier topSecond = new Bezier(x, y, x + topSecondCurveRelStartAnchorX, y + topSecondCurveRelStartAnchorY, x + topSecondCurveRelEndAnchorX, y + topSecondCurveRelEndAnchorY, x + topSecondCurveDx, y + topSecondCurveDy);
x = bottomWingtipX;
y = bottomWingtipY;
Bezier bottomFirst = new Bezier(x, y, x + bottomFirstCurveRelStartAnchorX, y + bottomFirstCurveRelStartAnchorY, x + bottomFirstCurveRelEndAnchorX, y + bottomFirstCurveRelEndAnchorY, x + bottomFirstCurveDx, y + bottomFirstCurveDy);
x = bottomFirst.endX;
y = bottomFirst.endY;
Bezier bottomSecond = new Bezier(x, y, x + bottomSecondCurveRelStartAnchorX, y + bottomSecondCurveRelStartAnchorY, x + bottomSecondCurveRelEndAnchorX, y + bottomSecondCurveRelEndAnchorY, x + bottomSecondCurveDx, y + bottomSecondCurveDy);
leftWingFinal.add(first);
leftWingFinal.add(topFirst);
leftWingFinal.add(topSecond);
leftWingFinal.add(new Line(topSecond.endX, topSecond.endY, wingx4, wingy4));
leftWingFinal.add(new Line(wingx4, wingy4, wingx3, wingy3));
leftWingFinal.add(new Line(wingx3, wingy3, bottomSecond.endX, bottomSecond.endY));
leftWingFinal.add(bottomSecond.reverse());
leftWingFinal.add(bottomFirst.reverse());
leftWingFinal.add(new Line(bottomFirst.startX, bottomFirst.startY, wingx2, wingy2));
leftWingFinal.add(new Line(wingx2, wingy2, wingx1, wingy1));
leftWingFinal.add(new Line(wingx1, wingy1, first.startX, first.startY));
List<Element> rightWingFinal = leftWingFinal.stream().map(Element::flip).collect(Collectors.toList());
List<Element> bottomSquareFinal = new ArrayList<>();
double bottomSquareBottomX = 120;
double bottomSquareBottomY = squareTipY - squareTipsX + bottomSquareBottomX;
double bottomSquareBottomCompassIntercept = bottomSquareBottomY + bottomSquareBottomX;
double bottomSquareTopX = (-bottomCurveLeftAbsoluteIntercept + bottomSquareBottomCompassIntercept) / 2;
double bottomSquareTopY = bottomSquareBottomCompassIntercept - bottomSquareTopX;
bottomSquareFinal.add(new Line(squareTipsX, squareTipY, bottomSquareBottomX, bottomSquareBottomY));
bottomSquareFinal.add(new Line(bottomSquareBottomX, bottomSquareBottomY, bottomSquareTopX, bottomSquareTopY));
bottomSquareFinal.add(new Line(bottomSquareTopX, bottomSquareTopY, squareTipsX, squareBottomNookY));
bottomSquareFinal.add(new Line(squareTipsX, squareBottomNookY, FLIP_ABOUT - bottomSquareTopX, bottomSquareTopY));
bottomSquareFinal.add(new Line(FLIP_ABOUT - bottomSquareTopX, bottomSquareTopY, FLIP_ABOUT - bottomSquareBottomX, bottomSquareBottomY));
bottomSquareFinal.add(new Line(FLIP_ABOUT - bottomSquareBottomX, bottomSquareBottomY, squareTipsX, squareTipY));
List<Element> topSquareFinal = new ArrayList<>();
double topSquareBottomX = 160;
double topSquareBottomY = squareTopTipY - squareTipsX + topSquareBottomX;
double topSquareBottomCompassIntercept = topSquareBottomY + topSquareBottomX;
double topSquareTopX = (-topCurveRightAbsoluteIntercept + topSquareBottomCompassIntercept) / 2;
double topSquareTopY = topSquareBottomCompassIntercept - topSquareTopX;
topSquareFinal.add(new Line(squareTipsX, squareTopTipY, topSquareBottomX, topSquareBottomY));
topSquareFinal.add(new Line(topSquareBottomX, topSquareBottomY, topSquareTopX, topSquareTopY));
topSquareFinal.add(new Line(topSquareTopX, topSquareTopY, squareTipsX, squareTopNookY));
topSquareFinal.add(new Line(squareTipsX, squareTopNookY, FLIP_ABOUT - topSquareTopX, topSquareTopY));
topSquareFinal.add(new Line(FLIP_ABOUT - topSquareTopX, topSquareTopY, FLIP_ABOUT - topSquareBottomX, topSquareBottomY));
topSquareFinal.add(new Line(FLIP_ABOUT - topSquareBottomX, topSquareBottomY, squareTipsX, squareTopTipY));
List<Element> rightLegInvert = rightLeg.stream().map(Element::flip).collect(Collectors.toList());
List<Element> circleMask = new ArrayList<>();
circleMask.add(new HalfCircle(circleCenterX, circleCenterY, circleMaskRadius, true));
circleMask.add(new HalfCircle(circleCenterX, circleCenterY, circleMaskRadius, false));
List<Element> outerCircle = new ArrayList<>();
outerCircle.add(new HalfCircle(circleCenterX, circleCenterY, circleOuterRadius, true));
outerCircle.add(new HalfCircle(circleCenterX, circleCenterY, circleOuterRadius, false));
List<Element> innerCircle = new ArrayList<>();
innerCircle.add(new HalfCircle(circleCenterX, circleCenterY, circleInnerRadius, true));
innerCircle.add(new HalfCircle(circleCenterX, circleCenterY, circleInnerRadius, false));
/*Bezier bigCurve = (Bezier) rightLegInvert.get(5);
rightLegInvert.set(5, new Bezier(bigCurve.startX, bigCurve.startY, bigCurve.startX, bigCurve.startAnchorY, bigCurve.endAnchorX, bigCurve.endAnchorY, bigCurve.endX, bigCurve.endY));
List<Element> rightLegInvert2 = rightLeg.stream().map(Element::flip).collect(Collectors.toList());*/
boolean[] wingPattern = new boolean[]{true, true, true, true, false, false, false, false, true, false, false};
PathArea leftWingArea = new PathArea(leftWingFinal, wingPattern);
PathArea rightWingArea = new PathArea(rightWingFinal, wingPattern);
boolean[] squarePattern = new boolean[]{false, true, true, true, true, false};
PathArea topSquareArea = new PathArea(topSquareFinal, squarePattern);
PathArea bottomSquareArea = new PathArea(bottomSquareFinal, squarePattern);
PathArea circleMaskArea = new PathArea(circleMask, new boolean[]{true, false});
PathArea outerCircleArea = new PathArea(outerCircle, new boolean[]{true, false});
PathArea innerCircleArea = new PathArea(innerCircle, new boolean[]{true, false});
PathArea triMaskArea = new PathArea(triMask, new boolean[]{false, false, true});
boolean[] legPattern = new boolean[]{true, true, true, false, true, true, true, false, false, false};
PathArea leftLegArea = new PathArea(leftLegFinal, legPattern);
PathArea rightLegArea = new PathArea(rightLegFinal, legPattern);
Sliceable logoSubtracted = minus(outerCircleArea, innerCircleArea);
Sliceable leftLegSubtracted = minus(leftLegArea, triMaskArea);
Sliceable rightLegSubtracted = minus(rightLegArea, circleMaskArea);
Sliceable fullLogo = union(union(union(union(union(union(logoSubtracted, leftLegSubtracted), leftWingArea), rightWingArea), topSquareArea), bottomSquareArea), rightLegSubtracted);
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 28.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 627 610" style="enable-background:new 0 0 627 610;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E68F1B;}
</style>
<g>
<path class="st0" d="M111.2,373.2L50,311.9c9.2,2.6,23,0.3,31.3-5.2c7.7,6.4,20.4,8.7,32.5,5.2l17.3,17.3l10.7-23.8l-14.6-14.6
c-12.4,8.6-31.5,9-45.9,0.5c-18.6,10.8-43.4,8.1-62.6-0.5L0,296.5L100.5,397L111.2,373.2z"/>
<path class="st0" d="M513.2,311.9c12.1,3.4,24.8,1.2,32.5-5.2c8.3,5.6,22.1,7.9,31.3,5.2l-61.3,61.3l10.7,23.8L627,296.5l-18.7-5.8
c-19.2,8.6-43.9,11.4-62.6,0.5c-14.4,8.4-33.5,8.1-45.9-0.5l-14.6,14.6l10.7,23.8L513.2,311.9z"/>
<path class="st0" d="M365.2,79.3c3.1-7,4.8-14.7,4.8-22.8C370,25.3,344.7,0,313.5,0S257,25.3,257,56.5c0,8.1,1.7,15.8,4.8,22.8
L35.5,582.8L31.3,610l22.4-25.4c19.8-41,47.5-102.5,77.7-156.6l182,182l182-182c30.2,54,58,115.5,77.7,156.6l22.4,25.4l-4.1-27.2
L365.2,79.3z M313.5,25.2c17.3,0,31.3,14,31.3,31.3s-14,31.3-31.3,31.3c-17.3,0-31.3-14-31.3-31.3S296.2,25.2,313.5,25.2z
M279.4,101.6c9.5,7.2,21.3,11.4,34.1,11.4s24.6-4.3,34.1-11.4l109.3,243.2c-14.9-24.4-33-42.1-57.8-45.4
c-2-58.5-33.8-126.9-81.3-172.7L282,111l108.5,203c16.4,0,34,13.2,52,34.2l-129,129l-129-129c17.9-20.9,35.6-34.1,52-34.2l67.4-126
l-18.5-34.6c-34,43.4-55.8,98-57.4,146.1c-24.8,3.2-42.9,21-57.8,45.4L279.4,101.6z M313.5,575.5L144.1,406.1
c8.3-13.9,16.7-27,25.2-38.6l144.2,144.2l144.2-144.2c8.4,11.7,16.9,24.7,25.2,38.6L313.5,575.5z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="627px" height="610px" viewBox="0 0 627 610">
<defs>
<clipPath id="triangle-mask">
<path fill="black" d="M 275.0,134.03943013362982 L 320.0,218.1894301336299 L 400.0,85.0 L 275.0,134.03943013362982 M -1,-1 L 628,-1 L628,611 L-1,611 L-1,-1" fill-rule="evenodd"/>
</clipPath>
<clipPath id="circle-outer-mask">
<path d="M 243.11413783515854 56.5 A 70.38586216484144 70.38586216484144 0 1 0 383.88586216484146 56.5 A 70.38586216484144 70.38586216484144 0 1 0 243.11413783515854 56.5 M -1,-1 L 628,-1 L628,611 L-1,611 L-1,-1" fill-rule="evenodd" />
</clipPath>
<clipPath id="circle-inner-mask">
<path d="M 282.235 56.5 A 31.265 31.265 0 1 0 344.765 56.5 A 31.265 31.265 0 1 0 282.235 56.5 M -1,-1 L 628,-1 L628,611 L-1,611 L-1,-1" fill-rule="evenodd" />
</clipPath>
</defs>
<path fill="#E68F1B" d="M 0.0,296.5 L 18.6685,290.7155 C 37.9015,299.35150000000004 62.616,302.0835 81.2595,291.2635 C 95.662,299.694 114.75550000000001,299.35150000000004 127.1155,290.7155 L 141.74408042635656,305.34408042635664 L 131.0339253875969,329.1741753875969 L 113.77850000000001,311.91875 C 101.693,315.36275 88.943,313.11575 81.2595,306.67375 C 72.9355,312.22875 59.20100000000001,314.53475 49.959,311.91875 L 111.24493313953488,373.20468313953484 L 100.53477810077518,397.03477810077516 L 0.0,296.5"/>
<path fill="#E68F1B" d="M 31.35,610.0 L 35.4755,582.83 L 265.0,72.13798750000007 L 288.01717571336854,82.48278557342412 L 170.1139339845585,344.81749842002625 C 185.0039339845585,320.44349842002623 203.10393398455852,302.69349842002623 227.94993398455853,299.44499842002625 C 229.91693398455854,240.89899842002626 261.7749339845585,172.53099842002626 309.2759339845585,126.75899842002624 L 345.0,110.96917999999982 L 236.464,313.9314999999999 C 175.523,314.05899999999997 96.208,496.43149999999997 53.79,584.5545 L 31.35,610.0" clip-path="url(#triangle-mask)"/>
<path fill="#E68F1B" d="M 627.0,296.5 L 608.3315,290.7155 C 589.0985000000001,299.35150000000004 564.384,302.0835 545.7405,291.2635 C 531.338,299.694 512.2445,299.35150000000004 499.8845,290.7155 L 485.25591957364344,305.34408042635664 L 495.9660746124031,329.1741753875969 L 513.2215,311.91875 C 525.307,315.36275 538.057,313.11575 545.7405,306.67375 C 554.0645,312.22875 567.799,314.53475 577.0409999999999,311.91875 L 515.7550668604651,373.20468313953484 L 526.4652218992248,397.03477810077516 L 627.0,296.5"/>
<path fill="#E68F1B" d="M 595.65,610.0 L 591.5245,582.83 L 362.0,72.13798750000007 L 338.98282428663146,82.48278557342412 L 456.8860660154415,344.81749842002625 C 441.9960660154415,320.44349842002623 423.8960660154415,302.69349842002623 399.0500660154415,299.44499842002625 C 397.08306601544143,240.89899842002626 365.2250660154415,172.53099842002626 317.7240660154415,126.75899842002624 L 282.0,110.96917999999982 L 390.536,313.9314999999999 C 451.477,314.05899999999997 530.792,496.43149999999997 573.21,584.5545 L 595.65,610.0" clip-path="url(#circle-outer-mask)"/>
<path fill="#E68F1B" d="M 313.5,511.64025 L 160.0,358.14025 L 177.27012499999995,340.870125 L 313.5,477.1 L 449.72987500000005,340.870125 L 467.0,358.14025 L 313.5,511.64025"/>
<path fill="#E68F1B" d="M 313.5,610.0 L 120.0,416.5 L 137.270125,399.229875 L 313.5,575.45975 L 489.729875,399.229875 L 507.0,416.5 L 313.5,610.0"/>
<circle cx="313.5" cy="56.5" r="56.5" fill="#E68F1B" clip-path="url(#circle-inner-mask)"/>
</svg>
--------------------------------r.-1.2.mca--------------------------------
Chunk [29, 29] (-34 75 1503)
Chunk [30, 21] (-21 66 1375) MaraxoMC was here 25-03-23 hail maxwell
Chunk [30, 30] (-30 75 1505) Join The Vortex Coalition today! https://joinvo.co
Chunk [31, 21] (-5 65 1368) S
Chunk [31, 21] (-15 65 1362) Maxwell is life Maxwell is love
Chunk [31, 21] (-8 65 1368) SD
Chunk [31, 21] (-8 66 1368) s
Chunk [31, 22] (-5 65 1386) ALL HAIL MAXWELL PRAISE MAXWELL
Chunk [31, 22] (-8 66 1387) _m_o_t_h_r_a_'s World Famous Ear Rape
Chunk [31, 22] (-7 65 1386) PRAISE MAXWELL I LOVE MAXWELL -GreenFyre
Chunk [31, 22] (-6 65 1386) Make some noise for Maxwell!
Chunk [31, 31] (-16 66 1535) This my first day on 2b2t Rayechcka
--------------------------------r.0.2.mca--------------------------------
Chunk [0, 21] (0 65 1368) DS
Chunk [0, 21] (0 65 1374) meow
Chunk [0, 21] (1 65 1368) D
Chunk [0, 21] (4 65 1374) maxwell disco floor meow
Chunk [0, 22] (4 65 1377) meow
Chunk [0, 22] (0 65 1377) meow
Chunk [0, 22] (9 65 1381) maxwell beats dream ez
Chunk [0, 22] (6 65 1381) do not the cat
Chunk [0, 22] (6 64 1382) reject the overworld join MAXWELL
Chunk [0, 22] (4 97 1386) much express
Chunk [0, 22] (4 98 1382) <<< Express way
Chunk [0, 22] (9 64 1383) E
Chunk [0, 22] (9 66 1384) W
Chunk [0, 22] (6 64 1381) maxwell is god -ExoNo_
Chunk [3, 19] (60 58 1333) brought to you by waterman112!
Chunk [4, 22] (65 53 1380) And he will not be harassed !!!
Chunk [4, 22] (65 54 1380) This is _Spaolis_ Private Domicile
--------------------------------r.-1.2.mca--------------------------------
Chunk [29, 29] (-34 75 1503)
Chunk [30, 21] (-21 66 1375) MaraxoMC was here 25-03-23 hail maxwell
Chunk [30, 30] (-30 75 1505) Join The Vortex Coalition today! https://joinvo.co
Chunk [31, 21] (-5 65 1368) S
Chunk [31, 21] (-15 65 1362) Maxwell is life Maxwell is love
Chunk [31, 21] (-8 65 1368) SD
Chunk [31, 21] (-8 66 1368) s
Chunk [31, 22] (-5 65 1386) ALL HAIL MAXWELL PRAISE MAXWELL
Chunk [31, 22] (-8 66 1387) _m_o_t_h_r_a_'s World Famous Ear Rape
Chunk [31, 22] (-7 65 1386) PRAISE MAXWELL I LOVE MAXWELL -GreenFyre
Chunk [31, 22] (-6 65 1386) Make some noise for Maxwell!
Chunk [31, 31] (-16 66 1535) This my first day on 2b2t Rayechcka
--------------------------------r.0.2.mca--------------------------------
Chunk [0, 21] (0 65 1368) DS
Chunk [0, 21] (0 65 1374) meow
Chunk [0, 21] (1 65 1368) D
Chunk [0, 21] (4 65 1374) maxwell disco floor meow
Chunk [0, 22] (4 65 1377) meow
Chunk [0, 22] (0 65 1377) meow
Chunk [0, 22] (9 65 1381) maxwell beats dream ez
Chunk [0, 22] (6 65 1381) do not the cat
Chunk [0, 22] (6 64 1382) reject the overworld join MAXWELL
Chunk [0, 22] (4 97 1386) much express
Chunk [0, 22] (4 98 1382) <<< Express way
Chunk [0, 22] (9 64 1383) E
Chunk [0, 22] (9 66 1384) W
Chunk [0, 22] (6 64 1381) maxwell is god -ExoNo_
Chunk [3, 19] (60 58 1333) brought to you by waterman112!
Chunk [4, 22] (65 53 1380) And he will not be harassed !!!
Chunk [4, 22] (65 54 1380) This is _Spaolis_ Private Domicile