package joshie.progression.plugins.enchiridion.features; import joshie.enchiridion.api.EnchiridionAPI; import joshie.enchiridion.api.book.IFeatureProvider; import joshie.enchiridion.api.gui.ISimpleEditorFieldProvider; import net.minecraft.client.gui.GuiScreen; public abstract class FeatureResizeable extends FeatureProgression implements ISimpleEditorFieldProvider { private transient double cachedWidth = 0; public transient int wrap = 50; public float size = 1F; public FeatureResizeable() {} @Override public void update(IFeatureProvider position) { super.update(position); cachedWidth = position.getWidth(); wrap = Math.max(50, (int) (cachedWidth / size) + 4); } public FeatureResizeable copySize(FeatureResizeable feature) { feature.size = size; return this; } @Override public boolean getAndSetEditMode() { EnchiridionAPI.editor.setSimpleEditorFeature(this); return true; } @Override public void keyTyped(char character, int key) { if (GuiScreen.isShiftKeyDown()) { if (key == 78) { size = Math.min(15F, Math.max(0.5F, size + 0.1F)); wrap = Math.max(50, (int) ((cachedWidth) / size) + 4); return; } else if (key == 74) { size = Math.min(15F, Math.max(0.5F, size - 0.1F)); wrap = Math.max(50, (int) ((cachedWidth) / size) + 4); return; } } } }