044 - October 06, 2019


These past two weeks were filled with UI work.

We built out a first pass at the equipment interface. It still has placeholder icons for the different gear slots - but the layout works.

Equipment UI A first pass at the equipment UI. Still need to update the icons.

We also introduced the UIElem trait which is one of the core centerpieces of rendering our user interface.

# #![allow(unused_variables)]
#fn main() {
//! The UIElem trait


use crate::math_2d::rectangle::Rect;
use crate::user_interface::sections::Sections;
use crate::{MsgOrClientRequest, State, UiQuads};

/// Used for designating UI elements that can be rendered onto textured quads on the screen
pub trait UIElem {
    /// Generate the textured quads for this UI element and push them into the collection of
    /// all UiQuad's
    fn render_ui_quads(&self, all_ui_quads: &mut UiQuads);

    /// Generate the text Sections for this UI element and push them into the collection of
    /// all text sections
    fn render_text(&self, all_sections: &mut Sections);

    /// The rectangle that contains this UIElem, useful for things such as click detection.
    fn rect(&self) -> &Rect;

    /// When the user clicks we test the click location against our UIElem's rectangle.
    /// If there is an overlap we call the onclick method.
    fn onclick(&self, x: i16, y: i16, state: &State) -> Option<Vec<MsgOrClientRequest>>;

    /// All of the child UIELem for this elem
    fn children(&self) -> Option<Vec<&dyn UIElem>>;

    /// Render the UI Quads and the text sections
    fn render(&self, all_ui_quads: &mut UiQuads, all_sections: &mut Sections) {

During the week our SSL certificate expired and I didn't notice because it was hooked up to an old email address that I no longer use.

After trying and failing to renew it with my old service - I tried out Let's Encrypt. Let's Encrypt was brilliantly easy to set up - so that's what I'll be using going forwards when I need an SSL certificate.

Unless it's for an AWS service that supports AWS Ceritificates Manager - in which case I'll use that. This week I moved a few services to use ACM for their SSL certs.

I'm working on the Durability skill in the game, specifically on the Hitpoints sub-discipline. I'm pretty excited about the mechanics that I've laid out for it so I'm having fun as I implement it.

We'll hopefully have something to show for it in the next couple of weeks.

Health bars UI comment Using monodraw to comment diagrams of user interface components.


Our financials for September 2019 were:

item cost / earning
revenue + $4.99
photoshop - $21.30
clubhouse - $0.91
aws - $110.06
ngrok - $10.00
adobe substance - $19.90
--- ---
total - $157.18

We were changed twice for Photoshop this month, on the 2nd and 30th.

ClubHouse is now free - so we shouldn't see any more charges for it after last month.

This Week

This week I'll continue working on the Hitpoints system - starting first with the health bars user interface rendering.

Cya next time!