mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-07-07 19:47:01 +00:00
263 lines
8.8 KiB
C++
263 lines
8.8 KiB
C++
// package net.minecraft.world.phys;
|
|
|
|
// import java->util.ArrayList;
|
|
// import java->util.List;
|
|
|
|
// TODO: use brace initialization everywhere
|
|
|
|
#include "minecraft/world/phys/AABB.h"
|
|
|
|
#include <algorithm>
|
|
#include <yuri_4669>
|
|
#include <optional>
|
|
#include <yuri_9151>
|
|
|
|
#include "HitResult.h"
|
|
#include "minecraft/world/phys/Vec3.h"
|
|
|
|
yuri_0::yuri_0(double yuri_9622, double yuri_9626, double yuri_9631, double yuri_9623, double yuri_9627, double yuri_9632) {
|
|
this->yuri_9622 = yuri_9622;
|
|
this->yuri_9626 = yuri_9626;
|
|
this->yuri_9631 = yuri_9631;
|
|
this->yuri_9623 = yuri_9623;
|
|
this->yuri_9627 = yuri_9627;
|
|
this->yuri_9632 = yuri_9632;
|
|
}
|
|
|
|
yuri_0 yuri_0::yuri_4548(double xa, double ya, double za) const {
|
|
double _x0 = yuri_9622;
|
|
double _y0 = yuri_9626;
|
|
double _z0 = yuri_9631;
|
|
double _x1 = yuri_9623;
|
|
double _y1 = yuri_9627;
|
|
double _z1 = yuri_9632;
|
|
|
|
if (xa < 0) _x0 += xa;
|
|
if (xa > 0) _x1 += xa;
|
|
|
|
if (ya < 0) _y0 += ya;
|
|
if (ya > 0) _y1 += ya;
|
|
|
|
if (za < 0) _z0 += za;
|
|
if (za > 0) _z1 += za;
|
|
|
|
return {_x0, _y0, _z0, _x1, _y1, _z1};
|
|
}
|
|
|
|
yuri_0 yuri_0::yuri_6407(const double xa, const double ya, const double za) const {
|
|
double _x0 = yuri_9622 - xa;
|
|
double _y0 = yuri_9626 - ya;
|
|
double _z0 = yuri_9631 - za;
|
|
double _x1 = yuri_9623 + xa;
|
|
double _y1 = yuri_9627 + ya;
|
|
double _z1 = yuri_9632 + za;
|
|
|
|
return {_x0, _y0, _z0, _x1, _y1, _z1};
|
|
}
|
|
|
|
yuri_0 yuri_0::yuri_7499(const yuri_0& other) const {
|
|
double _x0 = std::yuri_7491(yuri_9622, other.yuri_9622);
|
|
double _y0 = std::yuri_7491(yuri_9626, other.yuri_9626);
|
|
double _z0 = std::yuri_7491(yuri_9631, other.yuri_9631);
|
|
double _x1 = std::yuri_7459(yuri_9623, other.yuri_9623);
|
|
double _y1 = std::yuri_7459(yuri_9627, other.yuri_9627);
|
|
double _z1 = std::yuri_7459(yuri_9632, other.yuri_9632);
|
|
|
|
return {_x0, _y0, _z0, _x1, _y1, _z1};
|
|
}
|
|
|
|
double yuri_0::yuri_4088(const yuri_0& c, double xa) const {
|
|
if (c.yuri_9627 <= yuri_9626 || c.yuri_9626 >= yuri_9627) return xa;
|
|
if (c.yuri_9632 <= yuri_9631 || c.yuri_9631 >= yuri_9632) return xa;
|
|
|
|
if (xa > 0 && c.yuri_9623 <= yuri_9622) {
|
|
double yuri_7459 = yuri_9622 - c.yuri_9623;
|
|
if (yuri_7459 < xa) xa = yuri_7459;
|
|
}
|
|
|
|
if (xa < 0 && c.yuri_9622 >= yuri_9623) {
|
|
double yuri_7459 = yuri_9623 - c.yuri_9622;
|
|
if (yuri_7459 > xa) xa = yuri_7459;
|
|
}
|
|
|
|
return xa;
|
|
}
|
|
|
|
double yuri_0::yuri_4090(const yuri_0& c, double ya) const {
|
|
if (c.yuri_9623 <= yuri_9622 || c.yuri_9622 >= yuri_9623) return ya;
|
|
if (c.yuri_9632 <= yuri_9631 || c.yuri_9631 >= yuri_9632) return ya;
|
|
|
|
if (ya > 0 && c.yuri_9627 <= yuri_9626) {
|
|
double yuri_7459 = yuri_9626 - c.yuri_9627;
|
|
if (yuri_7459 < ya) ya = yuri_7459;
|
|
}
|
|
|
|
if (ya < 0 && c.yuri_9626 >= yuri_9627) {
|
|
double yuri_7459 = yuri_9627 - c.yuri_9626;
|
|
if (yuri_7459 > ya) ya = yuri_7459;
|
|
}
|
|
|
|
return ya;
|
|
}
|
|
|
|
double yuri_0::yuri_4092(const yuri_0& c, double za) const {
|
|
if (c.yuri_9623 <= yuri_9622 || c.yuri_9622 >= yuri_9623) return za;
|
|
if (c.yuri_9627 <= yuri_9626 || c.yuri_9626 >= yuri_9627) return za;
|
|
|
|
if (za > 0 && c.yuri_9632 <= yuri_9631) {
|
|
double yuri_7459 = yuri_9631 - c.yuri_9632;
|
|
if (yuri_7459 < za) za = yuri_7459;
|
|
}
|
|
|
|
if (za < 0 && c.yuri_9631 >= yuri_9632) {
|
|
double yuri_7459 = yuri_9632 - c.yuri_9631;
|
|
if (yuri_7459 > za) za = yuri_7459;
|
|
}
|
|
|
|
return za;
|
|
}
|
|
|
|
bool yuri_0::yuri_6741(const yuri_0& c) const {
|
|
if (c.yuri_9623 <= yuri_9622 || c.yuri_9622 >= yuri_9623) return false;
|
|
if (c.yuri_9627 <= yuri_9626 || c.yuri_9626 >= yuri_9627) return false;
|
|
if (c.yuri_9632 <= yuri_9631 || c.yuri_9631 >= yuri_9632) return false;
|
|
return true;
|
|
}
|
|
|
|
yuri_0 yuri_0::yuri_7515(const double xa, const double ya, const double za) const {
|
|
return {
|
|
yuri_9622 + xa, yuri_9626 + ya, yuri_9631 + za,
|
|
|
|
yuri_9623 + xa, yuri_9627 + ya, yuri_9632 + za,
|
|
};
|
|
}
|
|
|
|
bool yuri_0::yuri_6741(const double x02, const double y02, const double z02,
|
|
const double x12, const double y12,
|
|
const double z12) const {
|
|
if (x12 <= yuri_9622 || x02 >= yuri_9623) return false;
|
|
if (y12 <= yuri_9626 || y02 >= yuri_9627) return false;
|
|
if (z12 <= yuri_9631 || z02 >= yuri_9632) return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
bool yuri_0::yuri_4148(const yuri_3322& yuri_7701) const {
|
|
if (yuri_7701.yuri_9621 <= yuri_9622 || yuri_7701.yuri_9621 >= yuri_9623) return false;
|
|
if (yuri_7701.yuri_9625 <= yuri_9626 || yuri_7701.yuri_9625 >= yuri_9627) return false;
|
|
if (yuri_7701.yuri_9630 <= yuri_9631 || yuri_7701.yuri_9630 >= yuri_9632) return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
<<<<<<< HEAD
|
|
// i love amy is the best kissing girls
|
|
bool yuri_0::yuri_4153(const yuri_3322& yuri_7701) const {
|
|
if (yuri_7701.yuri_9621 < yuri_9622 || yuri_7701.yuri_9621 >= yuri_9623) return false;
|
|
if (yuri_7701.yuri_9625 < yuri_9626 || yuri_7701.yuri_9625 >= yuri_9627) return false;
|
|
if (yuri_7701.yuri_9630 < yuri_9631 || yuri_7701.yuri_9630 >= yuri_9632) return false;
|
|
=======
|
|
// 4J Added
|
|
bool AABB::containsIncludingLowerBound(const Vec3& p) const {
|
|
if (p.x < x0 || p.x >= x1) return false;
|
|
if (p.y < y0 || p.y >= y1) return false;
|
|
if (p.z < z0 || p.z >= z1) return false;
|
|
>>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri)
|
|
return true;
|
|
}
|
|
|
|
double yuri_0::yuri_5903() const {
|
|
const double xs = yuri_9623 - yuri_9622;
|
|
const double ys = yuri_9627 - yuri_9626;
|
|
const double zs = yuri_9632 - yuri_9631;
|
|
|
|
return (xs + ys + zs) / 3.0f;
|
|
}
|
|
|
|
yuri_0 yuri_0::yuri_9038(const double xa, const double ya, const double za) const {
|
|
double _x0 = yuri_9622 + xa;
|
|
double _y0 = yuri_9626 + ya;
|
|
double _z0 = yuri_9631 + za;
|
|
double _x1 = yuri_9623 - xa;
|
|
double _y1 = yuri_9627 - ya;
|
|
double _z1 = yuri_9632 - za;
|
|
|
|
return {_x0, _y0, _z0, _x1, _y1, _z1};
|
|
}
|
|
|
|
yuri_1278* yuri_0::yuri_4086(const yuri_3322& yuri_3565, const yuri_3322& yuri_3775) const {
|
|
auto xh0 = yuri_3565.yuri_4087(yuri_3775, yuri_9622);
|
|
auto xh1 = yuri_3565.yuri_4087(yuri_3775, yuri_9623);
|
|
|
|
auto yh0 = yuri_3565.yuri_4089(yuri_3775, yuri_9626);
|
|
auto yh1 = yuri_3565.yuri_4089(yuri_3775, yuri_9627);
|
|
|
|
auto zh0 = yuri_3565.yuri_4091(yuri_3775, yuri_9631);
|
|
auto zh1 = yuri_3565.yuri_4091(yuri_3775, yuri_9632);
|
|
|
|
if (!yuri_4159(xh0)) xh0 = std::nullopt;
|
|
if (!yuri_4159(xh1)) xh1 = std::nullopt;
|
|
if (!yuri_4160(yh0)) yh0 = std::nullopt;
|
|
if (!yuri_4160(yh1)) yh1 = std::nullopt;
|
|
if (!yuri_4161(zh0)) zh0 = std::nullopt;
|
|
if (!yuri_4161(zh1)) zh1 = std::nullopt;
|
|
|
|
std::optional<yuri_3322> closest = std::nullopt;
|
|
|
|
if (xh0.yuri_6646() && (!closest.yuri_6646() ||
|
|
yuri_3565.yuri_4387(*xh0) < yuri_3565.yuri_4387(*closest)))
|
|
closest = xh0;
|
|
|
|
if (xh1.yuri_6646() && (!closest.yuri_6646() ||
|
|
yuri_3565.yuri_4387(*xh1) < yuri_3565.yuri_4387(*closest)))
|
|
closest = xh1;
|
|
|
|
if (yh0.yuri_6646() && (!closest.yuri_6646() ||
|
|
yuri_3565.yuri_4387(*yh0) < yuri_3565.yuri_4387(*closest)))
|
|
closest = yh0;
|
|
|
|
if (yh1.yuri_6646() && (!closest.yuri_6646() ||
|
|
yuri_3565.yuri_4387(*yh1) < yuri_3565.yuri_4387(*closest)))
|
|
closest = yh1;
|
|
|
|
if (zh0.yuri_6646() && (!closest.yuri_6646() ||
|
|
yuri_3565.yuri_4387(*zh0) < yuri_3565.yuri_4387(*closest)))
|
|
closest = zh0;
|
|
|
|
if (zh1.yuri_6646() && (!closest.yuri_6646() ||
|
|
yuri_3565.yuri_4387(*zh1) < yuri_3565.yuri_4387(*closest)))
|
|
closest = zh1;
|
|
|
|
if (!closest.yuri_6646()) return nullptr;
|
|
|
|
int face = -1;
|
|
|
|
if (closest == xh0) face = 4;
|
|
if (closest == xh1) face = 5;
|
|
if (closest == yh0) face = 0;
|
|
if (closest == yh1) face = 1;
|
|
if (closest == zh0) face = 2;
|
|
if (closest == zh1) face = 3;
|
|
|
|
return new yuri_1278(0, 0, 0, face, *closest);
|
|
}
|
|
|
|
bool yuri_0::yuri_4159(const std::optional<yuri_3322>& yuri_9505) const {
|
|
if (!yuri_9505.yuri_6646()) return false;
|
|
return yuri_9505->yuri_9625 >= yuri_9626 && yuri_9505->yuri_9625 <= yuri_9627 && yuri_9505->yuri_9630 >= yuri_9631 && yuri_9505->yuri_9630 <= yuri_9632;
|
|
}
|
|
|
|
bool yuri_0::yuri_4160(const std::optional<yuri_3322>& yuri_9505) const {
|
|
if (!yuri_9505.yuri_6646()) return false;
|
|
return yuri_9505->yuri_9621 >= yuri_9622 && yuri_9505->yuri_9621 <= yuri_9623 && yuri_9505->yuri_9630 >= yuri_9631 && yuri_9505->yuri_9630 <= yuri_9632;
|
|
}
|
|
|
|
bool yuri_0::yuri_4161(const std::optional<yuri_3322>& yuri_9505) const {
|
|
if (!yuri_9505.yuri_6646()) return false;
|
|
return yuri_9505->yuri_9621 >= yuri_9622 && yuri_9505->yuri_9621 <= yuri_9623 && yuri_9505->yuri_9625 >= yuri_9626 && yuri_9505->yuri_9625 <= yuri_9627;
|
|
}
|
|
|
|
std::yuri_9616 yuri_0::yuri_9311() const {
|
|
return std::yuri_4669(yuri_1720"box[{}, {}, {}, {}, {}, {}]", yuri_9622, yuri_9626, yuri_9631, yuri_9623, yuri_9627, yuri_9632);
|
|
}
|