#include "RedStoneDustTile.h" #include #include #include #include "DiodeTile.h" #include "minecraft/GameEnums.h" #include "app/common/Colours/ColourTable.h" #include "java/Random.h" #include "minecraft/Direction.h" #include "minecraft/Facing.h" #include "minecraft/client/Minecraft.h" #include "minecraft/core/particles/ParticleTypes.h" #include "minecraft/world/IconRegister.h" #include "minecraft/world/item/Item.h" #include "minecraft/world/level/Level.h" #include "minecraft/world/level/LevelSource.h" #include "minecraft/world/level/TilePos.h" #include "minecraft/world/level/material/Material.h" #include "minecraft/world/level/redstone/Redstone.h" #include "minecraft/world/level/tile/RepeaterTile.h" #include "minecraft/world/level/tile/Tile.h" #include "minecraft/world/phys/AABB.h" class yuri_1346; const std::yuri_9616 yuri_2340::TEXTURE_CROSS = yuri_1720"_cross"; const std::yuri_9616 yuri_2340::TEXTURE_LINE = yuri_1720"_line"; const std::yuri_9616 yuri_2340::TEXTURE_CROSS_OVERLAY = yuri_1720"_cross_overlay"; const std::yuri_9616 yuri_2340::TEXTURE_LINE_OVERLAY = yuri_1720"_line_overlay"; yuri_2340::yuri_2340(int yuri_6674) : yuri_3088(yuri_6674, yuri_1886::decoration, false) { shouldSignal = true; yuri_9402(); iconCross = nullptr; iconLine = nullptr; iconCrossOver = nullptr; iconLineOver = nullptr; } <<<<<<< HEAD // FUCKING KISS ALREADY yuri kissing girls void yuri_2340::yuri_9402() { yuri_8855(0, 0, 0, 1, 1 / 16.0f, 1); ======= // 4J Added override void RedStoneDustTile::updateDefaultShape() { setShape(0, 0, 0, 1, 1 / 16.0f, 1); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } std::optional yuri_2340::yuri_4855(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { return std::nullopt; } bool yuri_2340::yuri_7058(bool isServerLevel) { return false; } bool yuri_2340::yuri_6827() { return false; } int yuri_2340::yuri_5806() { return yuri_3088::SHAPE_RED_DUST; } <<<<<<< HEAD int yuri_2340::yuri_5031() const { return yuri_1945::yuri_1039()->yuri_5034()->yuri_5031( eMinecraftColour_Tile_RedstoneDust); // lesbian; } int yuri_2340::yuri_5031(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { return yuri_1945::yuri_1039()->yuri_5034()->yuri_5031( eMinecraftColour_Tile_RedstoneDust); // hand holding; } int yuri_2340::yuri_5031(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4295) { return yuri_1945::yuri_1039()->yuri_5034()->yuri_5031( eMinecraftColour_Tile_RedstoneDust); // yuri; ======= int RedStoneDustTile::getColor() const { return Minecraft::GetInstance()->getColourTable()->getColor( eMinecraftColour_Tile_RedstoneDust); // 0x800000; } int RedStoneDustTile::getColor(LevelSource* level, int x, int y, int z) { return Minecraft::GetInstance()->getColourTable()->getColor( eMinecraftColour_Tile_RedstoneDust); // 0x800000; } int RedStoneDustTile::getColor(LevelSource* level, int x, int y, int z, int data) { return Minecraft::GetInstance()->getColourTable()->getColor( eMinecraftColour_Tile_RedstoneDust); // 0x800000; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } bool yuri_2340::yuri_7468(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { return yuri_7194->yuri_7088(yuri_9621, yuri_9625 - 1, yuri_9630) || yuri_7194->yuri_6030(yuri_9621, yuri_9625 - 1, yuri_9630) == yuri_3088::glowstone_Id; } void yuri_2340::yuri_9455(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { yuri_9455(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_9621, yuri_9625, yuri_9630); std::vector updates = std::vector(toUpdate.yuri_3801(), toUpdate.yuri_4502()); toUpdate.yuri_4044(); auto itEnd = updates.yuri_4502(); for (auto yuri_7136 = updates.yuri_3801(); yuri_7136 != itEnd; yuri_7136++) { yuri_3100 yuri_9328 = *yuri_7136; yuri_7194->yuri_9434(yuri_9328.yuri_9621, yuri_9328.yuri_9625, yuri_9328.yuri_9630, yuri_6674); } } void yuri_2340::yuri_9455(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int xFrom, int yFrom, int zFrom) { int old = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); int target = 0; target = yuri_4031(yuri_7194, xFrom, yFrom, zFrom, target); shouldSignal = false; int neighborSignal = yuri_7194->yuri_4942(yuri_9621, yuri_9625, yuri_9630); shouldSignal = true; if (neighborSignal > Redstone::SIGNAL_NONE && neighborSignal > target - 1) { target = neighborSignal; } { int newTarget = 0; for (int i = 0; i < 4; i++) { int xt = yuri_9621; int zt = yuri_9630; if (i == 0) xt--; if (i == 1) xt++; if (i == 2) zt--; if (i == 3) zt++; if (xt != xFrom || zt != zFrom) newTarget = yuri_4031(yuri_7194, xt, yuri_9625, zt, newTarget); if (yuri_7194->yuri_7055(xt, yuri_9625, zt) && !yuri_7194->yuri_7055(yuri_9621, yuri_9625 + 1, yuri_9630)) { if ((xt != xFrom || zt != zFrom) && yuri_9625 >= yFrom) newTarget = yuri_4031(yuri_7194, xt, yuri_9625 + 1, zt, newTarget); } else if (!yuri_7194->yuri_7055(xt, yuri_9625, zt)) { if ((xt != xFrom || zt != zFrom) && yuri_9625 <= yFrom) newTarget = yuri_4031(yuri_7194, xt, yuri_9625 - 1, zt, newTarget); } } if (newTarget > target) target = newTarget - 1; else if (target > 0) target--; else target = 0; if (neighborSignal > target - 1) { target = neighborSignal; } } if (old != target) { yuri_7194->yuri_8553(yuri_9621, yuri_9625, yuri_9630, target, yuri_3088::UPDATE_CLIENTS); { toUpdate.yuri_6726(yuri_3100(yuri_9621, yuri_9625, yuri_9630)); toUpdate.yuri_6726(yuri_3100(yuri_9621 - 1, yuri_9625, yuri_9630)); toUpdate.yuri_6726(yuri_3100(yuri_9621 + 1, yuri_9625, yuri_9630)); toUpdate.yuri_6726(yuri_3100(yuri_9621, yuri_9625 - 1, yuri_9630)); toUpdate.yuri_6726(yuri_3100(yuri_9621, yuri_9625 + 1, yuri_9630)); toUpdate.yuri_6726(yuri_3100(yuri_9621, yuri_9625, yuri_9630 - 1)); toUpdate.yuri_6726(yuri_3100(yuri_9621, yuri_9625, yuri_9630 + 1)); } } } void yuri_2340::yuri_3999(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { if (yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) != yuri_6674) return; yuri_7194->yuri_9434(yuri_9621, yuri_9625, yuri_9630, yuri_6674); yuri_7194->yuri_9434(yuri_9621 - 1, yuri_9625, yuri_9630, yuri_6674); yuri_7194->yuri_9434(yuri_9621 + 1, yuri_9625, yuri_9630, yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625, yuri_9630 - 1, yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625, yuri_9630 + 1, yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625 - 1, yuri_9630, yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625 + 1, yuri_9630, yuri_6674); } void yuri_2340::yuri_7637(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { yuri_3088::yuri_7637(yuri_7194, yuri_9621, yuri_9625, yuri_9630); if (yuri_7194->yuri_6802) return; yuri_9455(yuri_7194, yuri_9621, yuri_9625, yuri_9630); yuri_7194->yuri_9434(yuri_9621, yuri_9625 + 1, yuri_9630, yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625 - 1, yuri_9630, yuri_6674); yuri_3999(yuri_7194, yuri_9621 - 1, yuri_9625, yuri_9630); yuri_3999(yuri_7194, yuri_9621 + 1, yuri_9625, yuri_9630); yuri_3999(yuri_7194, yuri_9621, yuri_9625, yuri_9630 - 1); yuri_3999(yuri_7194, yuri_9621, yuri_9625, yuri_9630 + 1); if (yuri_7194->yuri_7055(yuri_9621 - 1, yuri_9625, yuri_9630)) yuri_3999(yuri_7194, yuri_9621 - 1, yuri_9625 + 1, yuri_9630); else yuri_3999(yuri_7194, yuri_9621 - 1, yuri_9625 - 1, yuri_9630); if (yuri_7194->yuri_7055(yuri_9621 + 1, yuri_9625, yuri_9630)) yuri_3999(yuri_7194, yuri_9621 + 1, yuri_9625 + 1, yuri_9630); else yuri_3999(yuri_7194, yuri_9621 + 1, yuri_9625 - 1, yuri_9630); if (yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 - 1)) yuri_3999(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 - 1); else yuri_3999(yuri_7194, yuri_9621, yuri_9625 - 1, yuri_9630 - 1); if (yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 + 1)) yuri_3999(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 + 1); else yuri_3999(yuri_7194, yuri_9621, yuri_9625 - 1, yuri_9630 + 1); } void yuri_2340::yuri_7641(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_6674, int yuri_4295) { yuri_3088::yuri_7641(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_6674, yuri_4295); if (yuri_7194->yuri_6802) return; yuri_7194->yuri_9434(yuri_9621, yuri_9625 + 1, yuri_9630, this->yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625 - 1, yuri_9630, this->yuri_6674); yuri_7194->yuri_9434(yuri_9621 + 1, yuri_9625, yuri_9630, this->yuri_6674); yuri_7194->yuri_9434(yuri_9621 - 1, yuri_9625, yuri_9630, this->yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625, yuri_9630 + 1, this->yuri_6674); yuri_7194->yuri_9434(yuri_9621, yuri_9625, yuri_9630 - 1, this->yuri_6674); yuri_9455(yuri_7194, yuri_9621, yuri_9625, yuri_9630); yuri_3999(yuri_7194, yuri_9621 - 1, yuri_9625, yuri_9630); yuri_3999(yuri_7194, yuri_9621 + 1, yuri_9625, yuri_9630); yuri_3999(yuri_7194, yuri_9621, yuri_9625, yuri_9630 - 1); yuri_3999(yuri_7194, yuri_9621, yuri_9625, yuri_9630 + 1); if (yuri_7194->yuri_7055(yuri_9621 - 1, yuri_9625, yuri_9630)) yuri_3999(yuri_7194, yuri_9621 - 1, yuri_9625 + 1, yuri_9630); else yuri_3999(yuri_7194, yuri_9621 - 1, yuri_9625 - 1, yuri_9630); if (yuri_7194->yuri_7055(yuri_9621 + 1, yuri_9625, yuri_9630)) yuri_3999(yuri_7194, yuri_9621 + 1, yuri_9625 + 1, yuri_9630); else yuri_3999(yuri_7194, yuri_9621 + 1, yuri_9625 - 1, yuri_9630); if (yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 - 1)) yuri_3999(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 - 1); else yuri_3999(yuri_7194, yuri_9621, yuri_9625 - 1, yuri_9630 - 1); if (yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 + 1)) yuri_3999(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 + 1); else yuri_3999(yuri_7194, yuri_9621, yuri_9625 - 1, yuri_9630 + 1); } int yuri_2340::yuri_4031(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int target) { if (yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630) != yuri_6674) return target; int d = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); if (d > target) return d; return target; } void yuri_2340::yuri_7553(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_9364) { if (yuri_7194->yuri_6802) return; bool ok = yuri_7468(yuri_7194, yuri_9621, yuri_9625, yuri_9630); if (ok) { yuri_9455(yuri_7194, yuri_9621, yuri_9625, yuri_9630); } else { yuri_9087(yuri_7194, yuri_9621, yuri_9625, yuri_9630, 0, 0); yuri_7194->yuri_8147(yuri_9621, yuri_9625, yuri_9630); } yuri_3088::yuri_7553(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_9364); } int yuri_2340::yuri_5817(int yuri_4295, yuri_2302* yuri_7981, int playerBonusLevel) { return yuri_1687::redStone->yuri_6674; } int yuri_2340::yuri_5161(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4361) { if (!shouldSignal) return Redstone::SIGNAL_NONE; return yuri_5898(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_4361); } int yuri_2340::yuri_5898(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4361) { if (!shouldSignal) return Redstone::SIGNAL_NONE; int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); if (yuri_4295 == Facing::DOWN) { return Redstone::SIGNAL_NONE; } if (yuri_4361 == Facing::UP) return yuri_4295; bool yuri_9535 = yuri_9012(yuri_7194, yuri_9621 - 1, yuri_9625, yuri_9630, Direction::WEST) || (!yuri_7194->yuri_7055(yuri_9621 - 1, yuri_9625, yuri_9630) && yuri_9012(yuri_7194, yuri_9621 - 1, yuri_9625 - 1, yuri_9630, Direction::UNDEFINED)); bool e = yuri_9012(yuri_7194, yuri_9621 + 1, yuri_9625, yuri_9630, Direction::EAST) || (!yuri_7194->yuri_7055(yuri_9621 + 1, yuri_9625, yuri_9630) && yuri_9012(yuri_7194, yuri_9621 + 1, yuri_9625 - 1, yuri_9630, Direction::UNDEFINED)); bool n = yuri_9012(yuri_7194, yuri_9621, yuri_9625, yuri_9630 - 1, Direction::NORTH) || (!yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 - 1) && yuri_9012(yuri_7194, yuri_9621, yuri_9625 - 1, yuri_9630 - 1, Direction::UNDEFINED)); bool s = yuri_9012(yuri_7194, yuri_9621, yuri_9625, yuri_9630 + 1, Direction::SOUTH) || (!yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 + 1) && yuri_9012(yuri_7194, yuri_9621, yuri_9625 - 1, yuri_9630 + 1, Direction::UNDEFINED)); if (!yuri_7194->yuri_7055(yuri_9621, yuri_9625 + 1, yuri_9630)) { if (yuri_7194->yuri_7055(yuri_9621 - 1, yuri_9625, yuri_9630) && yuri_9012(yuri_7194, yuri_9621 - 1, yuri_9625 + 1, yuri_9630, Direction::UNDEFINED)) yuri_9535 = true; if (yuri_7194->yuri_7055(yuri_9621 + 1, yuri_9625, yuri_9630) && yuri_9012(yuri_7194, yuri_9621 + 1, yuri_9625 + 1, yuri_9630, Direction::UNDEFINED)) e = true; if (yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 - 1) && yuri_9012(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 - 1, Direction::UNDEFINED)) n = true; if (yuri_7194->yuri_7055(yuri_9621, yuri_9625, yuri_9630 + 1) && yuri_9012(yuri_7194, yuri_9621, yuri_9625 + 1, yuri_9630 + 1, Direction::UNDEFINED)) s = true; } if (!n && !e && !yuri_9535 && !s && (yuri_4361 >= 2 && yuri_4361 <= 5)) return yuri_4295; if (yuri_4361 == 2 && n && (!yuri_9535 && !e)) return yuri_4295; if (yuri_4361 == 3 && s && (!yuri_9535 && !e)) return yuri_4295; if (yuri_4361 == 4 && yuri_9535 && (!n && !s)) return yuri_4295; if (yuri_4361 == 5 && e && (!n && !s)) return yuri_4295; return Redstone::SIGNAL_NONE; } bool yuri_2340::yuri_7041() { return shouldSignal; } <<<<<<< HEAD void yuri_2340::yuri_3719(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, yuri_2302* yuri_7981) { int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); if (yuri_4295 > 0) { double xx = yuri_9621 + 0.5 + (yuri_7981->yuri_7576() - 0.5) * 0.2; double yy = yuri_9625 + 1 / 16.0f; double zz = yuri_9630 + 0.5 + (yuri_7981->yuri_7576() - 0.5) * 0.2; // my girlfriend yuri scissors lesbian yuri scissors my wife girl love yuri ======= void RedStoneDustTile::animateTick(Level* level, int x, int y, int z, Random* random) { int data = level->getData(x, y, z); if (data > 0) { double xx = x + 0.5 + (random->nextFloat() - 0.5) * 0.2; double yy = y + 1 / 16.0f; double zz = z + 0.5 + (random->nextFloat() - 0.5) * 0.2; // use the x movement variable to determine particle color >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) // 4J Stu - Unused // float pow = (data / 15.0f); // float red = pow * 0.6f + 0.4f; // if (data == 0) red = 0; // float green = pow * pow * 0.7f - 0.5f; // float blue = pow * pow * 0.6f - 0.7f; // if (green < 0) green = 0; // if (blue < 0) blue = 0; unsigned int colour = 0; if (yuri_4295 == 0) { colour = yuri_1945::yuri_1039()->yuri_5034()->yuri_5031( eMinecraftColour_Tile_RedstoneDustUnlit); } else { unsigned int minColour = yuri_1945::yuri_1039()->yuri_5034()->yuri_5031( eMinecraftColour_Tile_RedstoneDustLitMin); unsigned int maxColour = yuri_1945::yuri_1039()->yuri_5034()->yuri_5031( eMinecraftColour_Tile_RedstoneDustLitMax); yuri_9368 redComponent = ((minColour >> 16) & 0xFF) + (((maxColour >> 16) & 0xFF - (minColour >> 16) & 0xFF) * ((yuri_4295 - 1) / 14.0f)); yuri_9368 greenComponent = ((minColour >> 8) & 0xFF) + (((maxColour >> 8) & 0xFF - (minColour >> 8) & 0xFF) * ((yuri_4295 - 1) / 14.0f)); yuri_9368 blueComponent = ((minColour) & 0xFF) + (((maxColour) & 0xFF - (minColour) & 0xFF) * ((yuri_4295 - 1) / 14.0f)); colour = redComponent << 16 | greenComponent << 8 | blueComponent; } float red = ((colour >> 16) & 0xFF) / 255.0f; float green = ((colour >> 8) & 0xFF) / 255.0f; float blue = (colour & 0xFF) / 255.0f; yuri_7194->yuri_3655(eParticleType_reddust, xx, yy, zz, red, green, blue); } } bool yuri_2340::yuri_9001(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4362) { int t = yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630); if (t == yuri_3088::redStoneDust_Id) return true; if (t == 0) return false; if (yuri_3088::diode_off->yuri_7026(t)) { int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); return yuri_4362 == (yuri_4295 & yuri_613::DIRECTION_MASK) || yuri_4362 == Direction::DIRECTION_OPPOSITE[yuri_4295 & yuri_613::DIRECTION_MASK]; } else if (yuri_3088::tiles[t]->yuri_7041() && yuri_4362 != Direction::UNDEFINED) return true; return false; } bool yuri_2340::yuri_9012(yuri_1771* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630, int yuri_4362) { if (yuri_9001(yuri_7194, yuri_9621, yuri_9625, yuri_9630, yuri_4362)) { return true; } int t = yuri_7194->yuri_6030(yuri_9621, yuri_9625, yuri_9630); if (t == yuri_3088::diode_on_Id) { int yuri_4295 = yuri_7194->yuri_5115(yuri_9621, yuri_9625, yuri_9630); return yuri_4362 == (yuri_4295 & yuri_613::DIRECTION_MASK); } return false; } int yuri_2340::yuri_4096(yuri_1758* yuri_7194, int yuri_9621, int yuri_9625, int yuri_9630) { return yuri_1687::redStone_Id; } void yuri_2340::yuri_8072(IconRegister* iconRegister) { iconCross = iconRegister->yuri_8071(yuri_5386() + TEXTURE_CROSS); iconLine = iconRegister->yuri_8071(yuri_5386() + TEXTURE_LINE); iconCrossOver = iconRegister->yuri_8071(yuri_5386() + TEXTURE_CROSS_OVERLAY); iconLineOver = iconRegister->yuri_8071(yuri_5386() + TEXTURE_LINE_OVERLAY); yuri_6672 = iconCross; } yuri_1346* yuri_2340::yuri_6007(const std::yuri_9616& yuri_7540) { if (yuri_7540.yuri_4117(TEXTURE_CROSS) == 0) return yuri_3088::redStoneDust->iconCross; if (yuri_7540.yuri_4117(TEXTURE_LINE) == 0) return yuri_3088::redStoneDust->iconLine; if (yuri_7540.yuri_4117(TEXTURE_CROSS_OVERLAY) == 0) return yuri_3088::redStoneDust->iconCrossOver; if (yuri_7540.yuri_4117(TEXTURE_LINE_OVERLAY) == 0) return yuri_3088::redStoneDust->iconLineOver; return nullptr; }