This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
component:hologram [2014/07/10 09:01] vexatos |
component:hologram [2017/11/05 07:19] (current) breadbolt |
||
---|---|---|---|
Line 1: | Line 1: | ||
Component: Hologram | Component: Hologram | ||
================== | ================== | ||
- | This component is provided by the Hologram Projector. | + | This component is provided by the [[block:hologram_projector|Hologram Projector]]. |
- | These can be used to create holographic projections in a resolution of 48x32x48, over a maximum area of 9x6x9 blocks. Holograms are defined via 48x48 32-bit bit masks, where each bit defines whether the voxel at that height should be on or off. Tier two holograms do not provide a higher resolution, instead they allow using up to three colors in the displayed hologram (as opposed to just one for the tier one hologram). | + | These can be used to create holographic projections in a resolution of 48x32x48, over a maximum area of 9x6x9 blocks. Tier two holograms do not provide a higher resolution, instead they allow using up to three colors in the displayed hologram (as opposed to just one for the tier one hologram). |
Component name: `hologram`. | Component name: `hologram`. | ||
Line 13: | Line 13: | ||
- `set(x:number, y:number, z:number, value:number or boolean)` | - `set(x:number, y:number, z:number, value:number or boolean)` | ||
Set the value for the specified position. | Set the value for the specified position. | ||
- | - `fill(x:number, z:number, height:number, value:number)` | + | - `fill(x:number, z:number[, minY:number], maxY:number, value:number)` |
- | Fills a column to the specified height with the specified value. All voxels below and including the specified height will be set, all voxels above will be unset. | + | Fills an interval in the specified column column with the specified value. Will overwrite only the voxels in the interval. If `minY` is omitted it defaults to 1. The two interval ends are inclusive. |
+ | //Note:// Before 1.3.3 there was no `minY` argument and all voxels below and including the specified height would be set, all voxels above would be unset. | ||
- `copy(x:number, z:number, sx:number, sz:number, tx:number, tz:number)` | - `copy(x:number, z:number, sx:number, sz:number, tx:number, tz:number)` | ||
Copies an area of columns by the specified translation. | Copies an area of columns by the specified translation. | ||
Line 21: | Line 22: | ||
- `setScale(value:number)` | - `setScale(value:number)` | ||
Set the render scale. A larger scale consumes more energy. The minimum scale is 0.33, where the hologram will fit in a single block space, the maximum scale is 3, where the hologram will take up a 9x6x9 block space. | Set the render scale. A larger scale consumes more energy. The minimum scale is 0.33, where the hologram will fit in a single block space, the maximum scale is 3, where the hologram will take up a 9x6x9 block space. | ||
+ | - `getTranslation:number, number, number` | ||
+ | Return the current translation offset. | ||
+ | - `setTranslation(x:number, y:number, z:number)` | ||
+ | Set the translation vector. The hologram display will be offset by this vector from its normal location. The maximum allowable translation is a function of tier. Units are the hologram's size, so the distance translated increases and decreases with scale as well. | ||
- `maxDepth():number` | - `maxDepth():number` | ||
The color depth supported by the hologram. | The color depth supported by the hologram. | ||
- `getPaletteColor(index:number):number` | - `getPaletteColor(index:number):number` | ||
- | Get the color defined for the specified value. | + | Get the hex color defined for the specified value. |
- `setPaletteColor(index:number, value:number):number` | - `setPaletteColor(index:number, value:number):number` | ||
- | Set the color defined for the specified value. | + | Set the hex color defined for the specified value. |
Simple example program that allows setting individual voxels: | Simple example program that allows setting individual voxels: | ||
Line 40: | Line 45: | ||
Further examples: | Further examples: | ||
+ | |||
- [Holo Flow](https://github.com/OpenPrograms/Sangar-Programs/blob/master/holo-flow.lua) | - [Holo Flow](https://github.com/OpenPrograms/Sangar-Programs/blob/master/holo-flow.lua) | ||
This program generates a heightmap and 'moves' across it over time, creating the effect of a flowing terrain. | This program generates a heightmap and 'moves' across it over time, creating the effect of a flowing terrain. | ||
Line 45: | Line 51: | ||
This program generates a random heightmap and displays scrolling text above it. | This program generates a random heightmap and displays scrolling text above it. | ||
- | Note, the second example is quite a bit more advanced then the first. **Important**: both scripts also need the [`noise.lua`](https://github.com/OpenPrograms/Sangar-Programs/blob/master/noise.lua) script to be in the same folder. | + | Note, the second example is quite a bit more advanced then the first. **Important**: both scripts also need the [noise.lua](https://github.com/OpenPrograms/Sangar-Programs/blob/master/noise.lua) script to be in the same folder. |
---- | ---- | ||
{{page>component:contents&noheader&noeditbutton&nouser&nofooter}} | {{page>component:contents&noheader&noeditbutton&nouser&nofooter}} |