001package com.fs.starfarer.api.impl.campaign; 002 003import org.lwjgl.util.vector.Vector2f; 004 005import com.fs.starfarer.api.Global; 006import com.fs.starfarer.api.campaign.CampaignEngineLayers; 007import com.fs.starfarer.api.campaign.SectorEntityToken; 008import com.fs.starfarer.api.combat.ViewportAPI; 009import com.fs.starfarer.api.graphics.SpriteAPI; 010 011public class ExampleCustomEntityPlugin extends BaseCustomEntityPlugin { 012 013 //private SectorEntityToken entity; 014 015 transient private SpriteAPI sprite; // needs to be transient - can't save sprites 016 public void init(SectorEntityToken entity, Object pluginParams) { 017 super.init(entity, pluginParams); 018 //this.entity = entity; 019 readResolve(); 020 } 021 022 // this methods gets called after the object is loaded from a savefile 023 // init the sprite here 024 Object readResolve() { 025 sprite = Global.getSettings().getSprite("misc", "wormhole_ring"); 026 return this; 027 } 028 029 public void advance(float amount) { 030 031 } 032 033 public float getRenderRange() { 034 return entity.getRadius() + 100f; 035 } 036 037 public void render(CampaignEngineLayers layer, ViewportAPI viewport) { 038 039 float alphaMult = viewport.getAlphaMult(); 040 Vector2f loc = entity.getLocation(); 041 sprite.setSize(128, 128); 042 sprite.setAlphaMult(alphaMult); 043 sprite.setAdditiveBlend(); 044 sprite.renderAtCenter(loc.x, loc.y); 045 } 046 047 048} 049 050 051