Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d8b771e
Added day night and weather detection to benchsit
Developer-Butters Apr 14, 2026
5da06ee
updated formatting and locks
Developer-Butters Apr 14, 2026
0753ee8
changed the detector
Developer-Butters Apr 15, 2026
6e8eb38
memory issue fix
Developer-Butters Apr 15, 2026
297c36b
Merge branch 'main' of https://github.com/Developer-Butters/Arduino-S…
Developer-Butters Apr 15, 2026
6118aec
deleted a png, updated the detector, and fixed formatting
Developer-Butters Apr 15, 2026
b3837b5
Merge branch 'main' of https://github.com/Developer-Butters/Arduino-S…
Developer-Butters Apr 15, 2026
4b9d92b
more formatting corrections
Developer-Butters Apr 15, 2026
f79e518
modified detector more
Developer-Butters Apr 15, 2026
a9896ea
Merge branch 'main' of https://github.com/Developer-Butters/Arduino-S…
Developer-Butters Apr 16, 2026
bbfd9e9
Improve Day/Night detection robustness
Developer-Butters Apr 18, 2026
ebecd92
wrong .h file
Developer-Butters Apr 18, 2026
5158749
Updated to skip map checks if duration set to 0
Developer-Butters Apr 18, 2026
67d5056
Merge remote-tracking branch 'refs/remotes/origin/add-day-night-to-za…
Developer-Butters Apr 18, 2026
df50173
Removed weather and adjusted time check
Developer-Butters Apr 19, 2026
6c5f1da
Moved the periodic check and improved log display
Developer-Butters Apr 19, 2026
bfb57c7
formatting
Developer-Butters Apr 19, 2026
c0d2f1e
more formatting changes
Developer-Butters Apr 19, 2026
14c31f2
formatting
Developer-Butters Apr 19, 2026
692eda6
Merge branch 'main' into pr/1177
Mysticial Apr 20, 2026
00919c0
Cleanup and pull out helper functions.
Mysticial Apr 20, 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
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#include "PokemonLZA_DayNightStateDetector.h"

#include "CommonFramework/ImageTools/ImageStats.h"

namespace PokemonAutomation{
namespace NintendoSwitch{
namespace PokemonLZA{


DayNightStateDetector::DayNightStateDetector(VideoOverlay* overlay)
:
// sample terrain area after zooming map fully in and hiding icons
// screen-relative coordinates (0–1)
m_box(0.30, 0.55, 0.15, 0.18),
m_state(DayNightState::DAY)
{}


void DayNightStateDetector::make_overlays(VideoOverlaySet& items) const{
items.add(COLOR_GREEN, m_box);
}


bool DayNightStateDetector::detect(const ImageViewRGB32& screen){

ImageStats stats =
image_stats(extract_box_reference(screen, m_box));


// robust against brightness differences between capture cards
const double blue_ratio =
stats.average.b /
(stats.average.r + stats.average.g + stats.average.b);


/*
Empirically stable separation:

DAY ≈ 0.32 – 0.35
NIGHT ≈ 0.40 – 0.46

Threshold chosen conservatively to survive:
- HDMI color variance
- OBS color space changes
- capture card gamma shifts
*/

if (blue_ratio > 0.36){
m_state = DayNightState::NIGHT;
}
else{
m_state = DayNightState::DAY;
}

return true;
}


DayNightState DayNightStateDetector::state() const{
return m_state;
}

}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#pragma once

#include "Common/Cpp/Color.h"
#include "CommonFramework/ImageTools/ImageBoxes.h"
#include "CommonFramework/VideoPipeline/VideoOverlayScopes.h"
#include "CommonTools/VisualDetector.h"

namespace PokemonAutomation{
namespace NintendoSwitch{
namespace PokemonLZA{


enum class DayNightState{
DAY,
NIGHT
};


class DayNightStateDetector : public StaticScreenDetector{
public:

DayNightStateDetector(VideoOverlay* overlay = nullptr);

virtual void make_overlays(VideoOverlaySet& items) const override;

virtual bool detect(const ImageViewRGB32& screen) override;

DayNightState state() const;

private:

ImageFloatBox m_box;

DayNightState m_state;


};


}
}
}
Loading