Menu

Tree [f727a8] master /
 History

HTTPS access


File Date Author Commit
 bin 2011-09-07 ac-sauer ac-sauer [f727a8] 09.06 - added progress bar display when scannin...
 packages 2011-09-07 ac-sauer ac-sauer [f727a8] 09.06 - added progress bar display when scannin...
 src electronics2 2011-09-07 ac-sauer ac-sauer [f727a8] 09.06 - added progress bar display when scannin...
 README 2011-09-07 ac-sauer ac-sauer [f727a8] 09.06 - added progress bar display when scannin...
 autoexec.cfg 2011-09-07 ac-sauer ac-sauer [f727a8] 09.06 - added progress bar display when scannin...
 electronics.cfg 2011-09-07 ac-sauer ac-sauer [f727a8] 09.06 - added progress bar display when scannin...
 electronics2.bat 2011-09-07 ac-sauer ac-sauer [f727a8] 09.06 - added progress bar display when scannin...
 readme_source.txt 2011-08-30 ac-sauer ac-sauer [3ebbc8] switched to sauerbraten svn

Read Me

    S a u e r  e l e c t r o n i c s  2

    Copyright (C) 2011 cm|ac

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.



1. Installation (windows): 
==========================

Install Sauerbraten Justice Edition.
copy everything into main sauerbraten directory. Only file that might be overwriten
is autoexec.cfg. Afterwards run electronics2.bat.



Compile instructions: (windows & linux) 
-----------------------


Install Sauerbraten Justice Edition (needed for media files, maps, sounds).
Download source (git or zip). Open code::blocks project sauerbraten.cbp in 
code::blocks and compile (on linux you need some dependencies installed; see 
http://cube.wikispaces.com/Building+and+Compiling)
Then copy One file (sauerbraten binary) into sauerbraten/bin and run the game.
If you want to use make on linux you will have to correct make file to include libraries
inside lib/mylib (only needed for minecraft level loading) into build process.



Minecraft loading: type /loadminecraft in sauerbraten game console and follow instructions
------------------



2. Electronics Usage:
=====================

Example map electronics2.ogz with parts legend  included in zip (do /map electronics2 to 
load it inside game). It is necessary to know the basics of editing in Sauebraten 
(selecting, creating cubes, changing texture for one face/all faces, copy, paste).

1. - To start draw selection around circuit in editmode (using gridsize >= 4) and press o.
 Parts will be automatically loaded (or updated) and wire recognition will link parts 
together. To reset elements/textures to scan state type /escan 1

2. - To clear all circuit data and scan selection into new circuit press p in edit mode.
So to just clear select empty cube.

3. - To manually toggle element point to it in non edit mode and press middle mouse button.
   with /einfo you can get selected parts information (edit mode).

4. - To run one step of simulation press o in non edit mode.
   To run simulation in realtime (un)pause it by pressing p in non edit mode.

notes. - simulation run  by default every 100 msecs (so not faster then 10x/s). This can
be adjusted ingame by changing "simspeed" variable in cubescript.
	- only cubes with bottom wire texture (green) act as wires for transmitting signal;
 other cubess are ignored when recognizing wire


Basic description of circuit:
-----------------

parts:

- active circuit parts: torch AKA "minecraft redstone torch", pulse generator
- passive circuit parts:  wire, LED
- manually controled parts : switch, torch 


mechanics: 

- parts are identified by their bottom textures only. Other side textures might define
additional properties (like period for pulse generator)
- current propagation through wires: wire part1 is connected to wire part2 if part2 face has
full contact with full cube defining part1: 
this is connected:
**********
* 1 ** 2 *
**********

this is not connected:
***** ****
* 1 * * 2*
***** ****
- torch on outputs its signal from its top face only
- if torch receives signal it turns off
- if torch  doesnt receive any signal it turns on
- LED is on if signal is present; otherwise its off
- pulse generator must be powered to be active (from any side but top).
 it outputs signal from its top face only. pulse generator is off for n steps
 then on for n steps, repeat... n is defined by top texture id.



CHANGE LOG:
==================

09.06 - added progress bar display when scanning elements/wires
09.04 - recursive octree scanning for elements works correctly when using larger>4 gridsizes now; 
        even When several elements are joined after remip in one bigger cube
09.03 - neighbor wires can be isolated from each other (target wire part is connected only if it
        has full contact on its face; i.e. no gaps in target element)
08.30 - switched to sauebraten svn; using sauerbraten vectors now instead of standard c++ ones
08.27 - custom open gl rendering of cubes for faster display
08.25 - addition of pulse generator element
08.14 - start: element/wire recognition, torches, switches, LEDs, simulation,
        manual toggle (eset), clearing (eclear), scanning (escan), simulation (estep)



ADDITIONAL CREDITS:
===================

- 4 bit alu in the example map made by cm|chris.
- custom open gl rendering for cubes adapted from cm|wrack
- minecraft importer extracted and adapted from the minecraft viewer "Minutor" made by the Sean Kasun
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.