Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/znepb/roadworks

Immersive road systems
https://github.com/znepb/roadworks

Last synced: 14 days ago
JSON representation

Immersive road systems

Awesome Lists containing this project

README

        

# Roadworks

![Modrinth Downloads](https://img.shields.io/modrinth/dt/roadworks?style=for-the-badge&logo=modrinth&label=MODRINTH)
![Static Badge](https://img.shields.io/badge/modloader-fabric-blue?style=for-the-badge)
![Static Badge](https://img.shields.io/badge/requires-fabric_language_kotlin-orange?style=for-the-badge)
![Static Badge](https://img.shields.io/badge/requires-cc%3A_tweaked-yellow?style=for-the-badge)

Roadworks add immersive, American-style traffic management features to Minecraft. **It is currently in beta, so please expect some bugs!** Currently, the mod adds markings, cones, signals, bollards, and signs, though more may come in the future.

## Todo

- Add an included resource pack to add European-style signage
- More signs
- More markings
- Pedestrian crossing signals
- Make CC an optional dependency

## Installation Requirements
- Minecraft 1.20.1
- Fabric Loader >+ 0.14.22
- Fabric API >= 1.87.0
- Fabric Language Kotlin >= 1.10.8
- CC: Tweaked >= 1.107.0

## Features

### Signals

Controllable via a Traffic Controller and can be connected to one with a linker. Signals connected to a traffic controller can be controlled via a ComputerCraft computer, wrapped as a peripheral.

### Posts

Posts connect when placed next to each other. They can connect to signals and signs.

### Signs

Signs can be placed onto posts, or onto walls. Many are currently included, but there will hopefully be even more in the future.

### Markings

Most that extend over a whole block will connect to a filler is placed in the correct way. Hopefully it's pretty easy to understand.

### Bollards

Pretty simple. Kinda neat.

## CC API

This will be improved in the future and moved to a wiki page.

### `getSignalType(id: int): string?`

Gets the type of signal ID. Will be one of:

- `three_head`
- `three_head_left`
- `three_head_right`
- `three_head_straight`
- `five_head_left`
- `five_head_right`

### `getSignals(): table`

Gets all signals connected to this controller. This returns an array of dictionaries containing the signal ID and the signal's type.

### `getSignalsOfType(type: string): table`

Returns an array of IDs which have the specified type. See `getSignalType` for available types.

### `hasId(id: int): boolean`

Returns true if the traffic cabinet has the specified id.

### `hasLight(type: string, light: string): boolean`

Returns true if the specified type has the specified light.

### `setThreeHead(id: int, red: boolean, yellow: boolean: green: boolean): boolean`

Sets the specified three-head signal of ID to the specified values.

### `setFiveHead(id: int, red: boolean, yellowLeft: boolean: greenLeft: boolean, yellowRight: boolean, greenRight: boolean): boolean`

Sets the specified five-head signal of ID to the specified values.

## Contribute
<<<<<<< Updated upstream
=======

>>>>>>> Stashed changes
If you find a bug or have a feature request, please make an issue. PR's, as always, are accepted and appreciated. PR's will not be accepted if they produce bugs or add additional dependencies.