/** Shamelessly stolen from A&B :) */
function opposite(face) {
    if (face.equals("down"))
        return "up"
    if (face.equals("east"))
        return "west"
    if (face.equals("west"))
        return "east"
    if (face.equals("north"))
        return "south"
    if (face.equals("south"))
        return "north"
    return "down"
}

BlockEvents.placed(event => {
    let block = event.getBlock()

    // gtceu blocks
    if (block.getId().startsWith("gtceu:")) {
        // Set energy converters to feToEu mode when placed
        if (block.getId().endsWith("_energy_converter")) {
            block.mergeEntityData({ energyContainer: { feToEu: true } })
        }
    }

    // Blocks below these line only get their placements altered if they were placed by an entity
    if (event.getEntity() == null) return

    // Reverse placed Dynamos on Sneak
    if (block.getId().startsWith("thermal:dynamo") || (block.getId().startsWith("systeams:"))) { // systeams:steam is not a block thankfully
        let properties = block.getProperties()
        if (event.getEntity().isCrouching()) {
            properties["facing"] = opposite(properties["facing"].toString())
            block.set(block.getId(), properties)
        }
    }

})
