/** Klasa bazowa lunetki do przycelowania
* (nie umozliwia powiekszenia)
*/
public class Zoomer extends GameObject
{
/** Defaultowe powiekszenie broni bez przycelowania.
* Uzywany do modyfikowania przez implant.
*/
static float fBaseZoom = 1.0f;
/** Rodzaj przycelowania dla broni z dana lunetka
*/
public byte eAimingType = EWeaponAimingType._NORMAL;
/** Poczatkowe powiekszenie
*/
public float fInitialZoom = 1.0f;
public final static byte _ZOOM_IN = 0;
public final static byte _ZOOM_OUT = 1;
public MeshObject cOwner = null;
void OnCreate()
{
// TA KLASA SAMA SIE DO SAVE'A NIE ZAPISUJE
bSG = false;
// ustawienie poczatkowego zooma na minimalny
fInitialZoom = fBaseZoom;
}
/////////////////////////////////////////////
// Metody implementowane w kazdym zoomerze //
/////////////////////////////////////////////
/** Ustawienie powiekszenia na wartosc poczatkowa
*/
public void Reset()
{
fCurrentZoom = fInitialZoom;
};
/** Rozpoczecie zoomowania (po wcisnieciu klawisza)
* @param nZoomType przyblizanie(_ZOOM_IN
) czy oddalanie (_ZOOM_OUT
) (byte
)
*/
public void StartZoomChange(byte nZoomType)
{
}
/** Zakonczenie zoomowania (zwolnienie klawisza)
*/
public void StopZoomChange()
{
}
public void StopZoomChange(byte nZoomType)
{
}
/** Zoomowanie przy uzyciu myszy
*/
public void AddZoom(float fZoomChange)
{
}
/** Zwraca aktualne powiekszenie (rowniez w trakcie zmiany)
* @return aktualne powiekszenie (byte
)
*/
public float GetZoom()
{
return fCurrentZoom;
}
/**Zwraca pierwszy z zoomow (tzn. taki jaki jest najmniejszy)*/
public float GetBaseZoom()
{
return fBaseZoom;
}
public float GetMaxZoom()
{
return fBaseZoom;
}
/** Aktualna wartosc powiekszenia
*/
protected float fCurrentZoom = 1.f;
//*********************************************************
// SaveGame
//*********************************************************
/** Metoda wczytujaca zapisane dane w Save gracza
*/
public void SGLoadChunk(FileChunk cParentFC)
{
FileChunk.Log("[Zoomer.SGLoadChunk]\n");
FileChunk cFC = GameObject.LoadChunk(cParentFC);
if (cFC.GetID() == ESGChunksChrome._CHK_ZOOMER)
{
super.SGLoadChunk(cFC);
// Poczatkowe powiekszenie
fInitialZoom = cFC.LoadFloat();
// Aktualna wartosc powiekszenia
fCurrentZoom = cFC.LoadFloat();
}
cFC.delete();
}
/** Metoda zapisujaca dane do Save gracza
*/
public void SGSaveChunk(FileChunk cFCParent)
{
FileChunk.Log("[Zoomer.SGSaveChunk]\n");
FileChunk cFC = NewChunk(ESGChunksChrome._CHK_ZOOMER, cFCParent);
super.SGSaveChunk(cFC);
// Poczatkowe powiekszenie
cFC.SaveFloat(fInitialZoom);
// Aktualna wartosc powiekszenia
cFC.SaveFloat(fCurrentZoom);
cFC.delete();
}
}